I've often thought about attempting to write an enhanced version of
sockaudio.py with AGC functionality. I'm not well versed on the various
algorithms though, and haven't yet found any suitable code samples
online that can be readily repurposed. If anyone has any pointers I'd
be open to looking at it.
Graham
On 12/28/18 8:52 AM, wllmbecks(a)gmail.com [op25-dev] wrote:
[Attachment(s) <#TopText> from
wllmbecks(a)gmail.com included below]
Here are a couple of additional thoughts/comments…..
You don’t necessarily have to run Icecast on the RPi. You can just a
easily configure darkice to push the
audio stream to a preconfigured mount point on a remote server.
One of the unfortunate aspects with digital audio (p25) is that few
radio technicians understand how to setup proper microphone or console
audio levels. On analog system they were used to looking at the
deviation scope/meter on their service monitor and cranking the mic
gain to achieve rated system deviation. However, this is not the
case in P25 or other digital modes. The ones and zeros hit specific
deviation targets (symbols) that don’t care how high or how low the
actual audio is.
Graham Norbury has added a feature to his boatbod fork of op25 that
give you the option on the rx.py command line to adjust the recovered
audio level. I’ve found that in my location that on some systems
some additional gain is helpful and have specified *-x 2* on my rx.py
command line to increase the gain. You may want to vary this value
experimentally as needed to compensate for local conditions.
I don’t know what the limits are but at some point you are likely to
start clipping and then you’ll know the upper limit. Perhaps Graham
will chime in with addition information on this subject.
On the subject of P25 audio. I won’t go into methods I’ve used to
set and measuring digital audio levels, but I am attaching
*apco_ref.wav*, an audio test tone file crated and calibrated for use
with the op25 on the Raspberry Pi to produce a test tone equivalent in
level to that reproduced if you were to connect a service monitor up
to your Pi’s SDR modulated with a standard P25 1011 (tone) test
pattern. I did this because of a need to setup audio levels with
external devices. One such example is where I break out the audio
from the RPi and send it through an automatic gain control (AGC)
amplifier before sending it on to darkice for conversion to an mp3
stream to level out p25 system/user levels.
Bill, WA8WG