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
From: op25-dev(a)yahoogroups.com <op25-dev(a)yahoogroups.com>
Sent: Friday, December 28, 2018 6:56 AM
To: op25-dev(a)yahoogroups.com
Subject: RE: [op25-dev] Allstar integration? [4 Attachments]
[Attachment(s) from wllmbecks(a)gmail.com <mailto:wllmbecks@gmail.com> included
below]
Steve,
Problem solved and no need to interface with Allstar. Instead all that is needed is to
add the functionality of a streaming audio server to your Raspberry Pi and you can then
simply connect to the built in server over your LAN at home or over the Internet from
anywhere else that you have connectivity.
Here’s the procedure…
sudo apt-get install darkice
sudo apt-get install icecase2 [Note that the installation script will spawn a menu to
configure icecast where you configure passwords and port number]
sudo cp /localpath/asound.conf /etc/asound.conf
sudo cp /localpath/darkice.cfg /etc/darkice.cfg
sudo cp /localpath/bcm2835.conf /etc/modprobe.d/bcm2835.conf
Edit the attached op25.sh to specify your own rx.py command line options but retain the -O
loop0 option that directs op25 audio to darkice via the audio loopback.
Reboot the Pi then connect to the Pi’s IP on port 8000 (default) accordingly to the
following examples.
Icecast Administration URL:
http://xxxx.xxx.xxx.xxx:8000 [login username = admin,
password = string set when installing icecast]
Icecast Audio Stream URL:
http://xxxx.xxx.xxx.xxx:8000/op25.mp3
You don’t need to connect to the admin except to determine if the mount point (op25.mp3)
is active (darkice running and connected) or to view and manage connections to the Icecast
server.
Incidentally, you can use this same general configuration to put op25 audio to a
broadcastify.com mount point as well.
Notes
Although the example configs start darkice from the same script that I use to start op25
that a much better approach is to crate a cron job or to create a service that gets run at
boot time by system.
The reason for this is that if you need to stop and restart op25 to make or test
configuration changes, then you’d need to kill the darkice process too before executing
op25.sh.
The Raspberry Pi3-A+ has some hardware differences that require a slightly different
configuration. Contact my via PM if anyone needs that info.
Happy New Year!
Bill, WA8WG
From: op25-dev(a)yahoogroups.com <mailto:op25-dev@yahoogroups.com>
<op25-dev(a)yahoogroups.com <mailto:op25-dev@yahoogroups.com> >
Sent: Thursday, December 27, 2018 8:17 PM
To: op25-dev(a)yahoogroups.com <mailto:op25-dev@yahoogroups.com>
Subject: [op25-dev] Allstar integration?
I wish there was a way to feed op25 into a local Allstar (Asterisk app_rpt) node to drive
an analog transmitter. That way I can keep tabs on a few digital systems when I am out and
about or via the the IP phone on my desk. One way would be fine till such a time that
transmitting with op25 via direct modulator input becomes more common.
Has any thought been given to that sort of thing? Just curious
All the existing digital to analog bridges pretty much rely one one being personally
involved with the digital repeaters to configure things on both ends (IP network level
etc).