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