| > !PlaySpecs
|   Information about James Procter's PlayList feature

---------------------------------------------------------------

Part of James Procter's excellent contributions to the PD
!PlayerMod application was that of a 'PlayList' file, and his
comments on it are included below.

Please do not separate this file from its application !

Nick Smith, 15-Feb-91

---------------------------------------------------------------

Initial implementation by James Procter 2nd January 1991   
                                                        
This is the specifications for the P.D. !PlayerMod Desktop
Soundtracker play 'manager' by Nick Smith, Matt Durys, and The
Mad Dog. It allows the creation of programmes of soundtrackers
to be played, and controls the method of switching from one
module to the next.

At the time of writing, the implementation allows fading in
two ways, either an autofade or a standard fade - the autofade
only occurring if the last event in the module has no
instruments active. In both cases the fadetime can be adjusted
and ....

Playlist Files : Filetype &444 (Provisional)
Commands       :

The commands fall into two types, those that apply to the
overall playlist where applicable, and those which apply to
only one song entry in the playlist.

General Commands
================

'|'             Rem statement, lines starting with this will
                be ignored.
'fadetime xx'   Set overall fadetime to xx polls. This means
                that any song entries which do not specify a
                fadetime, and do not disable fading will have
                this fadetime. If this command is not
                included, the overall fadetime will be set to
                that which is used for the fading when 
                'playing a directory'.
'version xx.xx' This is the minimum version number of
                !PlayerMod needed to use this playlist. This
                can be anywhere in the file, as long as it is
                not remmed out. !PlayerMod will give an error
                if no valid version number is given.
'"'             Start of a song entry.

The playlist interpreter will strip all leading spaces from
the lines, and command recognition is not case dependent.

Song Entries
============

These are lines starting with a quote : '"'
The general syntax is as follows :

"<Full Song Pathname>" [<fadetime>|{command}]

With just the song pathname, !PlayerMod will just play the
song and use the semi-intelligent autofade using the overall
fadetime.

<fadetime> is a value in polls, again as in the general
command 'fadetime', and will have the effect of causing the
player to play the song and fade using the semi-intelligent
fading system with the specified fadetime.

{command} can be one of the following :

'nofade'        This will turn all fading off, and the next
                song will be played immediately at the end
                of this song, with no fading out.
'fade [xx]'     This turns off the 'instrument detection'
                feature of the fading system, so that the
                module will fade out irrespective of the
                current instrument states at the end of the
                song. The fadetime can be set [xx] if wished
                but the overall setting will be used if not
                specified.

Notes
=====

If the song cannot be found, then an error will be generated
and the playlist will not be played.

Playlists with no song entries will not be played.

The song entries will be played in order of appearance in
the file, looping back to the first one, at the end; unless
the 'RND' option has been selected on the control panel,
using the '>>' and '<<' controls for flipping between songs
from directories will traverse the song entries.

Experimentation must be made with the best arrangements of
fading, and fadetimes. The fadetimes are not constant -
since they are affected by wimp polling speed - ie if it
is extremely slow the fadetime will appear to be higher.
Since "Wimp_PollIdle" is used, the fadetimes will be
generally constant.

Problems
========

Since the wimp is polling the program, if the wimp is
engaged in some time consuming task and the song reaches
it's end and wraps around the program will not realise
this; hence no changing of songs will take place.

The autofade get's caught out by those songs where there
is a repeating note played at the end of the last pattern,
filling-in before the wrap around. The fading system
actually starts when the wrap around occurs - and will
hence take place. In these situations it is best not to
have the fading on.

If there are volume change commands at the start of the
tune, when the fading system comes into action there will
be some odd effects since the playroutine will use
different volumes for some of the notes - instead of
using the default sample volumes which the !PlayerMod
volume system affects.

Future developments
===================

Inclusion of channel stereo position settings for songs.
(Isn't it annoying when soundtracker returns the channel
positions to the default everytime?).

A playlist creator utility, either as a separate wimp
application in the 'Bits' directory or as an extension to
the main program, allowing automatic logging of songs in
a playlist for saving, also previews and 'tweaking' of
fading whilst playing the list.

Better control of volume fading, including preciser
control of when to fade, time delay between each volume
decrement.

Song repeats, ie so that repeated successive entries of
a song with identical parameters are not needed.

That's about all I can say, hope you find this useful....

James Procter, 10-Feb-91

---------------------------------------------------------------
end.
