1 
2 /*
3  *  Diverse Bristol audio routines.
4  *  Copyright (c) by Nick Copeland <nickycopeland@hotmail.com> 1996,2012
5  *
6  *
7  *   This program is free software; you can redistribute it and/or modify
8  *   it under the terms of the GNU General Public License as published by
9  *   the Free Software Foundation; either version 3 of the License, or
10  *   (at your option) any later version.
11  *
12  *   This program is distributed in the hope that it will be useful,
13  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *   GNU General Public License for more details.
16  *
17  *   You should have received a copy of the GNU General Public License
18  *   along with this program; if not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #define BME700LOCAL ((bme700mods *) baudio->mixlocals)
23 
24 #define BME700_VIBRA_ENV	0x00000001
25 #define BME700_VIBRA_TRI1	0x00000002
26 #define BME700_VIBRA_TRI2	0x00000004
27 #define BME700_PWM_TRI		0x00000008
28 #define BME700_PWM_DOUBLE	0x00000010
29 
30 #define BME700_GLIDE		0x00000020
31 
32 #define BME700_PWM_MAN		0x00000040
33 #define BME700_PWM_ENV		0x00000080
34 
35 #define BME700_FILT_TRI		0x00000100
36 #define BME700_FILT_MOD1	0x00000200
37 #define BME700_FILT_KBD		0x00000400
38 
39 #define BME700_TREM_MOD1	0x00000800
40 #define BME700_TREM_TRI		0x00001000
41 
42 #define BME700_LFO1_MULTI	0x00002000
43 #define BME700_LFO2_MULTI	0x00004000
44 #define BME700_NOISE_MULTI	0x00008000
45 
46 typedef struct BME700Mods {
47 	unsigned int flags;
48 
49 	float volume;
50 	float oscmix;
51 	float resmix;
52 	float envmix1;
53 	float envmix2;
54 	float f_modmix;
55 	float a_modmix;
56 	float vibramix;
57 	float vibra;
58 	float pwm;
59 	float glide;
60 
61 	float *lfo1_tri;
62 	float *lfo1_sqr;
63 	float *lfo2_tri;
64 	float *lfo2_sqr;
65 	float *freqbuf;
66 	float *pwmbuf;
67 	float *oscbuf;
68 	float *noisebuf;
69 	float *adsr1buf;
70 	float *adsr2buf;
71 	float *zerobuf;
72 	float *scratch;
73 	float *outbuf;
74 	float *resbuf;
75 	float *filtbuf;
76 } bme700mods;
77 
78