/nrsc5-chopper

Split up the output from HD radio into discreet files

Primary LanguageKotlinMIT LicenseMIT

nrsc5-chopper

Split up the output from HD radio into discreet files, using an RTL-SDR Blog V3 USB dongle.

Setup

  • A raspberry pi (splurge for the best and install the 64 bit OS)
  • a Digital FM to USB RTL-SDR dongle (I used this model)
  • ffmpeg with aac (install steps)
  • nrsc5 (compiled from here)
  • OpenJDK and Kotlin (sudo apt install openjdk-11-jdk kotlin) and Gradle (sudo snap install gradle --classic)
    • (but maybe IntelliJ instead?)
  • This project (git clone https://github.com/salamanders/nrsc5-chopper)
  • Lots of drive space

TODO

  • Bouncing though a WAV file fills up eventually. We should write to "-" instead
  • Earlier start times (the moment the artist or title isn't right)
  • Real command line args
  • Pass in station on the command line
  • Pick the best image
  • m4a encoding using ffmpeg from this installer - holding off until we can trim to song start.
  • Metadata should have a shorter TTL - if you stop seeing Title, you are in a commercial break.
  • embed images
  • Scan all stations
  • get the timing right (maybe silence?) or maybe FFT? https://github.com/mileshenrichs/QuiFFT
  • direct copy from AAC instead of bouncing through the WAV using... uh... magic.
  • Max song length, maybe from a DB? (like wikipedia?)