********************************************************************** * DeliTracker V1.21 * ********************************************************************** © 1992 by Delirium Date 15.05.1992 =============================== DISCLAIMER =========================== DeliTracker (c) by Peter Kunath und Frank Riffel. This demoversion of DeliTracker is freely distributable under the following conditions: Program, document and other files must be distributed in their original UNMODIFIED form. Of course you can use an archiver like LHarc to make it available on mailboxes and FTP sites. This program cannot be used for commercial purposes without written permission from the authors. The program may be distributed as long as the copying fee is not higher than $6. The authors can not be made responsible for any damage which is caused by using this program. If you like to have the full version send DM20 if you are inside Germany $US20 if you are not in Germany (cash only, no cheques) along with the registration form to the following address: Frank Riffel Merkstr. 27 8129 Wessobrunn Germany ========================== What is DeliTracker ? ===================== DeliTracker is a soundplayer, which supports several soundformats. SoundTracker 15 inst., SoundTracker 31 inst., NoiseTracker, ProTracker, StarTrekker without AM sounds and CustomPlay are internal players. Additional Players are loaded from disk. This means that you can very easily add/update players by placing them into the DeliPlayers directory. DeliTracker is NOT a Songeditor, MIDIsequencer or Digitizer. It is only thought to play music modules in a comfortable way. ========================== Why use DeliTracker ? ===================== ° runs fine in multitasking ° allocates the soundchannels ° correct playspeed in PAL/NTSC (uses timerinterrupts) ° works well with serial.device ° supports PowerPacked and Imploded soundfiles ° supports up to 64 players ° runs fine with 680x0 and Kick2.0 ° uses & requires req.library ° Arexx support ° has a configfile ° enforcer and mungwall proof ° supports full CLI or Workbench (ToolTypes) environment ° easy to use & looks good ° has Volume/Balance - slider ° resident cli startup ° supports multiselect ° written 100% in Assembler ° ... and is programmed by Delirium Softdesign ================================= Settings =========================== Getting Started Make sure that the req.library is in LIBS: DeliTracker my be configured at startup time with the following options: Option Default value and description ---------------------- ----------------------------- config 'ENV:DeliTracker.config' loads the specified file as a configuration file module No file, empty module list Adds the to the module list playerpath 'DeliPlayers' Sets the path where DeliTracker loads the external players. windowxy/ 0/0 Attempts to open the mainwindow at the given position. If this fails the window will be opened at 0/0. prefwinxy/ 0/1 Attempts to open the prefswindow at the given position. If this fails the window will be opened at 0/1. volume 64 (maximal volume) Sets the volume to . Where volume can range from 0 to 64. balance 0 Sets the balance to . Where balance can range from -64 (left channels only) to 64 (right channels only) reqlines 0 (requester internal default setting) Specifies the filerequester height in lines. subsong 0 (first subsong) Sets the subsong counter to if the player for the first module in the soundlist supports subsongs. playing 1 (first module is playing) Defines if the first module in the soundlist should be played, when DeliTracker is started. window 1 (mainwindow is visible) This option lets you specify if DeliTracker should open its mainwindow at startup time. (Note: You can only supress the mainwindow from opening, if the AREXX-Server is running) filter 0 (filter off) Switches the internal lowpass filter on or off. (Note: On A1000 this switch has no effect) quick 1 (module is played immediately after loading) Defines if a loaded module should begin to play immediately after loading or if the module is in a paused state. This option is thought for synchronisation purposes in ARexxscripts. random 0 (sequential order) Lets you specify weather a Next/Prev-Song event should take a randomly picked or the following (preceeding) list entry for loading. This option has only sense if there are more than 2 entrys in the modulelist. append 0 (replace modulelist with new selection) Lets you specify wether the soundlist should be appended at the end or replaced by the current selection. If this option is set a multiselect of modules from different directories is possible. songend 0 (ignore songend signals) Lets you specify wether songend events should be ignored or not. SOME players support a notification of the song end. If this option is set DeliTracker will pause the module and load the next module in the list. If only one module is in the soundlist then it is paused after the song has played once. timeout 0 (no timeout) Lets you specify the amount of time (in secs) after that DeliTracker will cause a Next-Song event. This function can be disabled with a value of 0. The options are not case sensitive! Starting from the CLI Open a Shell or CLI window and CD to the directory where DeliTracker is located. Now you can type 'DeliTracker' followed by none/one/more option(s) explained above. The options must be separated by a space from the arguments. If a wrong arument is supplied DeliTracker quits with a short helptext. Example: 'DeliTracker config DT.config reqlines 18 volume 32 filter 1' Starting from the Workbench Open the drawer that contains DeliTracker and start it with a doubleclick. All options can be set as ToolTypes by using the 'Info'-item from the Workbench. The options must be separated by a '=' from the arguments. Invalid Tooltypes are ignored. DeliTracker can be used as 'Default Tool'. Example: Config=DT.config PrefWinXY=0/11 Volume=43 Window=0 The Configuratrion File A Configuration file contains one or more options with the appropriate arguments. The only option that is not possible is the 'config' option. Only one option per line is allowed. You may add comments with ';'. DeliTracker can create configfiles with the save functions from the prefswindow. Another way is to create a config file by your own with an editor or automatically by using the following NewList alias: 'alias ModList NL -hTigfsF "module=\'%P\'" []'. Example of a configfile: ; my first config(sm|f)ile windowxy=473/15 random=1 songend=1 timeout=300 reqlines=50 subsong=2 playerpath="Data:DeliPlayers" ; ; modules follow here ; module="Data:Modules/SonicArranger/MF__Slowmotion1.3.pp" module="Data:Modules/FutureComposer13/hidden part.pp" Tooltypes and CLI options have higher predency than the options in a config file. At startup time DeliTracker tries to open 'ENV:DeliTracker.config' as default configfile. =============================== PLAYERS ============================== Supported players: ° ProTracker/NoiseTracker/SoundTracker15/SoundTracker31/and StarTrekker w/o AM sounds. INTERNAL ° CustomPlay for special modules which contain their player (these can't be crunched, they are loaded via LoadSeg() for relocation). INTERNAL ° all EXTERNAL players are listed in the Players.doc file ============================= PACKED MODULES ========================= DeliTracker automatically detects and decrunches powerpacked and imploded files. NOTE: Don't pack custommodules because they are loaded and relocated via LoadSeg() in oposition to Read(). Furthermore you are not allowed to crunch modules of a player if 'Packable....NO' is shown in the player info field for this particular player. This is because the player itself loads the files rather then using the internal LoadFile() function. ============================== Kickstart 2.0 ========================= The Version for Kickstart 2.0 has some differences to the 1.3 Version: ° the colors are modified for 2.0 ° the mainwindow has a Zip-Gadget ° you can select/play a module by simply dragging the module icon over the mainwindow from DeliTracker (appwindow). ================================= Gadgets ============================ +----------+--+-------------------------------------------------------+--+ | | | [] | | [15] [1] | ? + +-------------------------------------------------------+ + | | | [] | | [14] +---+------+--+--+------+------+------+-----+------+------+-----+-----+--+ [2] | + | | | | | | | | | | |¯¯\ | +---+ |< | < | << | |> | >> | > | >| | [] | ^ | | | | [3] | - | | | | | | | | | ¯ | +--+ | +---+------+-----+------+------+------+-----+------+------+-----+--------+ [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [1] open/close Prefs-Window [2] plays song a little faster [3] plays song a little slower [4] previous song (only if more than one file is selected) [5] previous pattern / sub song [6] previous sub-song (if available) [7] play/pause song [8] next pattern / sub song [9] next song (only if more than one file is selected) [10] next sub-song (if available) [11] stop song, reset patterncounter, reset speed [12] remove song from memory [13] filerequester If enough memory is available DeliTracker will use DoubleBuffering (that means a song will played until the next song is loaded). [14] balance control [15] volume control ================================ Shortcuts =========================== Nearly all functions that DeliTracker offers can be reached via a Shortcut. To make the shortcuts easy to remember all functions of the mainwindow are found on the numeric keypad. The functions of the prefswindow are the first letter of the function. Note: Shortcuts will only work if the right window is active. Shortcuts for the mainwindow: / - preferences-window comes up * - pops loadrequestor up (use SHIFT for selecting more files) 0 - play/pause 1 - stop song (reset patternpointer, reset speed) + - increases playspeed - - decreases playspeed 5 - set patternpointer to next pattern 6 - set patternpointer one pattern back ] and ) - play next song (if more files selected) [ and ( - play previous song -"- 8 - play next subsong 7 - play previous subsong . - stop playing, remove sound from memory 9 - decreases the volume 6 - increases the volume 2 - changes the balance in such a way that the left channels will be played louder 3 - changes the balance in such a way that the right channels will be played louder Shortcuts for the prefswindow: f - toggle filter q - toggle quickstart r - toggle randomplay e - toggle songend detection p - toggle append t - activate time gadget a - add an external player d - delete selected player l - load a configfile s - save a configfile c - configure selected player (if possible) o - leave setupwindow q quits DeliTracker. This shortcut is valid for both windows. ============================== Preferences =========================== If you press the '?'-Gadget a preferences-window pops up. If you select a Player some information about this player is shown in the 'playerinfo' box. Other informations about external Players can be found in the 'Programming.doc', the Player docs and in 'misc/DeliPlayers.i'. ADD - Load an external player and set the playerpath. If a player with the same name is already loaded, the player with the lower version number will be expunged. DEL - delete selected player (free mem) Filter - refer to settings (filter) Quick - refer to settings (quick) Random - refer to settings (random) Songend - refer to settings (songend) Append - refer to settings (append) Time - refer to settings (timeout) Load Config - load and execute a saved configuration Save Config - save the current settings and the module list in a configfile Save List - save only the current module list in a configfile Config Player - configure the selected player (currently no player uses this feature; is is used to provide a player private configuration i.e a SMUS player could ask you in which dirs to search for the instruments). OK - close this window You can set the playerdirectory by typing the path into the stringgad (on the lefthand of the ADD gadget) or using the filerequester (ADD). ============================ REXXCOMMANDS ============================ Square brackets mark arguments that may be omitted. All other arguments must be supplied. See also the REXX examples. quit - quit DeliTracker filter - if BOOL = 0 then set filter off else on quick - if BOOL = 0 then set quickstart off else on random - if BOOL = 0 then set random off else on songend - if BOOL = 0 then set songend off else on append - if BOOL = 0 then set append off else on timeout - set timeout to volume - Set volume to (VOL: 0 to 64) if possible balance - Set balance to , 0 is default, -64 left only 64 right only (BAL: -64 to 64) if possible forward - play next pattern backward - play previous pattern nextsong - play next song prevsong - play previous song nextsubsong - play next subsong prevsubsong - play previous subsong faster - increase playspeed slower - decrease playspeed loadconfig [FILE] - Load configfile [FILE] if [FILE] was specified else pop filerequester up saveconfig [FILE] - Save configfile [FILE] if [FILE] was specified else pop filerequester up savelist [FILE] - Save module list to [FILE] if [FILE] was specified else pop filerequester up loadplayer [PLAYER] - Load the [PLAYER] if specified, else open loadplayer requester deleteplayer - Remove player number from memory configplayer - Call the configuration routine of the player playmod [MODULE] - play [MODULE] if [MODULE] was specified else pop requester up playpause - play/pause song stop - stop song eject - remove active module from memory openmainwin - open mainwindow closemainwin - close mainwindow openprefswin - open prefs-window closeprefswin - close prefs-window status - group may be p, m, g p : player = returnvalue nam name string cre creator string ver player version number vol volume 0/1 bal balance 0/1 jmp patternjump 0/1 spd playspeed 0/1 sub subsong 0/1 cfg config 0/1 pck packable 0/1 g : global = returnvalue ver version number dir playdir string num players number led filter 0/1 qst quickstart 0/1 rnd random 0/1 app append 0/1 end songend 0/1 tim timeout number (secs) mwi Main 0/1 pwi Prefs 0/1 vol current volume number bal current balance number ply song is playing or paused m : Module = returnvalue dir moduledir string fil filename string pnr actual PlayerNr number max selected modules number num actual position in list number ========================= Problems/Hints/Tricks ====================== Symptom: Preferences window can't be opened. Check the Screenheight. It must be at least 190 Pixel + Barheight. The Barheigth depends on the Screenfontheight. NOTE: Some external players have trouble with >68010 or SuperHires these problems often can't be fixed. The cause of this lies in the programmingstyle (e.g the player is part of the module and contains modulespecific code/data). Although many players are hitting the basic principles of programming on the amiga. Such things as poking directly into processorvectors or working with nullpointers are used often. So don't be astonished if enforcer hits occur. These hits are only from external players and not from DeliTracker itself !!! Usually the playspeed of the players are the same on PAL/NTSC machines cause a CIA rather than a VBlank IRQ is used. But some Players essentially need a VBlank interrupt, those players have different playspeeds depending on the selected video mode (PAL/NTSC/Productivity). For Modem users: All players that use the DeliTracker internal timer Interrupt should now work well with serial transfers. Players that generate their own timer interrupt will probably not(!). This is due to the fact that instead of executing the actual playroutine in the timer interrupt itself, we cause a SoftInt (so that the real routine executes in a lower interrupt priority than the RFB interrupt). ================================= CREDITS ============================ We want to thank the following people: - Our betatesters Stefan, Daniel, Börnie and Manfred for their bugreports and some good ideas - Armin Sander (Oktalyzer) and Carsten Schlote (Sonic Arranger) for creating a player for DeliTracker. - all on #amiga (IRC), especially Markus Illenseer. - Colin Fox and Bruce Dawson for the incredibile req.library. - and all others, who have send replays and modules. Testconfigurations: - A500 KS1.3, 512k - A500 KS1.2, 1MB - A500 KS1.3, 1MB (Chip) - A500 KS1.2, 2.3MB - A500 KS1.2, 2.5MB & Harddisk - A2000 KS1.2, 1MB - A2000 KS1.3, 1MB & Harddisk - A2000 KS1.3, 3MB (1MB Chip) & Harddisk - A2500 KS1.3, 5MB (1MB Chip) & Harddisk - A3000 KS1.3, 10MB & Harddisk - A3000 KS2.04, 10MB & Harddisk ====================================================================== If you find any BUGS, have SUGGESTIONS or REMARKS about this program, or have a new player please LET ME KNOW. Frank Riffel Merkstr. 27 8129 Wessobrunn Germany