[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