]> git.donarmstrong.com Git - qmk_firmware.git/blob - quantum/audio/voices.h
Clueboard 60% support (#1746)
[qmk_firmware.git] / quantum / audio / voices.h
1 /* Copyright 2016 Jack Humbert
2  *
3  * This program is free software: you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation, either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  */
16 #include <stdint.h>
17 #include <stdbool.h>
18 #if defined(__AVR__)
19     #include <avr/io.h>
20 #endif
21 #include "wait.h"
22 #include "luts.h"
23
24 #ifndef VOICES_H
25 #define VOICES_H
26
27 float voice_envelope(float frequency);
28
29 typedef enum {
30     default_voice,
31     #ifdef AUDIO_VOICES
32     something,
33     drums,
34     butts_fader,
35     octave_crunch,
36     duty_osc,
37     duty_octave_down,
38     delayed_vibrato,
39     // delayed_vibrato_octave,
40     // duty_fifth_down,
41     // duty_fourth_down,
42     // duty_third_down,
43     // duty_fifth_third_down,
44     #endif
45     number_of_voices // important that this is last
46 } voice_type;
47
48 void set_voice(voice_type v);
49 void voice_iterate(void);
50 void voice_deiterate(void);
51
52 #endif