Step 1: Compile patched versions of esound and mpg123
tar -xzf packagename-version.tar.gz|
patch -p1 < /path/to/patch/packagename-version.patch
esound: ./configure ; make
Step 2: Compile songcue
You may also elect to specify --with-songdir=path to change the path to the directory containing your music files. If you do not, it defaults to /music.
Step 3: Configure the database
The exact types for various columns differs according to your
choice of database. Be certain you do not use the mysql settings
for postgresql, as a postgres int is shorter than a mysql int.
(Using the postgresql settings on mysql will result in a syntax
MYSQL - create the following tables: files: id int NOT NULL filename varchar(200) NOT NULL duration int NOT NULL preroll int NOT NULL trigger int NOT NULL intro int NOT NULL outro int NOT NULL fade int NOT NULL last_status enum('f','t') NOT NULL songs songid int NOT NULL title varchar(42) NOT NULL artist varchar(42) NOT NULL comments varchar(42) legalids: legalid int NOT NULL comments varchar(42) dry enum('f','t') default 'f', NOT NULL liners: linerid int NOT NULL comments varchar(42) dry enum('f','t') default 'f', NOT NULL properties: propid int NOT NULL property int NOT NULL PGSQL - create the following tables: files: id int4 NOT NULL filename varchar(200) NOT NULL duration int4 NOT NULL preroll int4 NOT NULL trigger int4 NOT NULL intro int4 NOT NULL outro int4 NOT NULL fade int4 NOT NULL last_status bool NOT NULL songs songid int4 NOT NULL title varchar(42) NOT NULL artist varchar(42) NOT NULL comments varchar(42) legalids: legalid int4 NOT NULL comments varchar(42) dry bool default 'f', NOT NULL liners: linerid int4 NOT NULL comments varchar(42) dry bool default 'f', NOT NULL properties: propid int4 NOT NULL property int4 NOT NULL
Step 4: Populate the database
For each song, you should create an entry in the files table
and the songs table with identical id/songid. Similar for other
types (Legal IDs and Liners). The meanings of most fields are
obvious. The remaining fields are described here.|
files: filename - relative to the base directory defined at compile time (defaults to /music). duration - complete duration of file preroll - seconds of silence at start of file trigger - seconds after start of music before the next song should start intro - number of talk-over seconds after start of music outro - number of talk-over seconds at end (measured back from trigger time) fade - number of seconds after start of music before the song should be forcibly faded out (useful to shorten long tails) last_status - used internally - setting irrelevant. legalids and liners: dry - set to true if the liner/legal id has no background music and can be overlapped with a song intro or outro. properties: This table allows you to set mappings between "properties" (for example, "reload playlist" and arbitrary ID numbers. Current properties are: prop_initial_playlist_path 1 prop_reload_playlist_path 100 prop_stop_block 200 prop_timed_talk_block 201 A good initial setting would be propid property 9999 1 9998 100 9997 200 9996 201 and then create a files entry for each of these except 9997 (the stop block). The only relevant info for 9996 is the amount of talk time requested. The relevant info for 9998 and 9999 are the paths to the playlists. 9999 is loaded when the program is started. 9998 is loaded when its ID appears in a playlist.
Step 5: Create a playlist
Run scheduler/scheduler and answer the questions. Make sure you
save the file into the path you specified in row 9999 in the
database in the last step.|
Step 6: Run the program