Asterion Sid-Tracker v1.1 by Tinnitus [web]
------------------------- Asterion Sid-Tracker v1.1 Instructions ------------------------- General Keybindings ------------------- F1 play/stop F2 continue playing F3 enter sound table F4 play (loop) current patterns F5 toggle tune parameters (change with +,-) F6 enter indexes' table F7 brief help F8 directory CRSR move around RET toggle track & macrocommand table / pattern tables ($01-$7f) ú while in track & macrocommand table - toggle wave & arpegio table / pulse table / filter table while in indexes table - toggle 9xAx/BxCx/4xFx indexes : ; change sound number , . change octave number in trackerlike mode INS&DEL insert or delete rows (track & macrocommand tables, pattern tables) + - fast scrolling (track & macrocommand tables, pattern tables) sh+i edit tune info left toggle keyboardmode - trackerlike/note writing arrow trackerlike - 2 3 5 6 7 9 0 Q W E R T Y U I O P S D G H J Z X C V B N M note writing - A,B,C,D,E,F,G Shift +A,+C,+D,+F,+G (for halftones) 0-7 octave number left arrow switches between pattern keyboardmodes. <trackerlike> mode is similar to the one used in most of the trackers. the keyboard is organized just like a real music keyboard; jamming is automatically activated in this mode: current instrument (changed with : and ;) is played when entering notes. pitch of the note depends on actual octave number (changed with , and .). <note writing> mode allows entering notes and octave numbers directly. in AST v1.1, 94 notes are available (c#0 - a#7). Pattern Table ------------- pattern position --- pattern number | | | PTR01 PTR02 PTR03 00 ---01 ---00 ---00 01 C#400 ===00 ---00 ^^^ ^ ^ ^ note--------- - - --------effect command - - release command---- -----------do nothing by "pattern" we consider a column of notes and effects ordered to one track-channel - unlike in PC trackers, where one pattern controls all channels at once. a pattern has 64 positions and it can be shortened by writing the ending marker ($ff) in fx column in a desired row. --------- | ---00 | | ---00 | | ..... | ----------------pattern space insert the note release command (===) sh+1-3 mute channels 1-3 sh+* transpose the whole pattern halftone up sh+@ transpose the whole pattern halftone down sh+t take pattern to copybuffer; works also in the track table sh+p paste pattern from copybuffer; works also in the track table sh+k kill pattern; works also in the track table Disk commands ------------- sh+l load tune sh+s save tune the editor can handle only files saved by itself. packed files and files saved with older AST versions cannot be loaded succesfully. Sound table ----------- sound number octave number ------ --------- | SOUND TABLE | |--SND 01 OCT 04---| 00 A/D 00 WAS 00 S/R 00 PUL 00 WAV 00 FLT 00 ARP 00 MCP 00 VDE 00 DTN 00 VDS 00 REG a/d xy - attack/decay s/r xy - sustain/release wav xx - wave macrocommand arp xx - arpegio macrocommand vde xx - vibrato delay vds xy - vibrato depth/speed was xy - wave/arpegio executing speed pul xx - pulse macrocommand fct xx - filter macrocommand mcp xy - multicutoff/multipulse speed dtn xx - detuning level reg xy - x. 1. enable vibrating arpegio & portamento 2. restart wave & pulse on tie note 4. restart wave & pulse on portamento 8. enable hardrestart y. 1-F. frames before note restart A/D, S/R - envelope setings WAV, ARP - point to specified rows in respective macrocommand tables PUL, FLT - point to specified rows in respective macrocommand tables. $00 value will not work - player interprets it as if no pulse/filter should be executed. VDE - number of frames before vibrato starts. VDS - right nybble - defines the speed of vibrato direction changes. the lower the value, the higher the speed. 0-7 starting upwards 8-F starting downwards ($8 works as a neutral value) - left nybble - points to an 8-bit vibrato depth value placed in a indexes table (4x indexes). this weird solution allows overriding this value from pattern. in indexes table you can define from $1 to $e index. $0 has always zero value (no vibrato). $F is always the highest ($FF). values from indexes table are multiplied by 4 and add/subtract each frame. WAS - right nybble - number of frames the player should wait until the next value from waveform macro table is executed. - left nybble - number of frames the player should wait until the next value from arpegio macro table is executed. MCP - multicourses - they allow cyclic switching of a pulse/filter scheme declared by an instrument definition with another value declared in a pattern. You can therefore create asynchronous courses of pulse and filter. static value is declared in pattern. that value is interlaced with the normal scheme from pulse/cutoff table. - right nybble - 0. multipulse disabled, player executes pulse table. 1-F. non-zero value actives multipulse mode and defines number of frames before switching between table pulse and 2nd pulse. - left nybble - 0. multicutoff disabled, player executes filter table. 1-F. non-zero value actives multicutoff mode and defines number of frames before switching between table filter and 2nd cutoff. second pulse and cutoff are declared in pattern with Bx and Cx effect commands... more on this later. DTN - it detunes specific sound. if we write e.g. $02 here the note played with this instrument on first channel will stay unchanged (it always stays), on second channel it will be detuned by $02, on third channel by $04. the calculated value is 8-bit, so if we write $81 the level of detuning for each channel will be as follows: 1 = $00, 2 = $81, 3 = $02. REG - right nybble - defines the number of frames during which ADSR registers are cleared before new note restarting. changes here will work only when hardrestart is enabled. $1-$f values equal 2-16 frames. zero cannot be used as it will cause channel blocking; for obvious reasons the tempo value cannot be exceeded too. - left nybble - 1. enables vibrating arpegio and vibrating portamento. normally these are blocked. 2. enables pulse and waveform restarting during tie note (AST v1.0 bug emulation) 4. enables pulse and waveform restarting during portamento (AST v1.0 bug emulation) 8. enables hardrestart, the effect which fixes note restarting AST v1.1 allow vibrating portamento which should work 100% correctly. The vibrating arpegio is also possible, but it is quite an experimental feature and it works fine with $00 VDE level. slight detuning might be audible with other values, so the effect should be used with care. anyway, it can be really helpful in producing various frequentional oddities. Track & macrocommands table --------------------------- track/macro position ------- - ---track/channel numbers - - - - TRACKS&MACROS - ->01 02 03 WV AR---type of the macrocommand (WV - wave, AR - arpegio, PULSE, FLT - filter) ->00 c0 c0 c0 41 00 ->01 00 00 00 fe fe ->02 ff ff ff 00 00 ->03 01 01 01 00 00 ^^-^^-^^ ^^-^^----macrocommands part - ----------tracks part Tracks data ----------- 00 unchangeable blank pattern, contains 64 blank positions; it can be used in song structure as e.g. an empty channel. 01-7F pattern number 80-EF transpose (c0 - middle/neutral value) - affects subsequent patterns FF loop track to the position specified in the next row, as in the example above (loop to position $01) Wave macrocommand data ---------------------- this table is independent from the arpegio table and its executing speed depends on instrument's WAS value (left nybble) WV pulse 41 end fe triangle 11 saw 21 loop... ff ...to 02 02 set ADSR e0 AD 14 SR 88 pulse+gateoff 40 end fe 00-df values written to SID control registers, $d404...etc. e0 change ADSR. next two values should contain the new AD & SR level. it overrides ADSR in instrument declaration. it happens the same way as in patterns so the value isn't restarted unless a new instrument in pattern is set. therefore, when making "echo" effects, it is good to change ADSR in the beginning of the macrocommand for instrument in order to be restarted properly. e1-fd wait 1 - 29 frames fe end macro, last value stays ff loop macro to the position specified in the next row Arpegio macrocommand data ------------------------- this table is independent from the wave table and its executing speed depends on instrument's WAS value (right nybble) AR don't transpose 00 transpose -1 61 end FE minor chord 00 03 07 03 loop... ff ...to $03 03 absolute... DF ...transpositions c8 wait 4 frames e4 skydive starting value af skydive execution e0 00-5f relative transposition up 60-7f relative transposition down, $60 works like $00 80-df absolute transposition (doesn't depend on note) e0 skydive, a fast frequency slide down with speed dependent on WAS value declared in instrument definition. this value ends the macrocommand. you should always enter a starting value ($00-$df) before this effect. e1-fd wait 1 - 29 frames fe end macro, last value stays ff loop macro to the position specified in the next row Pulse macrocommand data ----------------------- PULSE 00 00 set pulse to $0848 00 48---nybbles reversed add $13 for $60 frames 13 60 subtract $13 for $c0 frames 93 c0<-- add $13 for $C0 frames 13 c0 - wait $20 frames 7f 20 - loop to position $03 ff 03--- 00 xx set the highest pulse nybbles to xx (nybbles reversed!) 01-7e xx add 01-7e for xx frames to the lowest pulse nybbles 7f xx wait xx frames 80-fe xx subtract 00-7e for xx frames from the lowest pulse nybbles ff xx loop to position xx Filter macrocommand data ------------------------ FLT 00 00 set resonance & filter type 80 f1 set cutoff to $0190 00 23<------------- add $30 for $10 frames 30 10<-- - subtract $30 for $10 frames b0 10 - - wait $40 frames 7f 40 - - loop to position $03 ff 03--- - - because nybbles are reversed $23 => $32 and then:-- $d416 $d416 cutoff value 00110010 xxxxx000 => xxxxx001 10010000 $32 $00 equal $01 $90 ...boohoo it doesn't really matter 00 xx set the highest cutoff nybbles ($d416) to xx (nybbles reversed!) 01-7e xx add 01-7e for xx frames to the lowest cutoff nybbles ($d415 - 3 bits & $d416 - 5 bits) 7f xx wait xx frames 80 xy filter macrocommand should be started with this, unless you don't want the filter to be active when the note starts playing!!! of course you can change it through the filter execution later on. x.set resonance y.set filter type (1.lo pass, 2.by pass, 4.hi pass) 81-fe xx subtract 01-7e for xx frames from the lowest cutoff nybbles ($d415 - 3 bits & $d416 - 5 bits) ff xx loop to position xx Pattern effects --------------- AST v1.1 player remembers all recently declared values of individual effects. 00 - no effect 0x-1x - set the instrument number - a tune should always be started with an instrument declaration in order to prevent strange suprises. 2x - individual bits has various meaning; they can be used together, of course. 1.tie note (legato) new note will only change the frequency - unless REG 5th bit of the current instrument is set. 2.synchronize - overrides current waveform 4.modulation - overrides current waveform 8.no pulse restarting - after a new note has been reached, the pulse scheme position will not be reset (current position of the scheme is remembered) 3x - portamento to target note with speed of x 0. end portamento succesive notes will be toneportamented until the effect is zeroed. portamento will be one-timely leaved on new instrument declaration. portamento changes only frequency, unless REG 6th bit of current instrument is set. 4x - vibrato depth, with speed declared in VDS 0. VDS depth vibrato depth takes 8-bit value from corresponding indexes table (4x). if the effect is zeroed, vibrato depth is reset to the instrument's original value. 5x - change attack 6x - change decay 7x - change sustain 8x - change release note: instrument declaration ($0x-$1x) restarts ADSR values 9x - execute waveform from index number x 0.normal waveform until the effect is zeroed, new waveform scheme is executed. it executes the sequence from the wave macro table starting from the row defined in the corresponding table of indexes (9x) F.coding event - executes inc $04 for audiovisual synchronization. doesn't affect the sound in any way. Ax - execute arpegio from index number x 0.normal arpegio until the effect is zeroed, the new arpegio scheme is executed. it executes the sequence from the arpegio macro table starting from the row defined in the corresponding table of indexes (Ax) Bx - set pulse 0.pulse from instrument if MCP's (instrument definition) right nybble = 0 then it switches to a new pulse scheme executing the sequence from the pulse table starting from the row defined in the corresponding table of indexes (Bx) until the effect is zeroed if MCP's (instrument definition) right nybble <> 0 then x becomes 2nd-static multipulse and it is dumped to the pulse's highest nybble Cx - set cutoff 0.cutoff from instrument if MCP (instrument definition) left nybble = 0 then it switches to a new filter scheme executing the sequence from the filter table starting from the row defined in the corresponding table of indexes (Cx) until the effect is zeroed if MCP (instrument definition) left nybble <> 0 then x becomes 2nd-static multicutoff value and it is dumped to the cutoff's highest nybble Dx - set volume - default F Ex - toggle filtering - individual bits of this effect, except the last one, correspond with respective tracks (channels). setting on any of these bits will cause enabling or disabling the filter on a given channel - depending on its current status. 1.enable/disable filter on 1st channel 2.enable/disable filter on 2nd channel 4.enable/disable filter on 3rd channel 8.no cutoff restarting - after a new note has been reached, the filter scheme position will not be reset (current position of the scheme is remembered) Fx - 0 stop tune 1-E set tempo, 8-bit value is taken from corresponding indexes table (Fx) F end of pattern - affect all tracks, you can shorten pattern execution with this effect Indexes table ------------- starting index --------- =========$92,$93,$94 ... | | | | 91 00 00 00 00 00 00 00 98 00 00 00 00 00 00 00<--$9e a1 00 00 00 00 00 00 00 a8 00 00 00 00 00 00 00 9x - points to the waveform macro table row, executed with 9x pattern effect Ax - points to the arpegio macro table row, executed with Ax pattern effect Bx - points to the pulse macro table row, executed with Bx pattern effect Cx - points to the filter macro table row, executed with Cx pattern effect 4x - defines the 8-bit value of vibrato depth. AST v1.0 values are used by default. executed with 4x pattern effect and/or with instrument definition Fx - defines the 8-bit tempo value. AST v1.0 values are used by default. executed with Fx pattern effect and with tune parameters for the initial tempo setting. Tune parameters --------------- tune no - tune number (0-7) tempo - initial tempo (1-e), the 8-bit value is taken from the corresponding indexes table (Fx) multispd - set tune frame speed tnstartx - the tune starting position for each track pointing to track table positions; can be also set by pressing space in desired position of the track table Useful hints ------------ - filter is controlled by the lowest channel so the 1st channel has the highest control priority. - each pattern shorter than $3f should end with $ff (in the effect row), even if that position wouldn't be played. the packer always looks for the first $ff value. - vibrato pattern effect ($4x) will work fine only with non-zero vibrato speed (VDS left nybble). - you can cut desired note with the release command (===) and setting release level to zero with $80 simultaneously. - if editor crashes you can reanimate it with sys5143. Ast v1.1 -------- Code by Asterion Music & Tutorial by Asterion & Trompkins of Tinnitus (c) 2004 Tinnitus contact: asterionc64@o2.pl
[ back to the prod ]