Üßßßßßßßß²ßßßßßßßß² ²ßßßßßßßßß²ÜÜ ² ÜÛ²ßßßß ÜÛÛÛÛÜ ßßÛ Û ±²Û ±²Û Û Û ßßßßÛÜ ÞÛÛ ÛÛÝ ² Û ²ÛÛ ²ÛÛßß ÛÜÜ Û ÜÜÝ ÛÛÝ ÛÛ² ÛÛÛ ² Û ²ÛÛ ²ÛÛ ÞÜÜ þ² Û ÛÛ² ÛÛÛ ÛÛ² ÛÛÛ ²Ü² ÛÛÛ ÛÛÛ ÛÛÛ Û Û ÛÛ² ÛÛÛ ÛÛÛÜÜÛÛÛ ÜÜÜÜÛÛÛ ÛÛÛ ÛÛÛ Û Û ÛÛÛ ÛÛ² ÛÛÛ ÛÛ² ÞÛÛ ÛÛ² ÛÛÛ ÛÛ² Û Û ÛÛÛ ÛÛ² ÛÛÛ ÛÛ² ÛÛÛ ÛÛ² ÛÛÛ ÛÛ² Û ÞÝÞÛÛ± ÛÛ² ÛÛÛ± ÛÛ² ÛÛÛ± ÛÛ² ÞÛÛ± ÛÛ² Û Û ßÛ²ÜÛ²± ÛÛÛ² Û²± ßÛÛ²ÜÛ²± ßÛ²ÜÛ²± Û ²þÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜܲÜÜÜÜÜÜÜܲ ÄÄ[ Surprise!ÿAdlib Tracker v2.00 ]ÄÄ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ Surprise! productions ³ ³ Adlib Tracker Version 2.0 ³ ³ >>> Beta Release <<< ³ ³ ³ ³ Erik Pojar, ³ ³ Siegfriedgasse 55 ³ ³ 1210 Wien ³ ³ Austria ³ ³ ³ ³ +43 1 2574457 ³ ³ epojar@stud1.tuwien.ac.at ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ Page 1 Surprise! productions Adlib Tracker 2.0 Help file ------------------------------------------------- Contents: What's new in Version 2.0.......................2 General Stuff...................................3 The Main Menu...................................4 The Edit Mode...................................5 Making Music....................................6 The Instrument maker............................7 Command summary.................................12 File Format.....................................16 Last Words & Adress.............................18 This file was typed by Erik of Surprise! productions What's new in Version 2.0 Page 2 ------------------------- There have been quite a lot changes from previous versions. Here are the highlights: - 90 x 30 characters textmode used. (VGA needed) - General optical brush-up - All 8 Oktaves of the Adlib can now be accessed - Some errors in the handling of the effect commands were removed. Now SADT SHOULD behave exactly like any Amiga-Tracker - Now also supports the commands 4, 5 and 6. Commands 7 and E not :-( - New file format (versions 7 to 9) which takes less space. - Completely new Memory management. Free memory is shown - now also supports BPM timing - Default speed now is 125 BPM, speed 6 - Configuration menu lets you specify song-, instrument- and module directory - New edit functions - Bugfix in the Amiga-Load function. Now supports general 4-voice formats along with 6- and 8-voice formats. - Totally rewritten play routine in assembler. - a totaly new and unique feature for the instrument handling was implemented: The 'special arpeggio'. It let's you change the frequency, volume and even the waveform of an instrument while it's played. General Stuff Page 3 ------------- In the whole program (and in this doc too..) some (quite common?) pre- fixes are used: [a] means the 'a' key on your Keyboard [A] means the 'a' key + [Shift] on your Keyboard [^A] means the 'a' key + [Control] [@A] means the 'a' key + [Alt] I'm not going to explain every obvious function of the Editor. For ex- ample, I won't tell you that Alt-Save means 'Save Song'. It's all in the Main Menu, so keep your eyes open! This program should be keyboard driver independent. This means it should not matter wether you use it with a german, english, french or any other keyboard layout. However, if you encounter some problems with the keyboard, switch to the U.S. layout and everything should be just fine. The Main Menu Page 4 ------------- The main menu is more or less self explaining, there are several functions which are accessible through alt-key combinations or ctrl-key combinations. For example Alt-L to load a song, or Ctrl-L to load an Amiga Module. However there are a few functions which don't show up in the main menu: * [@1]..[@9]: Toggle Channel on / off Control P: Play from the beginning of the song * Ctrl+Alt: Fast forewind when playing Cursor Keys: Move around pattern Tabulator: Jump to next Channel Shift Tab: Jump to previous Channel F5-F9: Jump to 1st, 16th, 32th, 48th, 63th line of pattern PageUp/Down: Goto previous / next pattern * Ctrl PgUp/Dn: Goto previous / next pattern (according to patternorder) * [+],[-]: switch instruments. Space: Toggle Edit / Menu mode. In Edit mode, the border is blue. Delete: Delete entry in current channel R.Shift+Del: Delete entry selectively: If the cursor is in the column for the notes, only the note is deleted, if it's in the column for the instruments, only the instrument is deleted, otherwise the effects. Shift F1: Shift Keyboard 1 Octave up Alt F1: Shift Keyboard 1 Octave down Control F1: Mark every 4th line (like in ScreamTracker..) Shift F2: Toggle linefeed for editing effect commands F2: Mark Block Begin F3: Mark Block end (the block is not displayed) F4: Paste Block Shift F4: Paste Commands in Block Control F4: Paste Notes in Block F10 Release sustaining sound in current channel Shift F5: Insert blank line in current channel Control F5: Insert blank line in all nine channels Shift F6: Delete line in current channel Control F6: Delete line in all nine channels Shift F7: Transpose current channel one halfnote up Control F7: Transpose whole pattern one halfnote up Alt F7: Transpose current Note up, and move to next Shift F8: Transpose current channel one halfnote down Control F8: Transpose whole pattern one halfnote down Alt F8: Transpose current Note down, and move to next F10 Release sustaining sound in current channel F11/F12 Change BPM value The Funcions marked with * are also available while playing a song Note: The Control-S function (Save compressed song) is for internal usage only. Sadt can NOT load compressed songs! So always save songs uncompressed. The Edit Mode: Page 5 -------------- The Edit mode let's you edit a song... All of the above functions are available via hotkey... In fact most of the functions are only available in edit mode. All the deleting, transposing, etc. is not available in non-edit mode. In non-edit mode you can still move around the patterns and play some notes, but they won't show up in the patterns Making music Page 6 ------------ (this part of the doc is taken from the PT1.1 helpfile. I didn't see the point in inventing it all again... ;-) Any piece of music written with the SADT is built up from patterns. Each pattern is built up from 9 tracks, one for each of the adlib's audiochannels. A pattern is 64 lines long. The magnified line is always the one you edit. If you need shorter patterns, use the pattern break command. A Track is built up like this: 32 C-3 01 C20 / \_/ |/ \_/ / / | \ Pos Note Instr. Effect command The C-3 is the note being played at patternposition 32. 01 is the instrument number, and the three last digits are the effect command, in this case, set volume to 20 Hex. (C is the command, 20 the value) Values for instruments and effects are always hexadecimal. After you have edited all your patterns you have to determine the pattern order. For that simply use the Order editor. Furthermore you can define the length of a song, and a restart pos. Here's an example: Let's say you have entered three patterns (Numbers 0, 1 and 2) and wanto to play the pattern 2 twice, then pattern 0 and finally pattern number 1 three times. afterwards the music should start with the second pattern 2 again. Here's what to do: Edit the Pattern order like this: Position Pattern number 0 2 1 2 2 0 3 1 4 1 5 1 . . . . Set Songlength to 6, and Restart to 1. To enter the notes SADT uses a piano-like keyboard layout. Assuming you are using a US-Keyboard layout the keys would be: High Notekeys: 2 3 5 6 7 9 0 Q W E R T Y U I O P Low NoteKeys: S D G H J L ; Z X C V B N M , . / The Instrument maker Page 7 -------------------- I'll just explain the basics how the FM chip works, I wont list all the keys, just look at the menu that pops up. Still there are a few special keys I'd like to mention: [F10] Releases a sustaining Note [F2] Copies the current Instrument into a buffer, [F4] Pastes this buffer. (real handy if you need several very similar instruments... just copy 'em, and then change 'em) But now let's really get to the FM instrument maker O.K. Here we go: The adlib has two operator cells for each voice (channel) ù The Carrier ù The Connector (often also called Modulator...) Each voice can work in ù Additive Synthesis (Frequency Modulation = Off) ù Frequenzy Modulation (Freq. Mod. = On) mode. When using Additive Synthesis, each operator produces it's sound and plays it simultaneousely... When using Freq. modulation, the Connector changes the sound of the Carrier (yep! it modulates the sound.. that's why it's also called modulator... ;-) O.K. here are the mere basics: for each Cell you must define: ù Attackrate (0-15, 0 = none 15 = fastest) ù Decayrate (0-15, 0 = none 15 = fastest) ù Sustain level (0-15, 0 = none 15 = fastest) ù Release Rate ( just guess what.... ) This is how it works: first theres nothing, then the tone rises with the speed of the to it's total level. Afterwards it drops with the speed of to it's And then drops with the speed of to zero again If you set the flag ù Sustaining sound to On, then the sound stays at the till the note is released. (Just like when you keep a key pressed on an electric organ...) To release a note press [F10]. Then the sound vanishes with the speed of For each operator there are three possible waveforms: Page 8 0: Sinus ---- - - / \ / \ ---------------------\------------------/ \ / - - ---- 1: Half Sinus ---- - - / \ / \ ---------------------\------------------ 2: abs(Sinus) ---- ---- - - - - / \ / \ / \ / \ ---------------------\/--------------------\ 3: Sinus ? --| --| - | - | / | / | / | / | ------------------------------------------ Volume Of course, there's also volume control: volume ranges from 0 to 63 0 = silents (grin), while 63 = max. volume Level Scaling Used to control the volume. Level Scaling is a Value between 0 and 3. 0 means, that the volume of the sound is not changed, while values >0 mean, that higher tones are played at a lower volume. If you set Level Scaling to 3 (which is the max), the volume drops 6db each octave. Frequency Multiplier: specify a value between 0 and 15. That's the multiplier for the frequenzy. If you set it to 15, you'll get really high pitch tones.. If you set it to 1, you get 'the real' frequency. If you set it to 0, the frequency is multiplied by 0.5 Tremolo: If you set this flag to On, the Amplitude is changed in Vibrato-Style.. Vibrato: Also a flag. Set it to On, and you've got frequency vibrato.. Sustainig Sound: described above. Scaling: Page 9 If this flag is set to On, higher tones sound shorter... Freq. Modulation: If this flag = Off, additive synthesis is used. If it's set to On, freq. modulation is used. Feedback: Define the strength of the feedback (values 0..7) Now. That are the standard parameters of the Adlib-FM chip. But with SADT 2.0 I introduced a new feature: >>>> the special arpeggio <<<< The idea was change both the frequenzy and waveform of an instrument while it's played. The Special arpeggio is controlled by these values: : is a pointer to the arpeggio list : the speed at wich the arpeggio is executed. Set to a value > 0 to turn the spec. arpeggio on. To define the special arpeggio you have to edit the special arpeggio list. Press [@E] to enter the sepcial Arpeggio editor. There are two columns: Halfnote add: here you place the half-note add values just like with the arpeggio command (0) Halfnote adds range from 0 to 96 If you place a value >= 100 it's not treated as a halfnote add but as an absolute note. There are 8 octaves with 12 halfnotes each => 96 notes all in all. If you enter 112 in the half-note add column, this would be the absolute note 112-100 = 12 (which is a C-1). O.K. Absolute notes range from 100 to 195. Page 10 Command: Here you place special commands or different waveforms These commands are available: 255 stop special arpeggio 254 arpeggio loop. The arpeggio continues at the line which is entered in the halfnote add column 253 Release note. Releases a sustained sound 252 Set Volume. Sets the volume to the value in halfnote add. Furthermore you can also change the waveform: The new waveform = (carrier waveform + 1)*10 + connector waveform + 1 if you set carrier or connector waveform to 0 everything stays the same. A few examples: (WF = waveform) Value in Command column what it causes -------------------------------------------------------- 0 Waveforms don't change 44 Carrier WF = 3, Connector WF = 3 34 Carrier WF = 2, Connector WF = 3 12 Carrier WF = 0, Connector WF = 1 23 Carrier WF = 1, Connector WF = 2 20 Carrier WF = 1, Connector WF = unchanged 30 Carrier WF = 2, Connector WF = unchanged 4 Carrier WF = unchanged, Connector WF = 3 Page 11 That's all there is about the special arpeggio. It's a very powerfull function. It let's you create very 'spacy' sounds.... O.K. here are a few documented examples: Let's say you want to have a constant arpeggio of 4 and 7 halfnote adds. with usual commands you would do it like this: C-3 01 047 --- 00 047 --- 00 047 . . . . . . Here' show it's done with special arpeggio. Set to 1 Now edit the arpeggio list: Line Command halfnote add 1 0 0 2 0 4 3 0 7 4 254 1 ( jump back to line 1 ) So, the big advantage is that you can do longer arpeggios: 1 0 0 2 0 1 3 0 2 4 0 3 5 0 4 6 42 3 ( also change waveform) 7 0 2 8 0 1 9 254 5 ( jump back to line 5 ) Remember that is the pointer at which line to start in the arpeggio list. So if it's set to 10, the arpeggio will start at line 10! Well. That's it. I know that my explanations are a bit clumsy, but if you experiment just a little bit, you'll see how it works.. Command summary Page 12 --------------- Commands supported by SADT / Trackers Command # Trackers: Sadt: 0 Normal play / arpeggio Normal play / arpeggio 1 Slide up Slide up 2 Slide down Slide down 3 Tone portamento Tone portamento 4 Vibrato Vibrato 5 Tone Portam + Vol. Slide. Tone Portam. + Vol. Slide 6 Vibrato + Vol. Slide Vibrato + Vol. Slide 7 Tremolo *** NOT SUPPORTED **** 8 *** NOT SUPPORTED **** Release Sustaining Note 9 Set Sample Offset *** INTERNAL USE *** A Volume Slide Volume Slide B Position Jump Position Jump C Set Volume Set Volume D Pattern Break Pattern Break E E-Commands *** INTERNAL USE *** F Set Speed Set Speed NOTE: The Commands 7,8,9 and E are removed if they are encountered when converting an Amiga module. It's no use to play with the command 7. It's simply not supported. The commands 9 and E however, are used for internal data compression. So please keep your hands off of it, unless you know how to handle them. (And since Erik / S!P is the only one who knows what exactly they do.... ;-) 0 - Normal play or Arpeggio 0xy : x-first halfnote add, y-second Arpeggio is used to simulate chords. This is done by rapidly changing the piych between 3 different notes. Example: C-3 00 047 C-Major chord: (C + E + G Or C+4+7 Halfnotes) 1 - Slide Up 1xx : upspeed This simply slides the frequenzy up. This command is called as many times as the speed of the song. Example: C-3 00 103 1 is the command, 03 the speed NOTE: Because of hardware differences the Amiga has different frequenzy divisors than the adlib. This means that sometimes (very seldom) frequenzy slides on the Adlib sound different than on the Amiga. 2 - Slide Down Page 13 2xx : downspeed This simply slides the frequenzy down. This command is called as many times as the speed of the song. Example: C-3 00 203 2 is the command, 03 the speed NOTE: Because of hardware differences the Amiga has different frequenzy divisors than the adlib. This means that sometimes (very seldom) frequenzy slides on the Adlib sound different than on the Amiga. 3 - Tone Portamento 3xx : up/down speed Usage: Destination Note + 3 + slidespeed. This command will automatically slide from the old note to the new one. You don't have to worry about which direction to slide, you only need to set the slide speed. To keep on sliding, just select the command 3 + 00 Example: A-2 00 000 First play a note C-3 00 305 C-3 is the note to slide to, 05 is the slidespeed. NOTE: Because of hardware differences the Amiga has different frequenzy divisors than the adlib. This means that sometimes (very seldom) frequenzy slides on the Adlib sound different than on the Amiga. NOTE: This command does NOT work with special arpeggio instruments. so you'd better use commands 1 or 2 instead. 4 - Vibrato 4xy : x-speed y-depth Example: C-3 00 481 4 is the Command, 8 is the speed 1 is the depth To keep on vibrating, just select 4 + 00. To change the vibrato you can alter the rate, depth or both. 5 - Tone Portamento & Volume slide 5xy : x-upspeed y-downspeed This command will continue the current portamento and slide the volume at the same time Example: C-3 00 503 3 is the speed to slide volume down C-3 00 540 4 is the speed to slide volume up NOTE: This command does NOT work with special arpeggio instruments. 6 - Vibrato & Volume slide Page 14 6xy : x-upspeed y-downspeed This command will continue the current vibrato and slide the volume at the same time. Example: C-3 00 603 3 is the speed to slide volume down C-3 00 640 4 is the speed to slide volume up 8 - Release Sustaining Note 8?? : no parameters This command releases a sustaining sound. It will then die off at the decay rate set for the instrument. Example: C-3 00 800 Play C-3 and release it immediately The command ignores all parameters, so it's the same if you use 800 or, for example, 815. But it's recommended that set the parameters to zero, cause I might cook up another use for this command later.... A - VolumeSlide Axy : x-upspeed, y-downspeed Example: C-3 00 A03 3 is the speed to slide volume down C-3 00 A40 4 is the speed to slide volume up The slide will be called as many times as the speed of the song. The slower the song, the more the volume will be changed on each note. B - Position Jump Bxx : songposition Example: C-3 00 B01 B is the command, 01 the songposition to continue at. This command will also perform a Patternbreak. Please remeber that the position must be entered as hex value. C - Set Volume Page 15 Cxx : volume, 00-40 This command sets a new volume for the instrument. The volume is a hex number. 40hex is 63 which is the maximum volume. However, the adlib uses a logarithmic volume control while the Amiga uses linear control. That means that if you set the volume to 20 on the Amiga it's exactly half of the max. volume. With an Adlib, a volume of 20 is already hardly hearable. Therefore it's often needed to change the volume settings if you convert an Amiga module. Example: C-3 00 C10 C is the command, 10 is the volume (16 decimal) NOTE: Set Volume sets the volume for both, the carrier and the connector. This may alter the sound! D - Pattern Break Dxx : break position in next patt This command just jumps to the next song-position, and continues to play from the patternposition you sepcify. Example: C-3 00 D00 Jump to the next song position and continue play from pattern-line 0 C-3 00 D32 Jump to the next song position and continue play from pattern-line 32 F - Set Speed Fxx : speed (00-1F / 42-FF) This command will set the speed/BPM of the song. Values from 00 to 1F set the Songspeed. Values from 42 to FF set the BPM. Speed 00 stops a song. NOTE: On the Amiga the BPM timing started with the value 20 instead of 42, but due to the PC's timer chip values less than 42hex are not possible. File Format: Page 16 ------------ Have you ever wondered how the files are built up? Well. here is the file formats I use: Offset Length (Bytes) Description ---------------------------------------------------------------------- 0 4 'SAdT' These for bytes mark a Song. 4 1 Version number (currently 9) 5 465 The 31 Instruments 470 496 The 31 Instrument names 966 128 Patternorder 1094 2 Number of Patterns (NoP) 1096 1 Length of Song 1097 1 Restart Position 1098 2 BPM 1100 256 Arpeggiolist 1356 256 Arpeggiocommands 1612 576 Trackorder 2188 2 Aktive Channels Bits: 123456789xxxxxxx 2190 ???*192 Trackdata Trackorder is an 64*9 array that points to the tracks. Track 0 is a empty track (not saved). each track is saved as follows: 64 lines of: nnnnnnni iiiieeee ppppPPPP = 3 Bytes (where n indicates a bit for the note, i indicates a bit for the instruments, e indicates a bit for the effect and p/P indicates the effect-parameter bits.) therefore 64*3 = 192 Bytes. The Instrument Format: Page 17 Offset Length (Bytes) Description ----------------------------------------------------------------------- 0 11 Instrumentdata 11 4 Arpeggiodata O.K. here's how the instrument data is built up: Byte 1: Bit 0: Frequenzy modulation / additiv synthesis Bits 1-3: Feedback Byte 2: Bits 0-3: Freq. Multiplier Ä¿ Bit 4: Scaling ³ Bit 5: Sustaining Sound à Connector Bit 6: Vibrato ³ Bit 7: Amp. Vibrato ÄÙ Byte 3: just like Byte 2, just for the Carrier Byte 4: Bits 0-3: Decay Rate Bits 4-7: Attack Rate Connector Byte 5 Decy, Attack Carrier Byte 6 Bits 0-3: Release Rate Bits 4-7: Sustain Level Connector Byte 7 Release, Sustain level Carrier Byte 8 Waveform Connector Byte 9 Waveform Carrier Byte 10 Bits 0-5: Volume Bits 6-7: Level Scaling Connector Byte 11 Volume, Level Scaling Carrier The Arpeggiodata consists of: ArpeggioStart, ArpeggioSpeed, CurrentPos, SpeedCount, each value is a byte long. Last Words & Adress: Page 18 -------------------- Well. That's it I guess I could go on for hours and hours, but enough is enough. I gotta walk the dog, and then I'll go to bed. If you have any suggestions for me how to enhance this program, then just let me know. I really appreciate the big feedback this program has caused. If you have sent me a letter which I haven't answered yet, just hang on! Thanks for supporting a lousy coder... signed Erik / S!P, Vienna, 4.9.1994 Contact me: Erik Pojar Siegfriedgasse 55 1210 Wien Austria (Europe) (Tel/Fax: +43 (1) 257 44 57) email: epojar@stud1.tuwien.ac.at