Compare commits
8 Commits
master
...
audiofilte
| Author | SHA1 | Date |
|---|---|---|
|
|
c0ea72e466 | |
|
|
861d4dc2fb | |
|
|
fe72601b61 | |
|
|
f119b77aed | |
|
|
0fc7462b8b | |
|
|
c363f0fde8 | |
|
|
3e29d82fa3 | |
|
|
7d4e3969d2 |
|
|
@ -1656,6 +1656,15 @@ The destination is specified as ip-address:port.
|
|||
|
||||
Example: RAW_AUDIO_UDP_DEST=127.0.0.1:10000
|
||||
.TP
|
||||
.B AUDIO_FILTER
|
||||
Define an audio filter here to improve the frequency response caused by
|
||||
unfavorable hardware in the audio path from discriminator to the soundcard
|
||||
input. A lot of audio filters are available (Butterworth, Chebyshev, Lowpass,
|
||||
Highpass, ...). Look into the src/async/audio/fidlib.c for more information.
|
||||
|
||||
Example: AUDIO_FILTER=HsBq1/0.01/-18/3500
|
||||
|
||||
|
||||
.B OB_AFSK_ENABLE
|
||||
Set to 1 to enable reception of metadata like signal level measurements, DTMF
|
||||
digits and tone detections via out-of-band (OB) AFSK. The out-of-band AFSK is
|
||||
|
|
@ -2381,6 +2390,14 @@ It is possible to specify the same PTY for multiple functions (e.g. squelch,
|
|||
ptt etc) in both TX and RX configurations. This may be good if there is one
|
||||
script handling all functions.
|
||||
.
|
||||
.TP
|
||||
.B AUDIO_FILTER
|
||||
Define an audio filter here to improve the frequency response caused by
|
||||
unfavorable hardware in the audio path from discriminator to the soundcard
|
||||
input. A lot of audio filters are available (Butterworth, Chebyshev, Lowpass,
|
||||
Highpass, ...). Look into the src/async/audio/fidlib.c for more information.
|
||||
|
||||
Example: AUDIO_FILTER=HsBq1/0.01/-18/3500
|
||||
.SS Networked Transmitter Section
|
||||
.
|
||||
A networked transmitter section is used to specify the configuration for a
|
||||
|
|
|
|||
|
|
@ -529,6 +529,15 @@ bool LocalRxBase::initialize(void)
|
|||
prev_src->registerSink(voiceband_filter, true);
|
||||
prev_src = voiceband_filter;
|
||||
|
||||
string filterdesc;
|
||||
if (cfg().getValue(name(), "AUDIO_FILTER", filterdesc))
|
||||
{
|
||||
cout << "+++ Init Audiofilter=" << filterdesc << endl;
|
||||
AudioFilter *additional_audiofilter = new AudioFilter(filterdesc);
|
||||
prev_src->registerSink(additional_audiofilter, true);
|
||||
prev_src = additional_audiofilter;
|
||||
}
|
||||
|
||||
// Create an audio splitter to distribute the voiceband audio to all
|
||||
// other consumers
|
||||
AudioSplitter *voiceband_splitter = new AudioSplitter;
|
||||
|
|
|
|||
|
|
@ -472,7 +472,27 @@ bool LocalTx::initialize(void)
|
|||
prev_src->registerSink(preemph, true);
|
||||
prev_src = preemph;
|
||||
}
|
||||
|
||||
|
||||
string filterdesc;
|
||||
if (cfg.getValue(name(), "AUDIO_FILTER", filterdesc))
|
||||
{
|
||||
cout << "+++ Init Audiofilter=" << filterdesc << endl;
|
||||
AudioFilter *additional_audiofilter = new AudioFilter(filterdesc);
|
||||
prev_src->registerSink(additional_audiofilter, true);
|
||||
prev_src = additional_audiofilter;
|
||||
}
|
||||
|
||||
/*
|
||||
AudioCompressor *limit = new AudioCompressor;
|
||||
limit->setThreshold(-1);
|
||||
limit->setRatio(0.1);
|
||||
limit->setAttack(2);
|
||||
limit->setDecay(20);
|
||||
limit->setOutputGain(1);
|
||||
prev_src->registerSink(limit, true);
|
||||
prev_src = limit;
|
||||
*/
|
||||
|
||||
// Add a limiter to smoothly limit the audio before hard clipping it
|
||||
double limiter_thresh = DEFAULT_LIMITER_THRESH;
|
||||
cfg.getValue(name(), "LIMITER_THRESH", limiter_thresh);
|
||||
|
|
|
|||
Loading…
Reference in New Issue