AlgoRhythms: System and Data Specifications

See also: AlgoRhythms Competition Rules.

Execution Environments: Apple OSX 10.10 (Yosemite), Ubuntu Linux 14.04 LTS, or Microsoft Windows 8.1/10.

Libraries: Non-system libraries and frameworks must be statically linked.

Available Software: a suite of some standard computer music and executable runtime environments may be provided by the Creative Turing Tests team: Java JRE7/8, Python 2.7+, Processing 2.1+, Beads, Max/MSP 6/7, PureData (PD), SC 3.7, Chuck 1.3+.

Workspace: submitted software will receive unique workspaces (directories). Within this workspace, submitted software may write data and create directories.

Submitted software will be unzipped and copied into a unique workspace instance. A file named RunMe (possibly with a language-specific extension: RunMe.sh or RunMe.py etc...) must be provided in the top level of the submitted system directory.

A README.txt file shall be provided with installation / execution instructions and a brief explaination of what the system does and how it works (at a systems level) in case of any problems with running the software.

The submitted software's output shall be a contiuous audio-stream in a WAV file which lasts for 15 minutes (+/- 1 minute) and it shall be named "music_output_yymmdd_hhmmss.wav" where yymmdd_hhmmss is the date and time of completion.

For preliminary judging, we will run the system multiple times, each run will be executed in a new unique workspace instance.

The following read-only directories will also be available to the system within the workspace:

./tracks # track000.mp3-track999.mp3 44.1kHz, Stereo, 192kbps, MP3 and uncompressed WAV format
./seed # seed.wav 44.1kHz, Stereo, 192kbps, MP3 and WAV format
./features # beat-synchronus features extracted using librosa and saved as single-precision floating-point ascii format (see Features below).

Tracks will be sourced from commercial music releases. Tracks will be electronic dance music (EDM) as used by DJs for club music and will span the following EDM genres: Bass, DrumAndBass, DubStep, HardStyle, House, NuDisco, FutureHouse, TechnoHouse, Techno, Trance. Track genre labels will follow these names.

The read-only directories will have the following contents (expanded to 1000 tracks):

DJ.2RNG.T3STS (AlgoRhythms)
Bregman Labs, Dartmouth College, 2016

Pre-release Test Data: 260 Dance Music Tracks + librosa Features
The tracks in this collection are sourced from the free collection at PumpYouUp.com

Download All Test Data and Features (5.8GB)

Track Sources

Scripts

tracks
260 (current) test data tracks. Stereo, 44.1kHz, MP3 format. Canonical names, lexicographic ordering.

tracks directory

tracks/
track000.mp3
track001.mp3
...
track259.mp3

features
Pre-extracted in the "feature" directory are space-delimited floating-point ASCII matrices:
beat_synchronus: one beat-synchronus vector per line non-beat-synchronus: 512-sample hop frames @ 22050Hz sample rate, one vector per line one vector per line:

features directory

features/
track000.genre - genre ID3 tag string
track000.id3 - id3 tags, one per line: Filename, Artist, Comment, Genre, GenreID, Album, Track, Year, SampleFrequency, BitRate, CorruptFrames, Copyrighted, Seconds
track000.tempo - 0d estimated global tempo in beats per minute (float)
track000.beat_frames - 1d sample positions of beats @ 22050Hz sample rate, one beat per line
track000.beat_secs - 1d times of beats in seconds, one beat per line
track000.chroma - 12d chroma (non-beat-synchronus)
track000.beat_chroma - 12d chroma (beat-synchronus)
track000.mfcc - 20d mfcc coefficients (non-beat-synchronus)
track000.mfcc_delta - 20d mfcc delta coefficients (non-beat-synchronus)
track000.beat_mfcc - 40d mfcc+delta coefficients (beat-synchronus)
track000.melspec - 128d mel-frequency magnitude spectrum (non-beat-synchronus)
track000.beat_melspec - 128d mel-frequency magnitude spectrum (beat-synchronus)
track000.rmse - 1d RMS energy per frame (non-beat-synchronus)
track000.beat_rmse - 1d RMS energy per beat (beat-synchronus)
track000.centroid - 1d spectral centroid (non-beat-synchronus)
track000.beat_centroid - 1d spectral centroid (beat-synchronus)
track000.specbw - 1d spectral bandwidth (non-beat-synchronus)
track000.beat_specbw - 1d spectral bandwidth (beat-synchronus)
track000.contrast - 7d spectral contrast (non-beat-synchronus)
track000.beat_contrast - 7d spectral contrast (beat-synchronus)
track000.rolloff - 1d spectral rolloff (non-beat-synchronus)
track000.beat_rolloff - 1d spectral rolloff (beat-synchronus)
track000.tonnetz - 6d tonnetz (non-beat-synchronus)
track000.beat_tonnetz - 6d tonnetz (beat-synchronus)
track001.genre - same as above
track001.id3 - same as above
track001.tempo - same as above
track001.beat_frames - same as above
...
track999.tonnetz - same as above
track999.beat_tonnetz - same as above

seed
A seed track and features for initialization of an algorithm:

seed directory

seed/
seed.mp3 - seed mp3 track
seed.tempo - 0d estimated global tempo in beats per minute (float)
seed.beat_frames - 1d sample positions of beats @ 22050Hz sample rate, one beat per line
seed.beat_secs - 1d times of beats in seconds, one beat per line
seed.chroma - 12d chroma (non-beat-synchronus)
seed.beat_chroma - 12d chroma (beat-synchronus)
seed.mfcc - 20d mfcc coefficients (non-beat-synchronus)
seed.mfcc_delta - 20d mfcc delta coefficients (non-beat-synchronus)
seed.beat_mfcc - 40d mfcc+delta coefficients (beat-synchronus)
seed.melspec - 128d mel-frequency magnitude spectrum (non-beat-synchronus)
seed.beat_melspec - 128d mel-frequency magnitude spectrum (beat-synchronus)
seed.rmse - 1d RMS energy per frame (non-beat-synchronus)
seed.beat_rmse - 1d RMS energy per beat (beat-synchronus)
seed.centroid - 1d spectral centroid (non-beat-synchronus)
seed.beat_centroid - 1d spectral centroid (beat-synchronus)
seed.specbw - 1d spectral bandwidth (non-beat-synchronus)
seed.beat_specbw - 1d spectral bandwidth (beat-synchronus)
seed.contrast - 7d spectral contrast (non-beat-synchronus)
seed.beat_contrast - 7d spectral contrast (beat-synchronus)
seed.rolloff - 1d spectral rolloff (non-beat-synchronus)
seed.beat_rolloff - 1d spectral rolloff (beat-synchronus)
seed.tonnetz - 6d tonnetz (non-beat-synchronus)
seed.beat_tonnetz - 6d tonnetz (beat-synchronus)

--
The DJ.2RNG.T3STS (AlgoRhythms) Team