(Insanity team member looking for access to Nerve? Sign onto the Intranet!)

Nerve is Insanity Radio’s music library and ingest system. It allows Insanity’s team to upload tracks and, if the automated system deems necessary, require compliance screening before they can be played on air.

This can provide an additional safety net, especially in some community and student stations where no prior experience is necessary.

Nerve is available for free on GitHub. The only catch is that it’s a bit of a pain to set-up and configure. Importing tracks is a little bit difficult unless you can code. This will be simplified in future editions, hopefully! All the branding is currently Insanity specific, but this is also on the to-do list.

Nerve's main view, showing a list of songs uploaded by a user

Nerve track editor, showing waveform of currently selected track and buttons to set various markers

How it Works

Nerve is written in Ruby (Sinatra), Angular2/TypeScript and uses Redis and MySQL.

Processing depends on ffmpeg, sox, ecasound (with SC4 compressor plugin), libebur128 (with loudness-scanner), and finally audiowaveform (which we use later with another amazing BBC library, peaks.js).

Awesome Features

Nerve can perform many tricks that help make student/community radio easier to operate.

  • Intuitive interface that is easy to use with little training.
  • Only makes tracks available on playout that have clean auto-fetched lyrics or have been manually approved. Fail-safe.
  • Complete Myriad v4 integration, extendable to work with other playout systems.
  • Supports practically any file type.
  • Bitrate estimation to detect “upscaled” music files – for example, a 128kbps MP3 re-encoded as a .WAV can now be filtered out to avoid bad quality on-air.
  • Listen to (low bitrate) previews of any track on the system from online, with full waveforms