I tried to PM you but this was too large.
I'm close. I had the metadata working before I got the audio working (in the terminal it was working anyhow but now it doesn't) but I must have tweaked the wrong thing somewhere along the way.
My start string command I put in my first terminal is:
./rx.py --nocrypt --args "rtl=0" --gains 'lna:36' -S 57600 -q 0 -d 0 -v 1 -2 -T trunk.tsv -V -w -M meta.json 2> stderr.2 and it runs in the terminal like it should.
My trunk.tsv looks like:
"Sysname" "Control Channel List" "Offset" "NAC" "Modulation" "TGID Tags File" "Whitelist" "Blacklist" "Center Frequency"
"Wyolink" 155.505 "0x1a4" "cqpsk" "wyolink.tsv"
and my wyolink.tsv has my talkgroups working correctly in my first terminal running op25 as it shows the alpha tags I've given to my tgids.
My meta.json file looks like:
{
"icecastPass": "mypassword",
"icecastMountpoint": "/op25",
<--I'm not sure this is correct.
"icecastServerAddress": "10.1.4.189:8000",
<-----where my op25/liquid soap and icecast are running.
"delay": "0.0", "icecastMountExt": ".m3u",
"meta_format_idle": "[idle]",
"meta_format_tgid": "[%TGID%]",
"meta_format_tag": "[%TGID%] %TAG%"
My 2nd terminal looks like:
jd@TechLaptop:~/op25/op25/gr-op25_repeater/apps$ ./op25.liq
2021/10/22 13:54:40 >>> LOG START
2021/10/22 13:54:40 [main:3] Liquidsoap 1.4.1
2021/10/22 13:54:40 [main:3] Using: bytes=[distributed with OCaml 4.02 or above] pcre=[unspecified] sedlex=2.1 menhirLib=20200123 dtools=0.4.1 duppy=0.8.0 cry=0.6.4 mm=0.5.0 xmlplaylist=0.1.3 lastfm=0.3.2 ogg=0.5.2 vorbis=0.7.1 opus=0.1.3 speex=0.2.1 mad=0.4.4 flac=0.1.5 flac.ogg=0.1.5 dynlink=[distributed with Ocaml] lame=0.3.2 shine=0.2.0 gstreamer=0.3.0 frei0r=0.1.0 theora=0.3.1 gavl=0.1.5 ffmpeg=0.4.1 bjack=0.1.4 alsa=0.2.3 ao=0.2.0 samplerate=0.1.2 taglib=0.3.1 ssl=0.5.9 magic=0.7.3 camomile=[unspecified] yojson=[unspecified] faad=0.4.0 soundtouch=0.1.7 portaudio=0.2.1 pulseaudio=0.1.2 ladspa=0.1.4 sdl=0.9.1 camlimages=4.2.0 lo=0.1.2 gd=1.0a5
2021/10/22 13:54:40 [gstreamer.loader:3] Loaded GStreamer 1.16.2 0
2021/10/22 13:54:40 [dynamic.loader:3] Could not find dynamic module for fdkaac encoder.
My op25.liq file is:
#!/usr/bin/liquidsoap
# Example liquidsoap streaming from op25 to icecast
# (c) 2019-2021
gnorbury@bondcar.com,
wllmbecks@gmail.com
#
set("log.stdout", true)
set("log.file", false)
set("log.level", 1)
# Make the native sample rate compatible with op25
set("frame.audio.samplerate", 8000)
input = mksafe(input.external(buffer=0.25, channels=2, samplerate=8000, restart_on_error=false, "./audio.py -x 1.25 -s"))
# Consider increasing the buffer value on slow systems such as RPi3. e.g. buffer=0.25
# Longer buffer results in less choppy audio but at the expense of increased latency.
# OPTIONAL AUDIO SIGNAL PROCESSING BLOCKS
# Uncomment to enable
#
# High pass filter
#input = filter.iir.butterworth.high(frequency = 200.0, order = 4, input)
# Low pass filter
#input = filter.iir.butterworth.low(frequency = 3250.0, order = 4, input)
# Compression
#input = compress(input, attack = 2.0, gain = 0.0, knee = 13.0, ratio = 2.0, release = 12.3, threshold = -18.0)
# Compand
input = compand(input, mu = 0.5)
# Normalization
#input = normalize(input, gain_max = 6.0, gain_min = -6.0, target = -16.0, threshold = -65.0)
# LOCAL AUDIO OUTPUT
# Uncomment the appropriate line below to enable local sound
#
# Default audio subsystem
#out (input)
#
# PulseAudio
output.pulseaudio(input)
#
# ALSA
#output.alsa(input)
# ICECAST STREAMING
# Uncomment to enable output to an icecast server
# Change the "host", "password", and "mount" strings appropriately first!
# For metadata to work properly, the host address given here MUST MATCH the address in op25's meta.json file
#
output.icecast(%mp3(bitrate=16, samplerate=22050, stereo=false), description="op25", genre="Public Safety", url="", fallible=false, icy_metadata="false", host="localhost", port=8000, mount="op25", password="mypassword", mean(input))
In my 3rd terminal, I get errors when I run
jd@TechLaptop:~/op25/op25/gr-op25_repeater/apps$ tail -f stderr.2
10/22/21 13:55:46.125941 meta_server::send_metadata(): metadata update error: 400
10/22/21 13:55:47.598040 voice update: tg(1010), freq(155820000), slot(-), prio(3)
10/22/21 13:55:47.659424 meta_server::send_metadata(): metadata update error: 400
So it appears this 3rd terminal is calling for something I don't have set right that I screwed up along the way. Perhaps there is another file I've screwed up not listed above.
Thanks again for the help. It's close!