-
Notifications
You must be signed in to change notification settings - Fork 5
Prerequisites
Acoustics requires four things that are typically handled by your package manager (beyond Perl modules).
You have a many possible choices here. You need a webserver that supports either CGI scripts or FastCGI.
ACM@UIUC uses Apache 2.2.x with FastCGI (due to infrastructure reasons). Most developers use Apache 2.2.x with CGI. Lighttpd has been reported to work with minor issues.
Apache 2.2.x with CGI is recommended. By default, we put Acoustics at http://yoursite/acoustics. To do this easily, you can add the following in /etc/apache2/conf.d (/etc/httpd/conf.d on Fedora/Red Hat) as ‘acoustics’ (assuming you checked the Acoustics code out to /home/avuserow/projects/amp)
Alias /acoustics /home/avuserow/projects/amp
<Directory "/home/avuserow/projects/amp/">
AllowOverride All
Options +ExecCGI
AddHandler cgi-script .pl
</Directory>
Currently, we only officially support MySQL, though SQLite and PostgreSQL support is in progress.
I recommend creating an exclusive database for Acoustics, and then giving all permissions within that database to a dedicated user:
CREATE DATABASE acoustics;
GRANT all ON acoustics.* TO acoustics IDENTIFIED BY 'hats1234';
You need to also have the DBI and DBD::mysql Perl modules. I recommend that you obtain these from your package manager, since they require a non-trivial amount of compiling. See Perl modules for details.
Once this is done, run ‘bin/initdb-mysql.pl’. This will create the tables for Acoustics.
Currently, we only support MPlayer. MPD support is planned to become the official way eventually.
Install MPlayer and make sure you can use it to play music files (e.g. ‘mplayer foo.mp3’) in the file types you care about.
We require taglib development headers. The latest version is recommended, due to more file type support, but we have successfully used taglib 1.5.
In Debian, this is the package libtag1-dev. In Fedora, it is taglib-devel.
Go into the bin directory and run ‘make’ to compile our tagreader binary, which does the heavy lifting of extracting id3 tags. This requires make and a C++ compile (gcc usually).