Web based music player for lossless formats.
Gradle is used to build (and currently to run) EvilMusic. It can be obtained from https://www.gradle.org.
Necessary to run the EvilMusic server. If you are on Linux, it can be obtained by using the command apt-get install openjdk-8-jre
. The Oracle implementation of Java can be obtained from https://www.oracle.com/java.
The metaflac
command is required to read meta data from FLAC files. If you are on Linux, it can be obtained from the flac
package using the command, apt-get install flac
. Otherwise, it can be obtained from https://xiph.org/flac.
In the project's root directory, execute gradle build
.
In the project's root directory, execute gradle bootrun
. This uses Spring Boot to start the server at localhost:8080
.
Note: Issue #20 has been created to address how confusing starting the server is for a non-tech-savvy user.
The /src/main/resources/em.properties
file can be used to configure EvilMusic. The following are settings that can be specified within it.
Note: Issue #21 has been created to address how confusing the configuration file is for a non-tech-savvy user.
A semicolon (;) separated list of directories that should be searched for music files.
$home
is a special keyword to represent the current user's home directory. If a directory within the list starts with $home
, the $home
will be replaced with the user's home directory. For example, if the user is "eviljoe", a directory specified as $home/Music
will actually search the /home/eviljoe/Music
directory for music files.
Default Value: none
Example Usage:
em.music_directories=$home/Documents/music
em.music_directories=/first/music/directory;/second/music/directory
Specifies the location of the metaflac
command. This command is used to read meta data from FLAC files.
Default Value: metaflac
Example Usage
em.metaflac_command=/usr/bin/metaflac
Specifies the location of the database. EvilMusic uses a file system database (Derby) to store information about the user's music library.
$home
is a special keyword to represent the current user's home directory. If this property starts with $home
, the $home
will be replaced with the user's home directory. For example, if the user is "eviljoe", a directory specified as $home/db
will actually use /home/eviljoe/db
as the database home directory.
$timestamp
is a special keyword to represent a timestamp. The first instance of $timestamp
found within the property value will be replaced with a timestamp. For example, a directory specified as /foo/$timestamp/bar
will be interpreted as /foo/2015-01-15-23-30-15-666/bar
(assuming the current time is January 15th 2015 11:30:15.666 PM).
Default Value: $home/.evilmusic/db
Example Usage:
em.database.home=$home/db
em.database.home=/foo/bar/database-home
em.database.home=/foo/bar/$timestamp
This value should not be used for unless you are developing for EvilMusic. If this property is set to true
, the entire database will be cleared out after the EvilMusic server is no longer running.
Default Value: false
Example Usage:
em.database.rollback_on_close=false
Specifies the location of the log file. EvilMusic will log all output to this file.
$home
is a special keyword to represent the current user's home directory. If this property starts with $home
, the $home
will be replaced with the user's home directory. For example, if the user is "eviljoe", a directory specified as $home/evilmusic.log
will actually use /home/eviljoe/evilmusic.log
as the log file.
$timestamp
is a special keyword to represent a timestamp. The first instance of $timestamp
found within the property value will be replaced with a timestamp. For example, a file specified as /foo/$timestamp/bar.log
will be interpreted as /foo/2015-01-15-23-30-15-666/bar.log
(assuming the current time is January 15th 2015 11:30:15.666 PM).
Default Value: $home/.evilmusic/evilmusic.log
Example Usage:
em.log_file=$home/evilmusic.log
em.log_file=/foo/bar/out.log
em.log_file=/foo/bar/$timestamp/log.txt