******************************************************** * »» Protracker 3.00 - Beta «« * **************************************************** This is a upgrade of ProTracker 1.3/2.0B, and is not based on PT's released after the original release of PT1.3 by Amiga Freelancers, therefore you may find features implemented in Pre PT1.3 releases that this version lacks. However we hope that you'll find this release better than the other PT's around :) We will ship new releases as soon as bugs are fixed, and new features are implemented. Final release is scheduled to the Easter of '93. ProTracker 3.00B was developed from April '92 to January '93 by Ivar Just Olsen, Tom Bech and Bjarte Andreassen. Thanks to these people without whom this program would not have been possible: Amiga Freelancers (especially Lars Hamre) for releasing the Sourcecode of PT1.3/2.0B, Janne S. for numerous suggestions and bugreports, Guardian for testing PT on his NTSC '040 Amiga, ALFred and U4IA for moral support :), Arild "WindWalker" Gjerd for letting us borrow his 50MHz '030 for development, Vishnu for help on the AGA chipset and last but not least a special regard to the rest of our friends in CryptoBurners. History: o PowerPacker support. Powerpacker.library must be present in the "sys:libs/" directory. Version needed: 35.000 or higher. It is however recommended that you have at least 1MB to use this feature with large modules. Note that this feature will probably be replaced by xpk.library later. o Protracker rearranged to MEDRES (or HIRES perhaps? Hi Buddha! :) 640x200x3. o Format now works with dfx. Remember to specify which drive to format in the "path" string-gadget. o Midi has been kicked out (temporarily?). o "SpectrumAnalyzer" has been kicked out. o Protracker now works on Kickstart 2.04 and higher (SCS/ECS). o Memory display now displays all memorytypes. o Improved input handler. PT will now live peacefully with Commodities. We hope. o Invented new fileformat based on Interchanged File Format (IFF) chunks. See docs elsewhere on this disk for a discussion of this format. o Hold record mode; waits for keypress before starting to record. o New filerequester. o Screen to back gadgets. You may also use Left Amiga + M/N. o Standalone playroutine supporting Finetune etc. Not fast though :( o Some speedups in the SampleEd. It was awfully slow at marking in MEDRES! o Scroll bars added here and there (but not everywhere ;) o New pointer! The old one was simply too big for the new resolution.. :) o Setupscreen revised and merged into one. o Date and time online at mainscreen. o Task interferance problems fixed (Improved multitasking). No busy waits. o The dragging routine in the sampler draws pixels instead of lines when dragging. o Major rearranging on mainscreen; editor centered and some new buttons for editing, such as cut/paste, up/down octave etc. o You may now click into the different tracks with the left mousebutton! :o o Audio.device channel allocation, to ensure that other programs doesn't mess with your tunes in a multitasking environment. o Chords editor with up to 7 notes. (Hi JanneS :) o PT now hopefully works on KS3.0 in AGA mode too (Hi Vishnu). o The sampler works again! ;) To do: o Implement the new fileformat :) - Commands ranging from 0..0xFF (0..255). All commands that CAN run in paralell will do. Lotsa other commands (hi JanneS :). - #Samples and #patterns to word size, I hope it will do for a while! :) - Maximum sample size from 64Kb to 128Kb. It's there, why not use it? o Digital filters and noise-reduction in the Sampler. Planned filters include Lowpass, Highpass and Bandpass (FIR filters). Perhaps Graphic Equalizer too. o Seek zero/loop in sampler. o Fix bug in PLST; choosing [MOUNTL] causes hangup :( o Protracker.library for non-tech programmers wanting to use PT modules in their programs. o Pattern (position<->pattern) editor. o Save module as executable. o Add icon. o Load samples/instruments/patterns from an existing module. o Screen positioning (For people with TV's or multisync/flickerfixer) o Freehand sample-editing. o ASDR editor for channel modulation. o Optimise/Rewrite Playroutine. o Gain/Finished info when (Power)Packing. o Hypertext on-line help (a la Windows). o Serial comm. to other protrackers. o Fix bugs in general ;) Things you want, but won't get: o Splitting up each track of a pattern into a seperate "pattern", independent of the others. After having talked to many musicians, we all agreed this is all in vain. Nobody seems to be going to use it, due to the serious timing problems that will arise. Use SIDMON instead, if you're really anxious to use this feature ;) o 8 channels Protracker. The Amiga is designed for 4 voices, if this feature is to be implemented, the CPU has to mix the channels realtime, and will use all CPU DMA on lowend Amigas. Forget it. Use StarTrekker if you want it. o Intuition Protracker. Too much work :) maybe some sunny day... o Beer. Don't report these known bugs: o Memory fragmentation when starting PT twice from Icon. o Samples succeeding 32Kb are not displayed fully in the sampler window. o Keyrepeat sometimes don't stop in pattern editor. o Saving samples sometimes chooses the wrong device to write to. o Turning off audio channels doesn't stop repeating instruments immidiately. o Updating sample length when resampling/upsampling/downsampling. o At present time you must launch PT as a project icon from WorkBench, or from CLI. Tool icons will _hang_ your system! o Applications that do not allocate the timers properly, will cause the music to stop (eg. ProPlay). However, this is _not_ ProTrackers fault; PT allocates the used timers gently :) As you see this is not really a bug, but we just want kill potential "bug reports" in birth ;) ------------------------------------------------------------------------------- Protracker 3.00B has been successfully tested on A/B/C2000 (KS1.2 to KS2.04), A500 (KS1.2 to 2.04), A500+ (KS2.0) and A3000 (KS2.0). All 680x0 CPU's tested. We reccomend that you do not crunch your PT with Imploder/PowerPacker or likes if your Amiga has got MC68040 CPU, due to severe problems with the Code/Data- Cache(s). Tested with MMU too, but not with virtual memory, so be careful if you have got VM-System. All machines were tested with and without HardDisk (except the A3000). Not tested on A4000 and A1200 but should work anyways. Not tested on animals. The authors are not responsible for any damage or loss of data as a result of using this program. This program may not be included in PD libraries or likes without written permission from the authors. Also, your charges for this program may not exceed the expences for disks and postage. You may only spread this program if you include all files on this disk. Contact one of the authors (see below) if you have questions in this direction. ------------------------------------------------------------------------------- Signed: Tom "Outland" Bech of CryptoBurners. January 18th, 1993. Please send bugreports and suggestions to my internet account (E-Mail): db62@hp825.bih.no. Please do not flame my account for other reasons, ok? :) At the present version bugs are most likely to appear in DiskOp screen, so if you consider yourself a real bug-hunter, then this is definately the place to start ;) We'd prefer that you direct most of the mail to Tom's E-Mail account, but if you don't have access to an Internet account (or E-Mail), or if you for any other reason want to contact one of the other authors, then you may find the authors addresses below. We do not guarantie any answers, so if you enclose equipment, eg. disks, then don't expect to get them back. However, we will try to answer serious letters as far as we can. Please direct all snail (eg. ordinary mail) concerning programming to Ivar. Contact addresses to the authors: Ivar "Olorin" Just Olsen Mobergslien N-5200 OS Norway Tom "Outland" Bech Soere Skogvei 73 N-5037 SOLHEIMSVIKEN Norway Bjarte "Krest" Andreassen Løtvetlia 12 N-5064 STRAUMSGREND Norway /* End of file */ Introduction. ============= The text below was intended to be the documentation on the fileformat used in this release of ProTracker. However, we decided to wait with the actual implementation of the format until having released a couple of versions, because we'd like to hear some comments, suggestions etc. upon it first. So read it lightly, and feel free to post your opinion to one of the authors (see the ReadMe.doc file elsewhere on the disk). Note that since this is only a suggestion, don't start programming a revolutionary new piece of code based on this info yet; we may change the format :)... Here we go... - Signed Tom "Outland" Bech of CryptoBurners. -**- Protracker release 3.00 Beta. Fileformat documentation. ======================================================= This document includes the complete documentation of the fileformat used in Protracker 3.00, and instructions on how to use it. Fields marked "*Reserved*" are reserved for future use and are guarantied to cause hangup if messed with. General ------- With this release of Protracker we have decided to change the filestructure of the musicfiles produced with the program. We felt the old format was too obsolete, messy and out of date for us to use any further. So we invented this new format. The format is based upon Interchanged File Format (IFF) chunks, originally developed by Electronic Arts, but now in widely use on the Amiga. The format allows considerable flexibility and does not suffer too severly from changes and updates, and is therefore perfect for our use. The Format ---------- We will in this section introduce and describe each chunk type appearing in a Protracker music file. Look in the next section for the sequencial description. ** Contents of Chunk "VERS": OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "VERS" Chunk identifier. 4 4 ???????? Chunk length (in bytes). 8 2 ???????? Version number (word). 10 6 "PT3.00" Version ID string. -------------------------------------------------------------------------------- This chunk is used by Protracker to identify the producer of the module, and if necessary perform upgrade-conversion if the file was made with a pre- vious version of Protracker. There can be at maximum one "VERS" chunk in a Protracker music file. This chunk is not critical; it may be obmitted, but be aware of the possible incompatibility problems that may arise if it's left out. ** Contents of Chunk "INFO": OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "INFO" Chunk identifier. 4 4 ???????? Chunk length (in bytes). 8 32 [..??..] Song name (string). 40 2 ???????? Number of instruments (word). 42 2 ???????? Number of positions (word). 44 2 ???????? Number of patterns (word). 46 2 ???????? Overall volume factor (word). 48 2 0006h Default speed (#VB) (word). 50 2 ???????? Packed field. See below. -------------------------------------------------------------------------------- Protracker uses this chunk to set different internal variables, and to store vital information used in replay and processing of the file. The song name is a maximum 32 Chars long ASCII string. It need not be NULL-terminated. Number of instruments indicates the number of instruments used in the song, it may range from 0 to 65535. At present version number, however, there may be maximum 255 instruments in one song. Number of positions reflects the actual length of the song, that is; how many patterns that will be played during a complete cycle. This number may vary from 0 to 65535. Number of patterns, on the other side, reflects how many _different_ patterns that will be played during the song. This number is used to calculate the total length (in bytes) of the song. The Overall Volume factor is used to compute the final volume of all channels after the individual channel-volumes have been figured out. In this way it is easy to control the loudness of the music from the program/ song itself. Default speed is the number of VBlank frames between each pattern position change, and is as default set to 0006h. The packed field consists of these bits (right to left order): Bit Meaning 0 1 Default -------------------------------------------------------------------------------- 0 Filter flag. Filter off. Filter on. 0 1 Timing method. VBlank. CIA timing (BPM). 0 2 File type. Module. Song (no instruments). 0 3 Packstatus. Packed patterns. Raw patterns. 1 4 Length flag. Equal pattern length. Variable pattern length. 0 5 Voices flag. 4 voices. 8 voices. 0 6 Sample res. 8 bit. 16 bit. 0 7 *Reserved* x 8 *Reserved* x 9 *Reserved* x 10 *Reserved* x 11 *Reserved* x 12 *Reserved* x 13 *Reserved* x 14 *Reserved* x 15 *Reserved* x -------------------------------------------------------------------------------- There can be at most one "INFO" chunk in a Protracker musicfile. This chunk is vital; it _must_ be present for the replay routine to function properly. ** Contents of Chunk "INST": OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "INST" Chunk identifier. 4 4 ???????? Chunk length (in bytes). 8 32 [..??..] Instrument name (string). 40 2 ???????? Length of instrument (word). 42 2 ???????? Instrument loop start (word). 44 2 ???????? Instrument loop length (word). 46 2 ???????? Instrument volume (word). 48 2 ???????? Instrument finetuning (integer). -------------------------------------------------------------------------------- The "INST" chunk is used to store information about an instruments properties, such as length and volume. The instrument name is a maximum 32 Chars long ASCII string. It need not be NULL-terminated. The Length field describes the length of the instrument (in words) and thus ranges from 0 to 128Kb (65535 words). Instrument Loop Start sets the offset from which to start playing after the first replay. This value may vary from 0 to the instrument length. Instrument Loop End sets the length of the loop to play after the first replay, relative to the loop start value. It may thus vary from 0 to [Ins_len-Loop_start]. Instrument volume indicates which volume to use in the replay of the sample, if the song doesn't say differently. This value varies between 0 and 40h. Instrument finetuning sets the sample-rate correction difference and varies from -7 to 7 (0fff9 to 0007h). There may be any number of "INST" chunks in a Protracker music file, limited to the number of instruments actually used in the song. This chunk is not vital; it may be left out if the song-only bit of the control word in the "INFO" chunk is set. Otherwise, it should result in an error. ** Contents of Chunk "PPOS": OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "PPOS" Chunk identifier. 4 4 0ffh Chunk length (in bytes). 8 256 [..??..] Pattern position table. -------------------------------------------------------------------------------- This chunk contains the table defining which pattern to play in a given song- position. Each entry in the table is a byte indicating which out of 256 possible patterns to play. There may be at maximum one "PPOS" chunk in a Protracker musicfile. This chunk is vital; it _must_ be present to play the song. ** Contents of Chunk "PTRN": OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "PTRN" Chunk identifier. 4 4 ???????? Chunk length (in bytes). 8 32 [..??..] Pattern name. 40 ? [..??..] Pattern data. -------------------------------------------------------------------------------- This chunk is used in a module of variable pattern length. The chunk must thus appear as many times as there are patterns in the song. The chunk length divided by 8 ( >>3 ) will show the pattern length (default 64). Pattern name is a 32 byte long ASCII string, describing the pattern, eg. "Intro part 3". It need not be NULL-terminated. This chunk is critical; it must be present in the file, or it will be regarded invalid. NOTE: This chunk is not in use in the present version (3.00B), and will be ignored if found. ** Contents of Chunk "SMPL": OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "SMPL" Chunk identifier. 4 4 ???????? Chunk length (!in bytes!). 8 ? [..??..] Raw sample data. -------------------------------------------------------------------------------- The "SMPL" chunk contains the raw sample data of an instrument. This chunk is not critical; if the song-only bit of the "INFO" chunk is set, it may be obmitted. If, however, the file is a module, then the number of "SMPL" chunks in the file must be equal to or greater than the number of instruments used in the song. If not, the file will be regarded incomplete. ** Contents of Chunk "CMNT": OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "CMNT" Chunk identifier. 4 4 ???????? Chunk length (in bytes). 8 ? [..??..] Raw ASCII text. -------------------------------------------------------------------------------- The "CMNT" chunk is used for a signature, comments, greetings, date of completion or whatever information the composer wishes to include with his or hers creation. This chunks is not critical; it may be left out and will typically be ignored by most applications. These are the chunks that may appear in a Protracker musicfile. If other chunks are encountered, they will be ignored. Any program dealing with this fileformat should perform tests to determine the validity of the file in consideration. Using the Protracker.library will guarantee correct handling of musicfiles, and we strongly encourage the use of this runtime shared library instead of hacking away on your own. Look elsewhere on this disk for the library documentation, the library can be found in the "LIBS/" directory. The sequential format --------------------- In this section we will describe how the various chunks are expected to be located within the file. These rules _must_ be followed or it will wreak havoc when tried manipulated with inside Protracker. Here comes the header in table form: OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "FORM" Indicate start of IFF file. 4 4 ???????? File length. 8 4 "MODL" IFF type identifier. ------------------------------------------------------------------------------- This header must be found in the start of the file, or it will be rejected as not being a Protracker musicfile. From offset 12 in the file, things may vary somewhat. The only rules are these: After a "INST" chunk a "SMPL" or a new "INST" chunk _must_ follow. This "SMPL" chunk will be regarded as the sample data of the instrument(s) preceding it. If after a "INST" chunk another "INST" chunk follows, and the module-flag in the "INFO" chunk is set, then all "INST" chunks following each other will share the same sampledata found in the first "SMPL" chunk after them. Also, all "INST" and "SMPL" chunks must be found in sequence. That is, when a "INST" chunk is found for the first time in a file, all other "INST" and "SMPL" chunks must follow. If this is not so, an error message should be given, and processing terminated. Note that in a song-only file, no "SMPL" chunks should be included. If any "SMPL" chunks are encountered in such a file, they should be ignored and a warning given. All other chunks used in a musicfile may be located anywhere in the file, usually in the beginning of it, but no assumptions of their locations should be taken. Note that all used chunks _must_ be found _before_ the "BODY" chunk, which is the last chunk to be found in the file. Searching for chunks should stop when encountering a "BODY" chunk. The "BODY" chunk is constructed like this: OFFSET Length Contents Meaning -------------------------------------------------------------------------------- 0 4 "BODY" Chunk identifier. 4 4 ???????? Chunk length (in bytes). 8 ? [..??..] Raw pattern data. ------------------------------------------------------------------------------- Chunk summary ------------- Now follows a list of the chunks that have meaning in a Protracker musicfile: Chunk Function Critical? ------------------------------------------------------------------------------- "VERS" Contains information about the producer of the file. No "INFO" Contains vital information and standard settings. Yes "INST" Information about instruments; such as length, volume etc. Yes "SMPL" Raw sample data associated with one or more instruments. No "PPOS" Position table. Information about patternsequence. Yes "CMNT" Comments, greetings etc. Contains information in ASCII code. No "PTRN" Pattern data. Used only in modules of varying patternlengths. Yes "BODY" Pattern data. Used in modules of equal patternlengths (default). Yes ------------------------------------------------------------------------------- /* End Of File */