Step 1: Compile patched versions of esound and mpg123
|
tar -xzf packagename-version.tar.gz cd packagename-version patch -p1 < /path/to/patch/packagename-version.patch
esound: ./configure ; make make install
|
Step 2: Compile songcue
|
../configure --enable-mysql or ../configure --enable-postgresql 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
error.)
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
| Run posix/songcue |