effects.h
1 #ifndef LIBXMP_EFFECTS_H 2 #define LIBXMP_EFFECTS_H 3 4 /* Protracker effects */ 5 #define FX_ARPEGGIO 0x00 6 #define FX_PORTA_UP 0x01 7 #define FX_PORTA_DN 0x02 8 #define FX_TONEPORTA 0x03 9 #define FX_VIBRATO 0x04 10 #define FX_TONE_VSLIDE 0x05 11 #define FX_VIBRA_VSLIDE 0x06 12 #define FX_TREMOLO 0x07 13 #define FX_OFFSET 0x09 14 #define FX_VOLSLIDE 0x0a 15 #define FX_JUMP 0x0b 16 #define FX_VOLSET 0x0c 17 #define FX_BREAK 0x0d 18 #define FX_EXTENDED 0x0e 19 #define FX_SPEED 0x0f 20 21 /* Fast tracker effects */ 22 #define FX_SETPAN 0x08 23 24 /* Fast Tracker II effects */ 25 #define FX_GLOBALVOL 0x10 26 #define FX_GVOL_SLIDE 0x11 27 #define FX_KEYOFF 0x14 28 #define FX_ENVPOS 0x15 29 #define FX_PANSLIDE 0x19 30 #define FX_MULTI_RETRIG 0x1b 31 #define FX_TREMOR 0x1d 32 #define FX_XF_PORTA 0x21 33 34 /* Protracker extended effects */ 35 #define EX_FILTER 0x00 36 #define EX_F_PORTA_UP 0x01 37 #define EX_F_PORTA_DN 0x02 38 #define EX_GLISS 0x03 39 #define EX_VIBRATO_WF 0x04 40 #define EX_FINETUNE 0x05 41 #define EX_PATTERN_LOOP 0x06 42 #define EX_TREMOLO_WF 0x07 43 #define EX_SETPAN 0x08 44 #define EX_RETRIG 0x09 45 #define EX_F_VSLIDE_UP 0x0a 46 #define EX_F_VSLIDE_DN 0x0b 47 #define EX_CUT 0x0c 48 #define EX_DELAY 0x0d 49 #define EX_PATT_DELAY 0x0e 50 #define EX_INVLOOP 0x0f 51 52 #ifndef LIBXMP_CORE_PLAYER 53 /* Oktalyzer effects */ 54 #define FX_OKT_ARP3 0x70 55 #define FX_OKT_ARP4 0x71 56 #define FX_OKT_ARP5 0x72 57 #define FX_NSLIDE2_DN 0x73 58 #define FX_NSLIDE2_UP 0x74 59 #define FX_F_NSLIDE_DN 0x75 60 #define FX_F_NSLIDE_UP 0x76 61 62 /* Persistent effects -- for FNK */ 63 #define FX_PER_PORTA_DN 0x78 64 #define FX_PER_PORTA_UP 0x79 65 #define FX_PER_TPORTA 0x7a 66 #define FX_PER_VIBRATO 0x7b 67 #define FX_PER_VSLD_UP 0x7c 68 #define FX_PER_VSLD_DN 0x7d 69 #define FX_SPEED_CP 0x7e 70 #define FX_PER_CANCEL 0x7f 71 72 /* 669 frequency based effects */ 73 #define FX_669_PORTA_UP 0x60 74 #define FX_669_PORTA_DN 0x61 75 #define FX_669_TPORTA 0x62 76 #define FX_669_FINETUNE 0x63 77 #define FX_669_VIBRATO 0x64 78 79 /* FAR effects */ 80 #define FX_FAR_PORTA_UP 0x65 /* FAR pitch offset up */ 81 #define FX_FAR_PORTA_DN 0x66 /* FAR pitch offset down */ 82 #define FX_FAR_TPORTA 0x67 /* FAR persistent tone portamento */ 83 #define FX_FAR_TEMPO 0x68 /* FAR coarse tempo and tempo mode */ 84 #define FX_FAR_F_TEMPO 0x69 /* FAR fine tempo slide up/down */ 85 #define FX_FAR_VIBDEPTH 0x6a /* FAR set vibrato depth */ 86 #define FX_FAR_VIBRATO 0x6b /* FAR persistent vibrato */ 87 #define FX_FAR_SLIDEVOL 0x6c /* FAR persistent slide-to-volume */ 88 #define FX_FAR_RETRIG 0x6d /* FAR retrigger */ 89 #define FX_FAR_DELAY 0x6e /* FAR note offset */ 90 91 /* Other frequency based effects (ULT, etc) */ 92 #define FX_ULT_TPORTA 0x6f 93 #endif 94 95 #ifndef LIBXMP_CORE_DISABLE_IT 96 /* IT effects */ 97 #define FX_TRK_VOL 0x80 98 #define FX_TRK_VSLIDE 0x81 99 #define FX_TRK_FVSLIDE 0x82 100 #define FX_IT_INSTFUNC 0x83 101 #define FX_FLT_CUTOFF 0x84 102 #define FX_FLT_RESN 0x85 103 #define FX_IT_BPM 0x87 104 #define FX_IT_ROWDELAY 0x88 105 #define FX_IT_PANSLIDE 0x89 106 #define FX_PANBRELLO 0x8a 107 #define FX_PANBRELLO_WF 0x8b 108 #define FX_HIOFFSET 0x8c 109 #define FX_IT_BREAK 0x8e /* like FX_BREAK with hex parameter */ 110 #define FX_MACRO_SET 0xbd /* Set active IT parametered MIDI macro */ 111 #define FX_MACRO 0xbe /* Execute IT MIDI macro */ 112 #define FX_MACROSMOOTH 0xbf /* Execute IT MIDI macro slide */ 113 #endif 114 115 #ifndef LIBXMP_CORE_PLAYER 116 /* MED effects */ 117 #define FX_HOLD_DECAY 0x90 118 #define FX_SETPITCH 0x91 119 #define FX_VIBRATO2 0x92 120 121 /* PTM effects */ 122 #define FX_NSLIDE_DN 0x9c /* IMF/PTM note slide down */ 123 #define FX_NSLIDE_UP 0x9d /* IMF/PTM note slide up */ 124 #define FX_NSLIDE_R_UP 0x9e /* PTM note slide down with retrigger */ 125 #define FX_NSLIDE_R_DN 0x9f /* PTM note slide up with retrigger */ 126 127 /* Extra effects */ 128 #define FX_VOLSLIDE_UP 0xa0 /* SFX, MDL */ 129 #define FX_VOLSLIDE_DN 0xa1 130 #define FX_F_VSLIDE 0xa5 /* IMF/MDL */ 131 #define FX_CHORUS 0xa9 /* IMF */ 132 #define FX_ICE_SPEED 0xa2 133 #define FX_REVERB 0xaa /* IMF */ 134 #define FX_MED_HOLD 0xb1 /* MMD hold/decay */ 135 #define FX_MEGAARP 0xb2 /* Smaksak effect 7: MegaArp */ 136 #define FX_VOL_ADD 0xb6 /* SFX change volume up */ 137 #define FX_VOL_SUB 0xb7 /* SFX change volume down */ 138 #define FX_PITCH_ADD 0xb8 /* SFX add steps to current note */ 139 #define FX_PITCH_SUB 0xb9 /* SFX add steps to current note */ 140 #define FX_LINE_JUMP 0xba /* Archimedes jump to line in current order */ 141 #endif 142 143 #define FX_SURROUND 0x8d /* S3M/IT */ 144 #define FX_REVERSE 0x8f /* XM/IT/others: play forward/reverse */ 145 #define FX_S3M_SPEED 0xa3 /* S3M */ 146 #define FX_VOLSLIDE_2 0xa4 147 #define FX_FINETUNE 0xa6 148 #define FX_S3M_BPM 0xab /* S3M */ 149 #define FX_FINE_VIBRATO 0xac /* S3M/PTM/IMF/LIQ */ 150 #define FX_F_VSLIDE_UP 0xad /* MMD */ 151 #define FX_F_VSLIDE_DN 0xae /* MMD */ 152 #define FX_F_PORTA_UP 0xaf /* MMD */ 153 #define FX_F_PORTA_DN 0xb0 /* MMD */ 154 #define FX_PATT_DELAY 0xb3 /* MMD */ 155 #define FX_S3M_ARPEGGIO 0xb4 156 #define FX_PANSL_NOMEM 0xb5 /* XM volume column */ 157 158 #define FX_VSLIDE_UP_2 0xc0 /* IT volume column volume slide */ 159 #define FX_VSLIDE_DN_2 0xc1 160 #define FX_F_VSLIDE_UP_2 0xc2 161 #define FX_F_VSLIDE_DN_2 0xc3 162 163 #endif /* LIBXMP_EFFECTS_H */