Impulse Tracker
The DOS tracker by jeffrey-lim ("Pulse"), written in 100 % assembler during 1995–96 as "an extension to scream-tracker-3" that kept ST3's quick interface and added everything fasttracker-2 had — envelopes, 16-bit and >64 k samples, real stereo — "and more": instruments with New Note Actions on virtual channels, sustain loops, duplicate checks, templates, linear slides (source: s-it-manual). Version 1.01 was announced in traxweekly #42 (January 1996; source: s-tw042-impulse-tracker-v1-01); by late 1996 it was the current choice of the scene with ST3 "now-archaic" (source: s-tw077-general-tracking-tips). Its format is the it-format; its modern descendants are openmpt, Schism Tracker and duet's IT engine.
Limits and formats#
99 samples, 99 instruments, 200 patterns of 32–200 rows, 256 orders, 64 channels plus up to 256 virtual channels; samples 8/16-bit to ~4 MB with forward, ping-pong and sustain loops. Loads MOD, 669, MTM, S3M, XM, IT; saves IT and S3M (with restrictions — see it-format); imports WAV, S3I, IFF, ITS, RAW, GUS PAT, Kurzweil KRZ and samples/instruments out of other modules. A GUS plays 32 channels, an AWE32 30; software mixing on a SB16 does all 64 (source: s-it-manual).
Screens and keys#
| key | screen |
|---|---|
F1 | help (also context help for the pattern editor, sample/instrument lists, info page) |
F2 | pattern editor (F2 again: pattern config — rows, base octave, skip value, highlights) |
F3 / F4 | sample list / instrument list (Ctrl-F3 / Ctrl-F4: sample / instrument library) |
F5 / F8 | play / stop; F6 play pattern, Ctrl-F6 from the current row, F7 from the Ctrl-F7 mark |
F9 / F10 | load / save (Delete removes files) |
F11 | order list, initial channel pan (Space mutes, S surround) and — F11 again — channel volumes |
F12 | song variables: tempo, speed, global/mix volume, separation, Old Effects, Control: Samples / Instruments, mono/stereo, Amiga/Linear slides |
F5+info page | PgUp/PgDn views, Insert/Delete windows, s solo, q toggle, Alt-R swap L/R; columns Frequency, Position, Smp, FVl, CV, SV, VE, Fde, Pn, PE, NNA, Tot (virtual channels) |
Pattern editor#
A row is note · instrument · volume/pan · effect: C-5 01 23 A02. Notes C-0–B-9, middle C is C-5 (one octave up from 037-lab's C-4; source: s-037-lab); two keyboard rows give two octaves above the base octave (/ *). 1 enters note cut ^^^, ` note off === (releases sustain loops). The volume column (0–64, linear — one note at 64 is as loud as four at 10+30+20+4) toggles to pan (0 left, 64 right) with `; from 2.08 it also takes Ax/Bx fine volume up/down, Cx/Dx volume slides, Ex/Fx pitch slides, Gx portamento and Hx vibrato. To get volume and pan and an effect on one note, set the channel volume with Mxx on the row before. Only the effect column is hexadecimal (source: s-it-manual).
Effect memory: a 00 parameter repeats the last value; these groups share one memory: (D/K/L), (E/F/G), (H/U), and I J N O S T W each their own. Use it — D10, D00, D00; G03, G00; Q43, Q00 — for smaller files and faster typing, "especially important for chip songs" (sources: s-it-manual, s-tw058-the-finishing-touches).
Effects#
| cmd | effect | cmd | effect |
|---|---|---|---|
Axx | speed = frames per row (default 06; ~50 frames/s) | Qxy | retrigger every y frames, volume change x (0 none, 1–5 −1/−2/−4/−8/−16, 6 ×⅔, 7 ×½, 9–D +1/+2/+4/+8/+16, E ×1½, F ×2) |
Bxx | jump to order xx | Rxy | tremolo (speed, depth) |
Cxx | break to row xx (hex) of the next pattern | S3x S4x S5x | vibrato / tremolo / panbrello waveform: 0 sine, 1 square, 2 ramp down, 3 random |
Dxy | volume slide: D0y down, Dx0 up, per frame (y × (speed−1) per row); DFx/DxF fine; D0F/DF0 every frame (S3M) | S6x | pattern delay x ticks |
Exx / Fxx | pitch slide down / up (values to DF); EFx/FFx fine, EEx/FEx extra fine (¼) | S70 S71 S72 | past-note cut / off / fade (instrument mode) |
Gxx | portamento to note (may switch sample, which restarts) | S73–S76 | NNA for this note: cut / continue / note off / note fade |
Hxy | vibrato speed x depth y (per-tick, "two times finer" than ST3) | S77 / S78 | volume envelope off / on |
Ixy | tremor on x / off y frames | S8x | pan 0–F (obsolete, use Xxx) |
Jxy | arpeggio +x, +y semitones — "similar to old C-64 chords" (J47 major) | S91 | surround |
Kxy / Lxy | vibrato + volume slide / portamento + volume slide | SAy | high byte for Oxx |
Mxx | channel volume 00–40 ("convenient for making echoes") | SB0 / SBx | loop point / loop x times (per channel) |
Nxy | channel volume slide | SCx | note cut after x frames |
Oxx | sample offset to the xx00-th sample (SAy extends) | SDx | note delay x frames |
Pxy | pan slide (P0x right, Px0 left) | SEx | pattern delay x rows |
Txx | tempo 20–FF (frames/s = 0.4 × tempo; 125 → 50); T0x/T1x slide | Vxx / Wxy | global volume 00–80 (affects playing notes) / slide |
Uxy | fine vibrato (¼ depth) | Xxx / Yxy | pan 00–FF (= volume-column pan × 4) / panbrello (speed, depth; random waveform: speed = delay) |
(sources: s-it-manual, s-tw106-a-little-panning, s-tw058-the-finishing-touches, s-ittech)
Editing and block keys#
Ctrl-Backspace ten-level undo · Space re-enter previous data · 4/8 play note/row · Alt-0…9 skip value (0 = jump to the next channel, for chords; Alt-N multichannel) · Alt-B/Alt-E mark, Alt-L column (×2 pattern), Alt-D by highlight · Alt-C copy, Alt-P paste, Alt-O overwrite, Alt-M mix, Alt-Z cut, Alt-Y swap, Alt-U unmark · Alt-Q/Alt-A transpose ± semitone · Alt-F/Alt-G double/halve block length · Alt-J amplify volumes 0–200 %, Alt-K slide volumes between block ends (×2 clear), Alt-X slide effect values (×2 erase), Alt-S set instrument, Alt-V/Alt-W set volumes / remove volumes without notes · Alt-I templates: copy a block, switch to Template: Overwrite, and every note you type stamps the block transposed — sequences of effects, octaves, sample pairs, stereo pairs (C-4 01 X30 | C-5 01 XC0), open fifths · Alt-T track views, Alt-H no divisions (36 channels on screen) · Alt-F10 solo (sources: s-it-manual, s-tw081-it-tip-of-the-week).
Samples#
Each sample has a default volume, a global volume (scales every use; the right way to attenuate 8-bit samples), vibrato (speed 0–64, best ~24–48; depth; rate = how fast it sets in; waveform), loop and sustain loop (looped only until note off, then the tail plays — "fingers lifting off guitar strings"; keep it < 1/20 s) and the C-5 frequency (Alt-± octave, Ctrl-± semitone). Functions: Alt-O rip from a module, Alt-A signed/unsigned, Alt-Q 8/16-bit, Alt-B/Alt-L cut before/after loop (also click removal), Alt-G reverse, Alt-E/Alt-F resize with/without interpolation (Graham: ±1 sample as a crude low-pass), Alt-M amplify (default = maximum without clipping), Alt-H centre, Alt-X/Alt-S swap. Load one channel of a stereo WAV by halving with Ctrl-F; render new samples with the WAV-writer driver (/S20) (sources: s-it-manual, s-it-hints, s-tw086-wrecking-samples-with-impulse-tracker, s-tw081-it-tip-of-the-week). See chip-samples, sample-looping.
Instruments#
Turn on Control: Instruments in F12. An instrument = a note translation table (each note → sample + note: drum kits, multisampling), a fadeout, three 25-node envelopes (volume, pan, pitch — the last can act as a filter envelope in later versions) with loops and sustain loops (instrument-envelopes), a New Note Action — cut, continue, note off, note fade (new-note-actions), duplicate check type/action, pitch-pan separation, default pan, volume swing (random volume variation) and a panning-swing field, and MIDI settings. Instruments are cheap: make several per sample for different articulations (Pulse). "Update Pattern Data" converts sample-per-drum patterns to a kit instrument. Warning: NNA fade with fadeout 0, or continue on a looped sample, can hang the machine (sources: s-it-manual, s-ittech, s-it-hints).
Song variables that change the sound#
Separation 128 for speakers side by side, 80 far apart, ~40 for headphones; Old Effects = ST3 vibrato (double depth, per non-row tick) and offset-past-end behaviour; Linear slides make F08 at speed 5 always a whole tone and keep intervals between sliding notes constant; global volume 0–80h — keep it high for headroom and smooth fades (Nacho); mixing volume for software mixers (sources: s-it-manual, s-it-hints).
Pulse on IT, in TraxWeekly (1997)#
jeffrey-lim in #98 and #100 (sources: s-tw098-impulse-tracker-investment, s-tw100-tracking-on-impulse): IT "was created because I track … not because Necros wanted a ST3 interface with more advanced features", and released "without any shareware or crippleware restrictions" out of pride — "Impulse Tracker is my work of art"; "easily over 1500 hours, probably closer to 2000" of work; no price tags or nag screens, donations of any size welcome, but the stereo ITWAV.DRV (noiseless WAV rendering for CD burning) was a US$30 extra for non-profit use and was being pirated; contemporaries he names: PolyTracker and Imago Orpheus. In May 1997 he announced that IT213 would be "the very final public release" with new features, bug fixes and drivers only afterwards — 2.14 nevertheless followed on 1997-09-02 as "the FINAL public release" with on-the-fly sample compression (source: s-tracker-history-notes); an IT213 preview fixed IT212's EMS stability problems. Asked for his own Interwave driver source, he instead defended Triton against users demanding Interwave support in FT2: make it worth their while or don't demand.
MIDI, stereo samples and sound cards#
- MIDI output: instruments can drive a synthesizer; controllers go through macros —
Z80–ZFFstatic messages,SF0–SFFparametered templates fed byZ00–Z7F— the volume column is sent as velocity, and NOTE OFF leaves when the note's volume reaches zero, so NNA and fade-out settings decide the timing (midi-in-trackers; source: s-tw098-impulse-tracker-midi). - Stereo samples: IT loads a stereo file as two mono samples — it asks for LEFT or RIGHT — which Zinc pans hard apart and plays on two channels for true-stereo kicks and bass; "the only tracker I know of that can load stereo samples" (1997) (source: s-tw094-stereo-samples-in-impulse-tracker). The WAV driver also renders a one-pattern drum loop into an original breakbeat at the song's tempo (source: s-tw096-studio-tracking-tips).
- Sound cards: the documentation's reason for autodetecting the SB16 first — software mixing "can support 64 channels at 45454Hz" while "the most the GUS can support is 32 channels at 19kHz" — compares CPU mixing with the GUS's hardware voices, as Random pointed out in 1996 (source: s-tw044-impulse-tracker-trivia); the manual's own figures are GUS 32 channels, AWE32 30, SB16 software mixing 64 (source: s-it-manual).
In the scene's words (1996–97)#
skaven in 1997: "All praise to Pulse. It is practically Scream Tracker 4, and lots more. It does certain things no other tracker at the moment can" (source: s-tw109-interview-skaven). catspaw was wary of the IT format at first because no player existed, and suggested to Pulse a command-line play switch — Pulse was already writing a player (source: s-tw057-interview-catspaw). A 1997 beginner chose IT for its higher order and channel limits — "it gives me a feeling of power" — while ST3 remained the entry tracker (source: s-tw105-newbie-interviews); the #trax joke prize of December 1996 was "a year's supply of IT bugfixes" (source: s-tw080-trax-mass-interview). Maz dates IT's NNAs as the scene's "revolutionary" moment of 1996; a Canberra duo signed to a dance label worked in IT on an AWE64 Gold; and Behemoth's image of live-tracking is hitting F5 and waiting (source: s-tw114-commercial-tracking-debate; see commercial-tracking).
The interviews, 1996–98. fisherman (May 1996) called IT "a new hybrid of a pear and an apple — so new to the market, it is taking everyone by surprise" (source: s-tw060-interview-fisherman). clef (April 1996), an ST3 user's upgrade path: "just like ST3 but better… It also plays better on my SB16" (source: s-tw055-interview-clef); vadimvs used "itracker" sometimes beside ST3 (source: s-tw050-interview-vadimvs). The format lagged the program: vegas (June 1996) used IT but saved as .s3m "until .IT's are supported by a couple popular players", saw no FT2 advantage "other than interface preference. 32 channels or 64, whats the difference", and had heard the claim that NNAs "reduce GUS sound quality" but could not judge it on his Pro Audio Spectrum 16 (source: s-tw062-interview-vegas; see new-note-actions); ryan-sprott (July 1996) said IT users had an advantage in Music Contest 4 because no standalone IT player existed — consistent with Catspaw's remark above that Pulse was still writing one — and wished Pulse "would stop changing the damn tracker so much, and put in mouse/ems support" (source: s-tw063-interview-ryan-sprott); liam-the-lemming (August 1996) had a musicdisk delayed because some tracks were .IT and "support for the format is... uh... sparse" (source: s-tw066-interview-liam-the-lemming; see it-format). perisoft (January 1997) chose IT for "120 channels on a fast computer, great support behind it, great advancement, and is the only tracker that can make a truely CD quality song (by diskwriting and support of huge samples)" (source: s-tw087-interview-perisoft) — his channel count is a user's figure; the manual's limits are 64 pattern channels plus up to 256 virtual channels (source: s-it-manual). mikmak (June 1997): tracked music was better than two years before — "2 words: impulse tracker"; he was using ST3 that month only for S3M replay research (source: s-tw103-interview-mikmak). mental-floss (February 1998) praised the newly added filter and wished for a basic sample editor "like in FT2" (cut the start, normalise), "more MIDI<->Tracker capabilities" and the ability to synchronise or start IT from MIDI for console mixdowns (source: s-tw119-interview-mental-floss; see midi-in-trackers, sync).
Community knowledge#
pinion's Tip of the Week (reverb from looped tails, NNAs, random melodies, Jxx on noise, pitch-envelope sirens, reversed loops, Yxy width, amplification), zinc's percussion and panning practice, catspaw's initialisation/looping and frame arithmetic, Pulse's own hints (echo with Mxx, tune to a reference sample, avoid centre pan, perfect loops), StereoMan's flanging and pseudo-reverb, Onix4MAN's stereo methods, Nacho's channel organisation — see the technique pages below.
Techniques with an IT section#
new-note-actions · instrument-envelopes · multisampling · sample-looping · sample-offset · volume-slides · song-init-and-looping · stereo-panning · fake-echo · detune · randomization-and-probability · retrigger · chord-arpeggio · vibrato · pitch-slide-and-portamento · instrument-design · chip-samples · lead-articulation · midi-in-trackers
To verify#
- Sourced now: 1.00 on 1995-12-25, 2.00 in mid-1996 (new instrument format), 2.04 (volume swing), 2.05/2.06 (pan swing), 2.14 on 1997-09-02 — "Samples are now compressed on the fly … This is the FINAL public release" — and 2.14 patch 5 on 1999-04-08 with IT215 compression (source: s-tracker-history-notes); schism-tracker reimplements it on a modified ModPlug engine and tests playback against 2.14p5's own disk writer (source: s-schism-tracker-wiki); openmpt keeps an "IT filter coefficients" compatibility setting and reads IT-compressed samples (sources: s-openmpt-manual-compatible-playback, s-tracker-history-notes).
- (unverified) Which version introduced the resonant filters and MMX mixing, and that the source code was released in 2014.
Related#
jeffrey-lim · it-format · scream-tracker-3 · fasttracker-2 · openmpt · duet · traxweekly · live-tracking · commercial-tracking · gravis-ultrasound · sync
Sources#
s-it-manual · s-it-hints · s-ittech · s-tw081-it-tip-of-the-week · s-tw075-it-percussion-tips · s-tw042-impulse-tracker-v1-01 · s-tw058-the-finishing-touches · s-tw074-intro-to-musical-theory · s-tw106-a-little-panning · s-tw077-chip-off-the-block · s-tw077-general-tracking-tips · s-tw086-wrecking-samples-with-impulse-tracker · s-037-lab · s-traxweekly-archive · s-duet-readme · s-tracker-history-notes · s-schism-tracker-wiki · s-openmpt-manual-compatible-playback · s-tw098-impulse-tracker-investment · s-tw100-tracking-on-impulse · s-tw098-impulse-tracker-midi · s-tw094-stereo-samples-in-impulse-tracker · s-tw096-studio-tracking-tips · s-tw044-impulse-tracker-trivia · s-tw109-interview-skaven · s-tw057-interview-catspaw · s-tw105-newbie-interviews · s-tw080-trax-mass-interview · s-tw114-commercial-tracking-debate · s-tw060-interview-fisherman · s-tw055-interview-clef · s-tw050-interview-vadimvs · s-tw062-interview-vegas · s-tw063-interview-ryan-sprott · s-tw066-interview-liam-the-lemming · s-tw087-interview-perisoft · s-tw103-interview-mikmak · s-tw119-interview-mental-floss