There's something both soothing and exciting about listening to live Air Traffic Control chatter. I was psyched to learn that my little USB Software Defined Radio could pick up the tower over at DCA. All it took was plugging in the relevant radio frequencies. However, manually entering frequencies got old quick. What I needed was to automate this bad boy.
While I initially experimented with software defined radio on Android I was delighted to learn that I could turn my Linux laptop into a listening station with almost zero effort. Turns out, all I needed to do was run:
sudo dnf install rtl-sdr
and I would gain access to the rtl_sdr command line utility. I was absolutely shocked that the rtl_sdr command auto detected the USB dongle. I was sure I needed to mess with kernel modules or other low level nonsense. Instead it all just worked. After fiddling with various options and grabbing the relevant frequencies I finally kicked off the following command and went to bed.
rtl_fm -M am \ -f 132.65000M \ -f 128.25000M \ -f 121.70000M \ -f 119.10000M \ -f 134.35000M \ -f 257.60000M \ -f 119.30000M \ -f 335.50000M \ -f 124.00000M \ -f 279.57500M \ -f 124.20000M \ -f 269.00000M \ -f 119.85000M \ -f 322.30000M \ -f 126.55000M \ -f 269.50000M \ -f 128.35000M \ -f 270.27500M \ -f 121.05000M \ -f 343.70000M \ -f 118.30000M \ -f 306.30000M \ -f 124.70000M \ -f 338.20000M \ -f 125.65000M \ -f 396.10000M \ -f 118.95000M \ -f 257.20000M \ -f 129.45000M \ -f 129.67500M \ -f 129.22500M \ -f 130.95000M \ -f 129.75000M \ -f 131.85000M \ -f 131.35000M \ -f 131.92500M \ -f 129.25000M \ -f 130.97500M \ -f 129.07500M \ -f 129.52500M \ -f 130.10000M \ -f 130.40000M \ -f 131.00000M \ -f 130.42500M \ -s 12k -g 50 -l 230 > listen.raw
This morning I awoke to find a 3 megabyte file had been created, and even more surprisingly, there was clean chatter in it! I initially listened to generated file by running the command:
play -r 12k -t raw -e s -b 16 -c 1 -V1 listen.raw
Once I verified that there was audio in the file I needed to convert it to a more usable format. Ultimately, I converted the raw audio to WAV, MP3 and finally to MP4 video file for easy publishing on YouTube:
sox -traw -r12k -es -b16 -c1 -V1 listen.raw listen.wav # More info lame listen.wav listen.mp3 ffmpeg -framerate 1/5 -pattern_type glob -i 'scaled/*.jpg' -i dca.wav \ -c:v libx264 -c:a aac -vf "fps=25,format=yuv420p" -b:a 192k \ -shortest out.mp4 # More info
And here's the final product:
Next up: automating listening on Android.