Since people have asked me on detailed information about commands, i hereby provide the IT.txt source with its commands. Its more detailed about some commands, than the modplug helpfile. 3) The third column contains the volume or panning of the note. To toggle between entry of volumes and panning, press '`' Volumes. 0 is the softest (ie. nothing) and 64 (decimal!) is the loudest. If no volume is specified, then the default volume for the sample is used. (Note that effects *CANNOT* raise the volume above 64) The volume scale works linearly - ie. one note played at a volume of 64 will be the same 'loudness' as 4 of the same note, one played at a volume of 10, another at a volume of 30, another at a volume of 20 and another at a volume of 4. (10+30+20+4 = 64) But if you have a choice, always go for the single note (it will require less processing (occupy less channels), and also sound better in quality, due to roundings that occur in processing softer volumes). Panning. Panning controls appear in a different colour to the volume controls. For panning in this column, 0 represents far left, and 64 represents far right. If you have an Xxx effect at the same time, the Xxx will take precedence over this column. It is more efficient filesize-wise to use a panning control in this column rather than in the effect column. Volume, Panning & Effect?? OK. So you want to do something tricky. Well, it's possible to get all 3 of these how you want with a little meddling with the channel volume control - just place one before the row with an appropriate value (remember that the range is 0->40 HEX) such that the channel volume scales the default volume to the desired value.... What I mean is that if you want to play a note at volume 32, pan 48, with vibrato H81, then you can do the following: ฆจจจ จจ จจ M20ฆ - Set channel volume to HALF. ฆC-4 01 48 H81ฆ - The 48 is a pan command - this assumes that the default volume for sample/instrument 1 is 64. Volume Column Effects In IT208 and higher, some extra functions are available in the volume column. These allow you to slide the volume up/down and pitch up/down, just like the final column effects. If you aren't familiar with the rest of the editor, leave this section out for now and come back after you have become acquainted to column (4) of the editor - the effects column. Volume column effects are selected by pressing A-H in the first column of the effects. Ax = fine volume slide up by x Bx = fine volume slide down by x Cx = volume slide up by x Dx = volume slide down by x Ex = pitch slide down by x Fx = pitch slide up by x Gx = portamento to note with speed x Hx = vibrato with depth x In all cases, if x is 0, then the effect memory is used (as explained in (4) The memory for Ax/Bx/Cx/Dx are shared, as is the memory for Ex/Fx. 4) The final column contains effect data. For those of you who are just starting, I would advise you to leave this section until later, when you have already dabbled with entering notes, and want some special features. It's easy to get caught up with all these special features and you can 'overdo' the effects. And it will sound absolutely pathetic. Trust me, I know - I've done it Smile Effects are entered by typing 'a'-'z', then a hex value (see later for an explanation of hex numbers) as the final two entries. The effects allow you to a wide variety of functions that are otherwise impossible to obtain. Due to the repetitive nature of some effects, there is a 'memory' so that instead of typing: จจจ จจ จจ G12 It is easier to จจจ จจ จจ G12 จจจ จจ จจ G12 use: จจจ จจ จจ G00 จจจ จจ จจ G12 จจจ จจ จจ G00 จจจ จจ จจ G12 จจจ จจ จจ G00 จจจ จจ จจ G12 จจจ จจ จจ G00 จจจ จจ จจ G12 จจจ จจ จจ G00 จจจ จจ จจ G12 จจจ จจ จจ G00 The following effects 'memorise' their previous values: (D/K/L), (E/F/G), (HU), I, J, N, O, S, T, W Note: Bracketed commands share the same 'memory' value. So จจจ จจ จจ E12 can be written as: จจจ จจ จจ E12 จจจ จจ จจ F12 จจจ จจ จจ F00 จจจ จจ จจ E12 จจจ จจ จจ E00 จจจ จจ จจ F12 จจจ จจ จจ F00 C-4 01 จจ G12 C-4 01 จจ G00 Commands H and U are linked even more closely. If you use H00 or U00, then the previous vibrato, no matter whether it was set with Hxx or Uxx will be used. So: จจจ จจ จจ H81 Is the same as: จจจ จจ จจ H81 จจจ จจ จจ U00 จจจ จจ จจ H81 จจจ จจ จจ U83 จจจ จจ จจ U83 จจจ จจ จจ U00 จจจ จจ จจ U83 จจจ จจ จจ H00 จจจ จจ จจ U83 Hex Numbers Note: Impulse Tracker works ENTIRELY with decimal numbers EXCEPT for the effects column. Instead of using a decimal system (ie. base 10), it is more natural for the computer to work with hexadecimal (often abbreviated to simply 'Hex') - numbers which operate in base 16. The first 9 numbers in hex are denoted by '1' to '9' and the next 6 are denoted by 'A' to 'F'. So if you count in hex, it will be as follows: (0), 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 2A etc. To convert a hex number to decimal, multiply the 'tens' column by 16 and add the value of the second column. ie. 32 Hex = 3*16+2 = 50 decimal. 2A hex = 2*16+10 = 42. (because A = 10) The maximum number that you can represent with two Hex digits is FF = 255 decimal. Hope that this makes SOME sense Smile Effects. Axx Set Speed. I prefer to think of this command as "Set Frames per Row". Normally, the tracker operates at around 50 frames a second. If the rows were played at this speed, then a huge amount of space would be required to enter the pattern data. Instead, setting the 'speed' of the song will cause the tracker to wait on the current row for 'xx' frames. Hence, setting the speed at 50 (decimal = 32hex) will cause each row to last about a second - quite a long time! The default is A06. The initial speed can be set in the variables screen on F12. If two Axx commands are given in the same row, then the command in the higher channel (by number) will take effect. Bxx Jump to order. Causes the song to jump to order xx (hex). This is often used to create looping songs. If two Bxx commands are given, then the command in the higher channel will take effect. Cxx Break to row. The Command Cxx signifies the end of the current pattern, and also that the next pattern should be played from row xx (hex) If two Cxx commands are given... you know Smile D0x Volume slide down The volume slide down command causes the volume of the note to be reduced by x for each frame after (for that row). ie. If you have a note at volume 64, with command D01 and speed A06, then the final volume will be 64-5=59. A note at volume 32 with command D02 at speed A05 will result in a volume of 24. For greater S3M compatibility, D0F will cause the volume to drop by 15 EVERY frame, instead of just off-note frames. Here's a full frame-by-frame description which should provide greater understanding: At 'speed' 4: C-4 01 .. D04 What this does is: Frame 1: Plays C-4 with instrument 1 Frame 2: Lowers the volume by 4 Frame 3: Lowers the volume by 4 Frame 4: Lowers the volume by 4 The next frame will be controlled by the next row of information. Dx0 Volume slide up. Operates exactly the same way as D0x, but slides the volume up by 'x'. Volumes cannot exceed 64 (checked and limited internally). For greater S3M compatibility, DF0 will cause the volume to rise by 15 EVERY frame, instead of just off-note frames. DFx Fine volume slide down. Takes the volume down by x at the start of the row. DxF Fine volume slide up. Takes the volume up by x at the start of the row. Exx Pitch slide down The pitch will slide down with speed xx (hex). In linear frequency mode, a pitch slide down by a particular value will always cause the same "pitch interval" - this does not occur in Amiga frequency mode. Valid ranges for xx are between 0 and 0DFh (as > 0E0h will be interpreted as fine slides) EFx Fine pitch slide down Slides the pitch down by x at the start of the row. EEx Extra fine pitch slide down Same as EFx, but 4 times finer. (ie. EE4 is equivalent to EF1) Fxx Pitch Slide up FFx Fine Pitch slide up FEx Extra fine pitch slide up Operates in the same manner as the Exx commands, but slides the pitch up. If the pitch gets 'too high', then the channel is turned off. Gxx Portamento to note. This command requires 2 parameters: A note to slide to and a speed. Example: C-4 01 จจ .00 G-4 01 จจ G08 จจจ จจ จจ G00 จจจ จจ จจ G00 This will cause the note C-4 to slide to G-4 with speed 8. You *CAN* change the sample that the note is sliding to. It is a good idea to make sure that the C5Speed of the samples is similar, if you want to try this! The new sample will play from it's beginning. Hxy Vibrato with speed x, depth y Causes the frequency to osciallte with depth 'y' at speed 'x' which causes an interesting effect. Don't get carried away with it though! If you specify EITHER x or y as 0, then the previous value will be used. Ixy Tremor with ontime x, offtime y. Causes the volume of the instrument to remain normal for x frames, then sets the volume to 0 for y frames. Jxy Arpeggio with halftones x, y. This causes the note to quickly cycle through three notes - the note playing, a note x halftones above, and a note y halftones above. This causes an effect similar to old C-64 chords. Example: C-4 01 จจ J47 will cause the notes C-4, E-4 and G-4 to be cycled. Kxx Dual command: Vibrato + Dxx (Volume slide) Note: The vibrato could have been set with either Hxx or Uxx Lxx Dual Command: G00 + Dxx (Portamento to and Volume slide) Mxx Set channel volume Each channel has a volume range from 0->40h. The lower the value, the softer the notes in the channel. This command is convenient for making 'echoes'... you won't have to modify the echoing channel from the original, except for placing a M20 at the top of it! Values greater than 40h are ignored at playtime. N0x, Nx0, NFx, NxF Slide channel volume commands These commands work in the same manner as the slide volume commands, but operate on the channel volume, rather than directly on the note volume. Oxx Set sample offset. This will cause a sample to be played from offset yxx00h. This is useful to skip past the first part of a sample which may have a loud hit, or to start a speech sample half way through. If you specify a value PAST the end of a sample, then the command is ignored. The "y" part of yxx00h is set with command "SAy" Example: ... .. .. SA5 C-4 01 .. O10 This will play note C-4, instrument 1 at offset 51000hex Note to programmers: Oxx for 16-bit samples will move to the xx00h*2 position in the sample - ie. the 'xx00th' sample. P0x, Px0, PFx, PxF Slide panning commands. These work in the same maner as the slide volume commands, but operate on the channel panning. P0x slides the panning right, while Px0 slides the panning left. Qxy Retriggers a note after y frames with volume modifier x. This will cause a sample to be replayed from it's beginning after every y frames. 'x' can be any of the following: Value Effect on volume each retrig. 0 No change 1 -1 2 -2 3 -4 4 -8 5 -16 6 *2/3 7 *1/2 8 No change 9 +1 A +2 B +4 C +8 D +16 E *3/2 F *2 Rxy Tremelo with speed x, depth y This command acts similarly to the vibrato command, but affects the note volume, instead of the pitch. If you specify EITHER x or y as 0, then the previous value will be used. S3x Sets vibrato waveform to x S4x Sets tremelo waveform to x S5x Sets panbrello waveform to x Values for x: 0 = sine wave 1 = square wave 2 = Ramp down 3 = Random! S70 Past note cut S71 Past note off S72 Past note fade With the loss of 1-1 correspondence of editing channels to internal playing channels, these commands provide control over notes that have already been played by a channel. Example: Consider the following situation, where instrument 1, notes C-4 & D-4 map to a looped sample, and the New Note Action is set to continue. C-4 01 64 .จจ D-4 01 64 .จจ E-4 01 64 .จจ <--- Use S70 here! Ordinarily, control would be lost over C-4 and D-4, but using command S70 at the point indicated, the notes C-4 and D-4 would be stopped immediately when the note E-4 plays. Similarly, note off commands and Fadeout commands can also be issued. Note: You *MUST* be in instrument mode for these to have any significance. S6x Pattern delay for x ticks. S73 Set NNA to note cut S74 Set NNA to continue S75 Set NNA to note off S76 Set NNA to note fade These options allow you to override the default NNA for a particular NOTE (ie. it does not affect the instrument) See section 2.5 for an explanation of NNAs. Note: You *MUST* be in instrument mode for these to have any effect. S77 Turn Volume envelope off. Stops the processing of the volume envelope. This is for the times that you don't want to use the volume envelope that you've created. S78 Turn volume envelope on. Sometimes, you'll decide that it's better not to use the volume envelope for most cases, but you may just want to use it a few times - this is the command that lets you do that! Note: You *MUST* be in instrument mode for this to work. S8x Set panning position Set panning position, S80 is leftmost, S8F is rightmost. This is an obsolete command, provided only for ST3 compatibility. Use command Xxx instead. S91 Set surround sound! For those of you who are lucky enough to have a dolby surround sound decoder (myself not included - so if ya wanna send me something.....), this *should* cause the sound to come from the surround speaker. This is a pseudo-panning command, and issuing either Xxx or S8x will cause the surround sound to be reset. If you try and play Surround Sound on a GUS, Interwave or AWE32, it will be played as a central pan. SAy Set high-offset. Check Oxx for an example. SB0 Set loopback point SBx Loop x times. This pattern space-saving feature will cause the pattern to be looped x times back to the last SB0. Note that you can only loop within the pattern! Also, each channel has it's own loop-back information... so you HAVE to have the SB0 and SBx in the same channel for it to operate. SCx Note cut after x frames This will cause a note to be immediately stopped after x frames. It is similar to issuing a "^^^" in the note column, just that it has a finer control over timing. SDx Note delay for x frames Actually, this command works like "interpretation" delay for x frames. Any data - note, sample/instrument or volume in the channel will not be interpreted until x frames into the row. SEx Pattern delay for x rows This will cause a "pause" on the row for effectively x rows longer. Note that if TWO pattern delay commands are issued, then the only the command in the higher channel will be considered. Txx Set tempo to xx Valid ranges are between 20h and 0FFh. The higher the value, the faster the playback. This essentially determines the time length of each frame, by the following formulas: Frames per minute = 24*Tempo equivalently: Frames per second = 0.4*Tempo T0x Tempo slide down T1x Tempo slide up Tempo slides up and down are used to smoothly modify the speed of the song. The tempo is modified by ฑx every non-row frame. Uxy Fine vibrato with speed x, depth y Same as vibrato, but 4 times finer in depth. Vxx Set Global volume Valid ranges are between 0 and 80h. All notes playing are affected by this change. Values greater than 80h are ignored at playtime. W0x, Wx0, WFx, WxF Slide global volume Similar to the Dxx commands, but operate on the global volume. Useful when fading out songs. Xxx Set panning position Sets the panning position anywhere from left to right (X00 is left, XFF is right). Yxy Panbrello with speed x, depth y. What the hell is panbrello? Well, it's a word that I coined late one night after a friend suggested that there should be a random pan position command. I decided.. why not - I'll make the vibrato/tremelo equivalent of panning! And so you have here, 'panbrello.' What this does is instead of oscillating frequency (pitch) or volume, it oscillates the panning position about the 'set' panning position for a channel. This is for you techno freaks out there who want another function to stuff around with! Smile The random pan position can be achieved by setting the waveform to 3 (ie. a S53 command). In this case *ONLY*, the speed actually is interpreted as a delay in frames before another random value is found. so S14 will be a very QUICK panbrello, and S44 will be a slower panbrello. With any other waveform, the higher the value for x, the faster the panbrello, like vibrato and tremelo. If you don't know what I'm talking about, check out the stereo-indicators on the info page (don't forget that you have to be in stereo mode!) If you specify EITHER x or y as 0, then the previous value will be used. Copied from the original document IT.TXT that was written by Jeffrey Lim aka Pulse