#2521 JMBE comfort noise insertion default gain (#2530)

Updates to JMBE library 2.1.0
Cleanup AMBE/IMBE sections in each editor P25, NXDN and DMR

Co-authored-by: denny <dennis.sheirer@gmail.com>
This commit is contained in:
Denny Sheirer
2026-10-30 04:26:24 -04:00
committed by GitHub
parent d86fba6945
commit 33a2471338
11 changed files with 134 additions and 128 deletions

View File

@@ -571,10 +571,9 @@ public class DecoderFactory
{
List<String> features = audioModule.getFeatures();
String legacyToneFeature = "feature_legacy_tone_levels";
if(features.contains(legacyToneFeature))
if(features.contains(IAudioCodecV2.FEATURE_LEGACY_TONE_LEVELS))
{
audioModule.setFeature(legacyToneFeature, config.isLegacyToneLevels());
audioModule.setFeature(IAudioCodecV2.FEATURE_LEGACY_TONE_LEVELS, config.isLegacyToneLevels());
}
if(features.contains(IAudioCodecV2.FEATURE_AUTOMATIC_GAIN_CONTROL))
@@ -584,7 +583,7 @@ public class DecoderFactory
if(features.contains(IAudioCodecV2.FEATURE_NOISE_GENERATOR_GAIN))
{
audioModule.setFeature(IAudioCodecV2.FEATURE_NOISE_GENERATOR_GAIN, config.getNoiseGain());
audioModule.setFeature(IAudioCodecV2.FEATURE_NOISE_GENERATOR_GAIN, config.getComfortNoiseGain());
}
if(features.contains(IAudioCodecV2.FEATURE_TONE_GENERATOR_GAIN))
@@ -956,7 +955,7 @@ public class DecoderFactory
public static void transferJMBESettings(DecodeConfigJMBE from, DecodeConfigJMBE to)
{
to.setAGC(from.isAGC());
to.setNoiseGain(from.getNoiseGain());
to.setComfortNoiseGain(from.getComfortNoiseGain());
to.setToneGain(from.getToneGain());
to.setLegacyToneLevels(from.isLegacyToneLevels());
}

View File

@@ -4,6 +4,8 @@ import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
public abstract class DecodeConfigJMBE extends DecodeConfiguration
{
public static float DEFAULT_COMFORT_NOISE_GAIN = 0.05f;
public static float DEFAULT_TONE_GAIN = 1.0f;
private boolean mAGC = true;
private boolean mLegacyToneLevels;
@@ -21,8 +23,8 @@ public abstract class DecodeConfigJMBE extends DecodeConfiguration
{
mLegacyToneLevels = enabled;
}
private float mToneGain = 1.0f;
private float mNoiseGain = 1.0f;
private float mToneGain = DEFAULT_TONE_GAIN;
private float mComfortNoiseGain = DEFAULT_COMFORT_NOISE_GAIN;
/**
* Automatic Gain Control (AGC) for the JMBE audio codec
@@ -78,28 +80,28 @@ public abstract class DecodeConfigJMBE extends DecodeConfiguration
* @return noise gain in range 0.0 (no noise) to 1.0 (default noise)
*/
@JacksonXmlProperty(isAttribute = true, localName = "jmbeNoiseGain", namespace = "http://www.w3.org/2001/XMLSchema-instance")
public float getNoiseGain()
public float getComfortNoiseGain()
{
return mNoiseGain;
return mComfortNoiseGain;
}
/**
* Sets the comfort noise insertion gain for the JMBE audio codec
* @param gain noise gain in range 0.0 (no noise) to 1.0 (default noise)
*/
public void setNoiseGain(float gain)
public void setComfortNoiseGain(float gain)
{
if(gain > 1.0f)
{
mNoiseGain = 1.0f;
mComfortNoiseGain = 1.0f;
}
else if(gain < 0)
{
mNoiseGain = 0;
mComfortNoiseGain = 0;
}
else
{
mNoiseGain = gain;
mComfortNoiseGain = gain;
}
}
}

View File

@@ -22,7 +22,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.github.dsheirer.module.decode.DecoderType;
import io.github.dsheirer.module.decode.config.DecodeConfigJMBE;
import io.github.dsheirer.module.decode.config.DecodeConfiguration;
import io.github.dsheirer.module.decode.dmr.channel.TimeslotFrequency;
import io.github.dsheirer.module.decode.dmr.message.DMRMessage;
import io.github.dsheirer.module.decode.event.DecodeEvent;

View File

@@ -23,7 +23,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.github.dsheirer.module.decode.DecoderType;
import io.github.dsheirer.module.decode.config.DecodeConfigJMBE;
import io.github.dsheirer.module.decode.config.DecodeConfiguration;
import io.github.dsheirer.module.decode.nxdn.channel.ChannelFrequency;
import io.github.dsheirer.module.decode.nxdn.layer3.proprietary.Encoding;
import io.github.dsheirer.module.decode.nxdn.layer3.type.TransmissionMode;

View File

@@ -23,7 +23,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
import io.github.dsheirer.module.decode.config.DecodeConfigJMBE;
import io.github.dsheirer.module.decode.config.DecodeConfiguration;
import io.github.dsheirer.module.decode.p25.phase2.DecodeConfigP25Phase2;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")