From f2f04264d3a2f7e184e387dfc1a96d1f1f4d070d Mon Sep 17 00:00:00 2001 From: Stefano D'Angelo Date: Wed, 15 Feb 2023 12:45:21 +0100 Subject: [PATCH] MIDI CC mappings for daisy seed synth examples --- TODO | 14 +++--- .../synth_mono/daisy-seed/config_daisy_seed.h | 49 ++++++++++++++----- .../daisy-seed/config_daisy_seed.h | 20 ++++---- 3 files changed, 55 insertions(+), 28 deletions(-) diff --git a/TODO b/TODO index 53d8597..e869b72 100644 --- a/TODO +++ b/TODO @@ -4,9 +4,8 @@ code: * audio rate optional pulse width/slope inputs? * one pole process const input? (return also if const out) * optimize triangle generation for constant pulse width -* API for buffer fill, scale, offset, zero, copy...? * web examples construction/destruction -* web effect multichannel in? +* web effect mono->stereo and stereo->mono inputs? or display "input needs to be n channels"? * check const restrict etc. * define BW_RESTRICT to __restrict or similar when the compiler supports it * empty functions etc. to keep consistency and forward compatibility? @@ -14,23 +13,24 @@ code: * should clip slope in triangle? * fix vst3 mapped values (visible in Ableton Live) and short names * polish examples (ranges, etc.) -* change name of vst3 template folders to something that doesn't look like a vst3 folder itself * compute bit depth reduction only when input changes? (state, option?) * common smoothing policy (as control rate as possible?) - smoothing control? * avoid "force" in coeffs update by using inline functions? * should rather use backward Euler in bw_onepole? -* Q to slope and viceversa functions in 2nd order shelf filters? keep updated values (seamless switch, syncrhonicity)? * treat unused variable/function warnings * csch for bw_peak bandwidth -> Q * sample rate-constant coeffs? (pan case) * pan process with no out: should just reset coeffs? * trace calls (debug) -* svf bandpass out polarity too confusing? -* better common config.h (less stuff maybe) +* svf bandpass out polarity too confusing (inverted in mm2)? +* better common config.h (less stuff maybe, or more stuff - decide) +* separate tests an examples? +* define common midi CCs for examples build system: * make makefiles handle paths with spaces etc * can run su on windows? (system-wide install) -* make autodependencies (.d?) +* make autodependencies (.d?) - https://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ * make from... directories * recursive make? +* make hashdeps (https://github.com/olipratt/hashdeps)? diff --git a/examples/synth_mono/daisy-seed/config_daisy_seed.h b/examples/synth_mono/daisy-seed/config_daisy_seed.h index dfdf1f3..ad86b1f 100644 --- a/examples/synth_mono/daisy-seed/config_daisy_seed.h +++ b/examples/synth_mono/daisy-seed/config_daisy_seed.h @@ -26,19 +26,46 @@ struct config_cc { unsigned char cc; }; -#define NUM_CCS 10 +#define NUM_CCS 37 static struct config_cc config_ccs[NUM_CCS] = { - { 0, 20 }, - { 1, 21 }, - { 2, 22 }, - { 3, 23 }, - { 4, 24 }, - { 5, 25 }, - { 6, 26 }, - { 7, 27 }, - { 8, 52 }, - { 9, 53 } + { 0, 7 }, // Volume + { 1, 3 }, // Master tune + { 2, 5 }, // Portamento + { 3, 9 }, // Modulation mix + { 4, 14 }, // VCO1 modulation + { 5, 15 }, // VCO1 coarse + { 6, 20 }, // VCO1 fine + { 7, 21 }, // VCO1 waveform + { 8, 22 }, // VCO1 pulse width/slope + { 9, 23 }, // VCO1 level + { 10, 24 }, // VCO2 modulation + { 11, 25 }, // VCO2 coarse + { 12, 26 }, // VCO2 fine + { 13, 27 }, // VCO2 waveform + { 14, 28 }, // VCO2 pulse width/slope + { 15, 29 }, // VCO2 level + { 16, 30 }, // VCO3 keyboard control + { 17, 31 }, // VCO3 coarse + { 18, 85 }, // VCO3 fine + { 19, 86 }, // VCO3 waveform + { 20, 87 }, // VCO3 level + { 21, 89 }, // Noise color + { 22, 90 }, // Noise level + { 23, 102 }, // VCF modulation + { 24, 103 }, // VCF keyboard control + { 25, 74 }, // VCF cutoff + { 26, 71 }, // VCF Q + { 27, 104 }, // VCF contour + { 28, 105 }, // VCF attack + { 29, 106 }, // VCF decay + { 30, 107 }, // VCF sustain + { 31, 108 }, // VCF release + { 32, 73 }, // VCA attack + { 33, 109 }, // VCA decay + { 34, 110 }, // VCA sustain + { 35, 72 }, // VCA release + { 36, 111 } // A440 }; #endif diff --git a/examples/synth_simple/daisy-seed/config_daisy_seed.h b/examples/synth_simple/daisy-seed/config_daisy_seed.h index dfdf1f3..18f7136 100644 --- a/examples/synth_simple/daisy-seed/config_daisy_seed.h +++ b/examples/synth_simple/daisy-seed/config_daisy_seed.h @@ -29,16 +29,16 @@ struct config_cc { #define NUM_CCS 10 static struct config_cc config_ccs[NUM_CCS] = { - { 0, 20 }, - { 1, 21 }, - { 2, 22 }, - { 3, 23 }, - { 4, 24 }, - { 5, 25 }, - { 6, 26 }, - { 7, 27 }, - { 8, 52 }, - { 9, 53 } + { 0, 7 }, // Volume + { 1, 3 }, // Master tune + { 2, 5 }, // Portamento + { 3, 28 }, // Pulse width + { 4, 74 }, // Cutoff + { 5, 71 }, // Q + { 6, 73 }, // Attack + { 7, 109 }, // Decay + { 8, 110 }, // Sustain + { 9, 72 } // Release }; #endif