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