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)
- algorhythms_testdata.tar.gz (5.8GB) md5sum: 75eb999263dbe80b5a7a023fbe7a87de
Track Sources
- fileList.txt - original track names, canonical order
- urlList.txt - original track urls, genre order
Scripts
- extractFeatures.py - script for audio feature extraction (uses librosa)
- extractGenre.sh - script for ID3 genre extraction
- extractID3.sh - script used for ID3 tag extraction
tracks
260 (current) test data tracks. Stereo, 44.1kHz, MP3 format. Canonical names, lexicographic ordering.
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/
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/
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