1 //constants.h 2 3 #include<stdbool.h> 4 #include <stdint.h> 5 6 //harmonic stuff 7 #define MAX_N_HARMONICS 16 8 #define HARMONIC_MODE_SINC 0 9 #define HARMONIC_MODE_SAW 1 10 #define HARMONIC_MODE_SQR 2 11 #define HARMONIC_MODE_TRI 3 12 13 #define FUNC_SIN 0 14 #define FUNC_SAW 1 15 #define FUNC_SQR 2 16 #define FUNC_TRI 3 17 #define FUNC_WHITE 4 18 #define FUNC_RAND 5 19 20 //midi stuff 21 #define MIDI_NOTE_OFF 0x80 22 #define MIDI_NOTE_ON 0x90 23 #define MIDI_KEYPRESSURE 0xA0 24 #define MIDI_CONTROL_CHANGE 0xB0 25 #define MIDI_PROGRAMCHANGE 0xC0 26 #define MIDI_CHANNELPRESSURE 0xD0 27 #define MIDI_PITCHBEND 0xE0 28 29 #define MIDI_TYPE_MASK 0xF0 30 #define MIDI_CHANNEL_MASK 0x0F 31 #define MIDI_DATA_MASK 0x7F 32 #define MIDI_PITCH_CENTER 0x2000 33 #define MIDI_SUSTAIN_PEDAL 0x40 34 #define MIDI_ALL_NOTES_OFF 123 35 #define MIDI_ALL_SOUND_OFF 120 36 37 38 39 //angles 40 #define PI 3.1415926535897932384626433832795 41 #define INV_A .00227272727272727272727272727272727272727 42 43 //envelope states 44 #define ENV_ATTACK 0 45 #define ENV_DECAY 1 46 #define ENV_BREAK 2 47 #define ENV_SWELL 3 48 #define ENV_SUSTAIN 4 49 #define ENV_RELEASE 5 50