SongCue Install Notes

Okay, this isn't really a set of install notes because this program has no install routines. You currently run it out of the build directory. It just wasn't worth the hassle of getting a "make install" to do something useful. This doc is really a configuration doc.

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
mpg123: make your-machine-type

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