Nerve is a music library and importation system, inspired by it's predecessor, IRIS. Written in Ruby, Nerve has a modern and intuitive interface, and is built using modern technologies.
This software is aimed to be the last "master" you'll ever need for music metadata and processing, as it is able to mirror changes to the playout system (hopefully soon plural) under its control.
Nerve is object-oriented and (nearly) event-ready, and is completely customisable and extendable. We mean "object oriented" in the broadcast sense - you can tie its data into systems to create immersive and future-proofed content through soon-to-be APIs (or through its database).
Nerve has been tried and tested at Insanity Radio 103.2FM, a community radio station homed in North Surrey. Crazily, it also won the Student Radio Award for Best Technical Achievement in 2017.
I haven't had time to write an installation guide, but it's not really that straightforward, unfortunately. Some statically linked binaries are currently included in the source tree to make it easier to run some components.
Nerve is based on Sinatra, a microframework for Ruby. It (now) uses ActiveRecord, too.
You will need to install a Redis server (the default settings work fine), and you'll need a MySQL database.
Run a simple bundle install
to get (hopefully) all of the dependencies.
You'll need to create a rather large space for the "export" directory. I'll admit, this needs a re-name, as it doesn't describe its functionality very accurately.
You'll also need to mount your playout drives on the "master" node
This project is a part of the Insanity Tech Masterplan.
To mount your AudioWall in Docker, run the following command on the host.
sudo docker volume create --driver local --opt type=cifs --opt device=//10.32.0.222/AudioWall --opt o=username=Nerve,password=password,_netdev,uid=999,gid=999 audiowall
You'll also want to load the database schema, as this isn't done automatically. (Do this after building)
docker-compose run --rm worker sh -c "bundle exec rake db:schema:load db:migrate"
To run database migrations, after building but before launching, run:
docker-compose run --rm worker sh -c "bundle exec rake db:migrate"
This code is released under the LGPL version, except where stated, and has absolutely no warranty, express or implied. I haven't had time to unit test this software, but it's certainly on the to-do list. TDD isn't yet dead!