This is a collection of scripts that support the setup and execution process of the Reactive Jukebox project. One of the main purposes of these scripts is to generate all the necessary database entries from a set of provided MP3 files. Most other scripts are used internally for the team organization and for the evaluation of the user study.
This is only a small description on how to establish a fresh music database with the scripts provided in this repository. Feel free to skip any steps, if you don't think they are necessary.
Place your music files into a directory Music inside of this directory.
You might have to create one yourself.
After that, run the filehash.sh script and wait for it to finish.
Your files inside of the Music directory should be hashed and in the correct structure now.
Place your (hashed) music files into a directory Music inside of this directory.
After that, run the d3tocsv.sh script and wait for it to finish.
You now should have a new file called id3data.csv inside of this directory.
Place the id3data.csv file inside of this directory.
After that, run the metadata.sh script and press y for every step you want to execute.
Depending on what you chose, you now should have the files lastfmdata.csv, bpm.csv, dynamics.csv and spotifydata.csv.
Required files in this directory: spotifydata.csv, ExternalDataSource/genres.csv, bpm.csv and dynamics.csv.
Run the datatodb.sh script and wait for it to finish.
Export the tables album, album_artist, artist, genre, song, song_artist and song_genre from the database.
This is easily accomplished by using a graphical client like HeidiSQL.
If you don't want to use that, the following command should to the same thing: pg_dump --file=./80music_data.sql --table=album --table=artist --table=song --table=genre --table=album_artist --table=song_artist --table=song_genre --dbname=reactivejukebox --host=localhost --port=5432 --username=postgres --inserts.
Rename the file to 80music_data.sql and place it in the correct directory in the database repository.
Remove any lines of the file that don't start with an INSERT statement and add the following in the first line: \connect reactivejukebox