old school music tracker audio backend
1= 788888888888888889
2= 4 Pattern Edit 6
3= 122222222222222223
4|
5| Summary of Effects.
6Unify Volume and General Effects.
7Unify Up and Down Effects by using signed values. (at transformation stage or already in the song stored effect)
8
9|
10| Volume Column effects.
11| Ax Fine volume slide up by x -> in SamplePlayback
12| Bx Fine volume slide down by x -> in SamplePlayback
13| Cx Volume slide up by x -> in SamplePlayback
14| Dx Volume slide down by x -> in SamplePlayback
15| Ex Pitch slide down by x -> in SamplePlayback
16| Fx Pitch slide up by x -> in SamplePlayback
17| Gx Slide to note with speed x -> in SamplePlayback
18| Hx Vibrato with depth x -> in SamplePlayback
19|
20| General effects.
21| Axx Set song speed (hex) -> apply once
22| Bxx Jump to Order (hex) -> apply once (same as above)
23| Cxx Break to row xx (hex) of next pattern -> apply once
24| D0x Volume slide down by x -> in SamplePlayback
25| Dx0 Volume slide up by x -> in SamplePlayback
26| DFx Fine volume slide down by x -> in SamplePlayback
27| DxF Fine volume slide up by x -> in SamplePlayback
28| Exx Pitch slide down by xx -> in SamplePlayback
29| EFx Fine pitch slide down by x -> in SamplePlayback
30| EEx Extra fine pitch slide down by x -> in SamplePlayback
31| Fxx Pitch slide up by xx -> in SamplePlayback
32| FFx Fine pitch slide up by x -> in SamplePlayback
33| FEx Extra fine pitch slide up by x -> in SamplePlayback
34| Gxx Slide to note with speed xx -> in SamplePlayback
35| Hxy Vibrato with speed x, depth y -> in SamplePlayback
36| Ixy Tremor with ontime x and offtime y -> in SamplePlayback
37| Jxy Arpeggio with halftones x and y -> Wrapper around SamplePlayback, which triggers the notes
38| Kxx Dual Command: H00 & Dxx -> in SamplePlayback
39| Lxx Dual Command: G00 & Dxx -> in SamplePlayback
40| Mxx Set channel volume to xx (0->40h) -> apply once
41| N0x Channel volume slide down by x -> in PlaybackState
42| Nx0 Channel volume slide up by x -> in PlaybackState
43| NFx Fine channel volume slide down by x -> in PlaybackState
44| NxF Fine channel volume slide up by x -> in PlaybackState
45| Oxx Set sample offset to yxx00h, y set with SAy -> apply once
46| P0x Panning slide to right by x -> in SamplePlayback
47| Px0 Panning slide to left by x -> in SamplePlayback
48| PFx Fine panning slide to right by x -> in SamplePlayback
49| PxF Fine panning slide to left by x -> in SamplePlayback
50| Qxy Retrigger note every y ticks with volume modifier x
51| Values for x:
52| 0: No volume change 8: Not used -> Wrapper around SamplePlayback. Needs to be aware of ticks somehow
53| 1: -1 9: +1 (registered tick callback? Probably self-referential) or it
54| 2: -2 A: +2 would live in PlaybackState (but how)
55| 3: -4 B: +4
56| 4: -8 C: +8
57| 5: -16 D: +16
58| 6: *2/3 E: *3/2
59| 7: *1/2 F: *2
60| Rxy Tremolo with speed x, depth y -> in SamplePlayback
61# S0x Set filter -> apply once
62# S1x Set glissando control -> apply once
63# S2x Set finetune -> apply once
64| S3x Set vibrato waveform to type x -> apply once
65| S4x Set tremolo waveform to type x -> apply once
66| S5x Set panbrello waveform to type x -> apply once
67| Waveforms for commands S3x, S4x and S5x:
68| 0: Sine wave
69| 1: Ramp down
70| 2: Square wave
71| 3: Random wave
72| S6x Pattern delay for x ticks -> in PlaybackState
73| S70 Past note cut -> apply once
74| S71 Past note off -> apply once
75| S72 Past note fade -> apply once
76| S73 Set NNA to note cut -> apply once
77| S74 Set NNA to continue -> apply once
78| S75 Set NNA to note off -> apply once
79| S76 Set NNA to note fade -> apply once
80| S77 Turn off volume envelope -> apply once
81| S78 Turn on volume envelope -> apply once
82| S79 Turn off panning envelope -> apply once
83| S7A Turn on panning envelope -> apply once
84| S7B Turn off pitch envelope -> apply once
85| S7C Turn on pitch envelope -> apply once
86| S8x Set panning position -> apply once
87| S91 Set surround sound -> apply once
88| SAy Set high value of sample offset yxx00h -> apply once
89| SB0 Set loopback point -> PlaybackState |
90| SBx Loop x times to loopback point -> PlaybackState´|`
91| SCx Note cut after x ticks -> Wrapper around SamplePlayback. Aware of ticks
92| SDx Note delay for x ticks -> Wrapper around SamplePlayback. Aware of ticks
93| SEx Pattern delay for x rows -> PlaybackState
94| SFx Set parameterised MIDI Macro -> ??? No idea what this means
95| T0x Tempo slide down by x -> PlaybackState
96| T1x Tempo slide up by x -> PlaybackState
97| Txx Set Tempo to xx (20h->0FFh) -> apply once
98| Uxy Fine vibrato with speed x, depth y -> SamplePlayback
99| Vxx Set global volume to xx (0->80h) -> apply once
100| W0x Global volume slide down by x -> PlaybackState
101| Wx0 Global volume slide up by x -> PlaybackState
102| WFx Fine global volume slide down by x -> PlaybackState
103| WxF Fine global volume slide up by x -> PlaybackState
104| Xxx Set panning position (0->0FFh) -> apply once
105| Yxy Panbrello with speed x, depth y -> ?? Not sure what this is
106| Zxx MIDI Macros -> no idea
107|
108: FT2 effect translations (can only be saved in XM modules)
109:
110: Volume column.
111: $x Set vibrato speed to x [$A0-$AF] -> apply once
112: <x Panning slide to left by x [$D0-$DF] -> SamplePlayback
113: >x Panning slide to right by x [$E0-$EF] -> SamplePlayback
114:
115: General effects.
116: !xx Set volume [Cxx] -> apply once
117: $xx Key off [Kxx] -> apply once
118: &xx Set envelope position [Lxx] -> apply once? SamplePlayback needs facilities for it
119:
120
121Effects are processed with rising channel number