The demo songs that were released were copied from Amiga demo called Impact (I was facinated by Amiga music at the time of writing the Protracker for SAM)
Music creation software. Similar to E-Tracker in many ways, but prettier and easier to use. It was capable of handling more patterns, more instruments, and (most importantly) more effects which are applied to notes - such as tremolo and portamento.
It appeared on the market relatively late, several years after E-Tracker had gained a virtual monopoly, and never seemed to become heavily used. It also shipped without a compiler, although ProTracker 2 compiler was written by another programmer a few months later and released on Persona’s Blitz disk magazine.
(Note that the following is written from the perspective of the Sam, so in SimCoupe for F0-F9 read number pad keys 0-9, for SYMBOL read left-control, for CNTRL read right-control or left-alt, for EDIT read right-alt)
Music is arranged in patterns of (up to) 64 notes. Patterns can be played in any order, the order is defined by the song list. Each note is played using a sample (actually chip music, but defines the variation of volume and pitch over time) and optionally an ornament (extra effects overlaid on the sample, which alter pitch a whole number of semitones). Each row can also contain an effect, which make various changes to the note, or other control such as song position etc.
The Sam soundchip has six channels, you can choose MODE 3 or 6 to change how many are visible at one time (in mode 6 you can see a note’s ornament or its effect but not both).
There are five bookmark positions, associated with F7, F8, F9, F4, F5 which initially are set to 0, 16, 32, 48, 63 respectively.
A frame lasts one fiftieth of a second (-0.16%)
There are 256 tone numbers in one octave
|QAOP||Move the pointer|
|Space||select items at the pointer|
|Cursors left, right||move the cursor across different note values and tracks|
|Cursors up, down||move through notes within the pattern|
|EDIT||toggle edit mode|
|return||play note at current pattern position|
|CTRL + return||insert a note at the current track and pattern position, shifting later notes down|
|delete||clear the note at the current track and pattern position|
|CTRL + delete||delete the note at the current track and pattern position, shifting later notes up|
|CAPS||toggle displaying ornaments or effects when showing 6 channels|
|F7, F8, F9, F4, F5||move to bookmark|
|SHIFT + F7, F8, F9, F4, F5||start playing from bookmark (pattern)|
|SYMBOL + F7, F8, F9, F4, F5||start playing from bookmark (song)|
|CNTRL + F7, F8, F9, F4, F5||set bookmark to current position|
|F3, F6||Octave up and down|
|SYMBOL + cursors left, right||previous/next pattern|
|SHIFT + cursors left, right||previous/next song position|
|CNTRL + cursors left, right||previous/next sample|
|CNTRL + cursors up, down||previous/next ornament|
|CNTRL + number||set editskip|
|SHIFT + F0||Cut track|
|SHIFT + F1||Copy track|
|SHIFT + F2||Paste track|
|SYMBOL + F0||Cut pattern|
|SYMBOL + F1||Copy pattern|
|SYMBOL + F2||Paste pattern|
|SHIFT + SYMBOL + D||Disk operations|
|SHIFT + SYMBOL + S||Sample editor|
|SHIFT + SYMBOL + O||Ornament editor|
|SHIFT + SYMBOL + E||Edit menu|
|SHIFT + SYMBOL + T||Setup menu|
|SHIFT + SYMBOL + z,x,c,v,b,n||Toggle channel enable|
The bottom two rows of keys act as a piano keyboard (Z plays a C, S plays a C# etc). Notes are played using the current sample, ornament, and octave. In edit mode these are placed into the pattern at the current cursor position, and the cursor moves down by ‘editskip’ rows (1 by default).
The program’s current mode is indicated by the colour of the pointer:
Data values can be increased or decreased by clicking the arrows next to the item:
|POSIT||Current song position. (I and D buttons will insert or delete an entry at the current position, shifting later entries as required)|
|PATTERN||Pattern number associated with this position in the song list|
|LENGTH||Length of the song list|
|SAMPLE||Current sample number|
|LENGTH||Length of the current sample|
|REPEAT||Start of repeated region in sample|
|REPLEN||Number of repeated region in sample|
|ORNAMENT||Current ornament number|
|LENGTH||Length of the current ornament|
|REPEAT||Start of repeated region in ornament|
|REPLEN||Number of repeated region in ornament|
Don’t store a sample at entry 0, or there may be unexpected effects (sample ‘0’ has the special meaning of not changing the last used sample. This is important as the gaps between notes generally have 00 as their sample field).
Click in the left or right boxes to select which portion appears in the zoom window. Click in the zoom window to set the volume for each frame. Also in the zoom window, left and right cursors move the visible portion left and right, up and down cursors change the volume at the pointer.
The top row of numbers is the tone mask (0 = silence, 1 = allow the note frequency to play), the second row is the noise mask (0 = silence, 1 = allow white noise to play). Both can be set simultaneously. The mask is always the same for left and right channels.
The bottom row is the pitch of the noise (if noise is playing). 0 is the highest pitch, 1 is lower, 2 more so. 3 causes the pitch to depend on the tone frequency in use by channel 1 (if the noise is playing on channels 1, 2 or 3) or 4 (otherwise). (Any noise being played on channels 1,2 and 3 must be at the same frequency, so if two different tracks contain noise effects it is usual to put one in 1,2 or 3, and the other in 4,5 or 6 so that they don’t interfere with each other).
Tone Editor button switched to the tone editor, where the pitch for the sample can be adjusted in tone-number increments (1/256 of an octave approximately).
|1||toggle offset positive or negative|
|2||increase offset by 100|
|w||decrease offset by 100|
|3||increase offset by 10|
|e||decrease offset by 10|
|4||increase offset by 1|
|r||decrease offset by 1|
|CNTRL + delete||delete an entry shifting others up|
|CNTRL + return||insert an entry shifting others down|
Don’t store an ornament at entry 0, for similar reasons as not storing a sample at entry 0.
Ornaments adjust the pitch of a note in semitones.
|2||increase offset by 12|
|w||decrease offset by 12|
|3||increase offset by 1|
|e||decrease offset by 1|
Don’t forget to save your work!
Click on the songname to change it, if necessary, and then click on ‘Save Module’ to save your whole file.
In panel 1, Click the “Track / Pattern” heading to toggle the filter between A (operation affects all notes), S (affects notes matching the current sample), O (affects notes matching the current ornament) and B (umm… dunno.)
In panel 2, items under the “Record” heading modify the behaviour of the “Record” mode which tends to be so unresponsive that I never use it anyway. Items under the “Samples” heading allow you to copy and/or move samples (“S”) but also ornaments (“O”), tracks (“T”) and patterns (“P”) from one index to another.
Various defaults. None of it seems to be very important.
The effects are based on effects available in MOD files. Only a subset of them are supported by the compiler as I never was able to work out what the others actually did.
x,y denotes a single hex digit
nn: denotes a 2-digit hex number
Unless otherwise stated:
Commands are effective only on their own channel.
Commands should be repeated on following lines for as long as they are to remain in effect.
|0xy||Produce a “false chord” by cycling tone each frame between the given tonic, and notes x and y semitones higher.|
|1nn||Slide the current tone upwards at a rate of nn tone numbers per frame.|
|2nn||Slide the current tone downwards at a rate of nn tone numbers per frame.|
|3nn||Slide the current tone towards a given note at a rate of nn tone numbers per frame.|
|4xy||Perform a vibrato on the current tone with frquency x amplitude y|
|5xy||Perform a tremolo on the current volume with frquency x amplitude y|
|8xy||Setup the soundchip’s waveform function.|
|Bnn||End the current pattern and jump to the start of the pattern at sond position nn. Effective on all channels.|
|Cxy||Set instrument volume level to x on the left side, y on the right side. 0 is silent, F gives normal volume.|
|D00||End this pattern and jump to the beginning of the next pattern in the song table. Affects all channels. Note that the ProTracker2 editor allows commands of the type Dnn, which jumps to row nn of the next pattern. This will NOT work on the compiler.|
|E6x||Used to repeat sections of a pettern. Affects all channels. E60 marks the beginning of a repeated section, E6x repeats that section from beginning to end x times.|
|ECx||Silences the current note after x frames have elapsed. (x=0: immediate effect)|
|EDx||Delays the start of a new note by n frames. Otherwise (if used when not starting a note) the command will silence the channel completely until an EDx command is used with a new note.|
|EEx||Pauses for x+1 added beats. Affects all channels.|
|Fnn||Set the tempo to nn frames per beat. Effective until set otherwise.|
The soundchip waveform function requires some extra explanation…
This remains set until specifically disabled (with x=y=0). It acts either on the pair of channels 2 and 3, or the pair of chanels 5 and 6.
When this command is enabled, the volume of the output at channel 3 (or 6) is modulated into a waveform with a frequency determined by channel 2 (or 5). x is set to 0 or 1, to use a 3bit or 4bit waveform respectively (also changes note by one octave). y determines the wave shape (add 1 for the right stereo to mirror the left, but that effect can cause problems for mono amplifiers)
y=6, repeated decay \\\\
y=A, sawtooth /\/\/\/\
y=E, repeated attack ////////
Sawtooth waveform plays one octave lower than repeated attack or decay.
List of standard ProTracker Effects