[arm-allstar] zero latency microphone monitoring on a radio-less node
Patrick Perdue
borrisinabox at gmail.com
Sun Apr 11 01:59:42 EDT 2021
Oopsers... A small correction.
In unmutemic.sh, the line that says:
amixer cset numid=4 0 > /dev/null
should be changed to
amixer -c $MIXDEV cset numid=4 0 > /dev/null
The former will work fine if you only have one fob, and no other sound
devices on your system.
On 4/11/2021 1:42 AM, Patrick Perdue wrote:
> Recently, I started using a radio-less node, and I wanted local
> zero-latency monitoring of my microphone audio. I could have used
> duplex=2, but there is quite a bit of delay, and I didn't want that. I
> have a hearing impairment, and mostly use headphones. I also wanted to
> make sure I wasn't doing anything silly, like popping p's and the
> like. So, I wrote this set of scripts to unmute the mic playback when
> the mic is keyed, and mute it again when it's unkeyed. Asterisk, very
> wisely, mutes the mic playback and turns the mic playback volume down
> when the simplusb module is loaded. I don't blame it for doing this,
> because otherwise, bad feedback loops would happen in most normal
> situations.
>
> This can probably be done more efficiently, but it works for me, so
> I'm sharing in case anyone else wants to do this for some reason.
>
> Note that this will not give you an accurate representation of the
> level you are sending out to the network, but for my purposes, this is
> fine.
>
>
> ***unmutemic.sh***
>
>
> #!/bin/bash
> # unmutes microphone on CM108/CM119 fobs. USE CAREFULLY! Do not use
> this script with a standard RF simplex node. It will cause a feedback
> loop.
> # monitor volume to use, range is 0 to 31
> MONVOL=31
> # device to use, is usually 0 on most single fob systems
> MIXDEV=0
> amixer -c $MIXDEV cset numid=3 1 > /dev/null
> amixer -c $MIXDEV cset numid=4 $MONVOL > /dev/null
>
>
> ***mutemic.sh***
>
> #!/bin/bash
> # mutes microphone playback on CM108/119 fobs
> # which device to change, is usually 0 on most single fob systems
> MIXDEV=0
> amixer -c $MIXDEV cset numid=3 0 > /dev/null
> amixer cset numid=4 0 > /dev/null
>
>
> In /etc/asterisk/rpt.conf, under the [events] stanza for your node (if
> one isn't defined, define it)
>
> /etc/asterisk/local/unmutemic.sh = s|t|RPT_RXKEYED
> /etc/asterisk/local/mutemic.sh = s|f|RPT_RXKEYED
>
>
> It would be easy to add a check for a file in /tmp/ or something on
> the SD card to evaluate whether or not the script should run, and tie
> it to a macro for easily toggling the script's functionality from
> DTMF, but I haven't done that.
>
> Hope this is useful for someone other than me.
>
More information about the ARM-allstar
mailing list