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 typedef struct Sid2mod {
23 	float param[6];
24 	float touch;
25 } sid2mod;
26 
27 typedef struct Sid2dest {
28 	float osc1PWM;
29 	float osc1Freq;
30 	float osc2PWM;
31 	float osc2Freq;
32 	float osc3PWM;
33 	float osc3Freq;
34 	float filter;
35 } sid2dest;
36 
37 typedef struct Sid2Osc {
38 	float param[16];
39 } sid2Osc;
40 
41 typedef struct Sid2Pmod {
42 	float opt1;
43 	float opt2;
44 	float opt3;
45 	float opt4;
46 	float opt5;
47 	float opt6;
48 	float opt7;
49 	sid2mod osc;
50 	sid2mod env;
51 	sid2mod prod;
52 	float ppad[7];
53 	sid2dest destbus[6];
54 } sid2Pmod;
55 
56 typedef struct Sid2Voice {
57 	sid2Osc osc[3];
58 	float filter[8];
59 	float pan;
60 	float volume;
61 	sid2Pmod mod;
62 } sid2Voice;
63 
64 /*
65  * This will mimic the locations structure which holds GUI settings, then a
66  * separate set of structures for the poly voice programming.
67 58 + 9 + 27 + 29 + 7 + 28 + 42 + 24 + 5 + 8 + 16 + 1
68  */
69 typedef struct Sid2Mem {
70 	sid2Voice guivoice;
71 	float mode[9]; // Break these out
72 	float mmods1[27];
73 	float mmods2[29];
74 	float pad2[23];
75 	float version;
76 	float modShadow[5];
77 	float globals[7];
78 	float masterVolume;
79 	float memMidi[16];
80 	float display;
81 	/*
82 	 * These are the actual voice memories
83 	 */
84 	sid2Voice vmem[5];
85 } sid2Mem;
86 
87