old school music tracker audio backend
at dev 121 lines 6.1 kB view raw
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