/ source / libxmp-lite / src / effects.h
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 */