module Sound.Tidal.MIDI.Blofeld where import Sound.Tidal.MIDI.Control import Sound.Tidal.Params -- Blofeld midi mapping -- -- mod wheel: MIDI CC 1, 0...127 -- breath control: MIDI CC 2, 0...127 -- foot control: MIDI CC 4, 0...127 -- glide rate: MIDI CC 5, 0...127 -- channel volume: MIDI CC 7, 0...127 -- pan: MIDI CC 10, 0...127 -- -- arp range: MIDI CC 12, 0...9 -- arp length: MIDI CC 13, 0...15 -- arp active: MIDI CC 14, 0...3 -- -- lfo 1 shape: MIDI CC 15, 0...5 -- lfo 1 speed: MIDI CC 16, 0...127 -- lfo 1 sync: MIDI CC 17, 0...1 -- lfo 1 delay: MIDI CC 18, 0...127 -- -- lfo 2 shape: MIDI CC 19, 0...5 -- lfo 2 speed: MIDI CC 20, 0...127 -- lfo 2 sync: MIDI CC 21, 0...1 -- lfo 2 delay: MIDI CC 22, 0...127 -- -- lfo 3 shape: MIDI CC 23, 0...5 -- lfo 3 speed: MIDI CC 24, 0...127 -- lfo 3 sync: MIDI CC 25, 0...1 -- lfo 3 delay: MIDI CC 26, 0...127 -- -- osc 1 octave: MIDI CC 27, 16,28,40...112 -- osc 1 semitone: MIDI CC 28, 52...76 -- osc 1 detune: MIDI CC 29, 0...127 -- osc 1 fm: MIDI CC 30, 0...127 -- osc 1 shape: MIDI CC 31, 0...5 -- -- bank select LSB: MIDI CC 32, 0...n -- -- osc 1 pw: MIDI CC 33, 0...127 -- osc 1 pwm: MIDI CC 34, 0...127 -- -- osc 2 octave: MIDI CC 35, 16,28,40...112 -- osc 2 semitone: MIDI CC 36, 52...76 -- osc 2 detune: MIDI CC 37, 0...127 -- osc 2 fm: MIDI CC 38, 0...127 -- osc 2 shape: MIDI CC 39, 0...5 -- osc 2 pw: MIDI CC 40, 0...127 -- osc 2 pwm: MIDI CC 41, 0...127 -- -- osc 3 octave: MIDI CC 42, 16,28,40...112 -- osc 3 semitone: MIDI CC 43, 52...76 -- osc 3 detune: MIDI CC 44, 0...127 -- osc 3 fm: MIDI CC 45, 0...127 -- osc 3 shape: MIDI CC 46, 0...5 -- osc 3 pw: MIDI CC 47, 0...127 -- osc 3 pwm: MIDI CC 48, 0...127 -- -- sync: MIDI CC 49, 0...1 -- pitchmod: MIDI CC 50, 0...127 -- glide mode: MIDI CC 51, 0...9 -- -- osc 1 level: MIDI CC 52, 0...127 -- osc 1 balance: MIDI CC 53, 0...127 -- -- ringmod level: MIDI CC 54, 0...127 -- ringmod bal: MIDI CC 55, 0...127 -- -- osc 2 level: MIDI CC 56, 0...127 -- osc 2 balance: MIDI CC 57, 0...127 -- -- osc 3 level: MIDI CC 58, 0...127 -- osc 3 balance: MIDI CC 59, 0...127 -- -- noise level: MIDI CC 60, 0...127 -- noise balance: MIDI CC 61, 0...127 -- noise colour: MIDI CC 62, 0...127 -- -- sustain pedal: MIDI CC 64, 0...127 -- glide active: MIDI CC 65, 0...127 -- sostenuto: MIDI CC 66, 0...127 -- -- routing: MIDI CC 67, 0...127 -- filter 1 type: MIDI CC 68, 0...10 -- filter 1 cutoff: MIDI CC 69, 0...127 -- filter 1 resonance: MIDI CC 70, 0...127 -- filter 1 drive: MIDI CC 71, 0...127 -- filter 1 keytrack: MIDI CC 72, 0...127 -- filter 1 env amnt: MIDI CC 73, 0...127 -- filter 1 env vel: MIDI CC 74, 0...127 -- filter 1 cutoff mod: MIDI CC 75, 0...127 -- filter 1 fm: MIDI CC 76, 0...127 -- filter 1 pan: MIDI CC 77, 0...127 -- filter 1 panmod: MIDI CC 78, 0...127 -- -- filter 2 type: MIDI CC 79, 0...10 -- filter 2 cutoff: MIDI CC 80, 0...127 -- filter 2 resonance: MIDI CC 81, 0...127 -- filter 2 drive: MIDI CC 82, 0...127 -- filter 2 keytrack: MIDI CC 83, 0...127 -- filter 2 env amnt: MIDI CC 84, 0...127 -- filter 2 env vel: MIDI CC 85, 0...127 -- filter 2 cutoff mod: MIDI CC 86, 0...127 -- filter 2 fm: MIDI CC 87, 0...127 -- filter 2 pan: MIDI CC 88, 0...127 -- filter 2 panmod: MIDI CC 89, 0...127 -- -- amp volume: MIDI CC 90, 0...127 -- amp velocity: MIDI CC 91, 0...127 -- amp mod: MIDI CC 92, 0...127 -- -- fx 1 mix: MIDI CC 93, 0...127 -- fx 2 mix: MIDI CC 94, 0...127 -- -- fe attack: MIDI CC 95, 0...127 -- fe decay: MIDI CC 96, 0...127 -- fe sustain: MIDI CC 97, 0...127 -- fe decay 2: MIDI CC 98, 0...127 -- fe sustain 2: MIDI CC 99, 0...127 -- fe release: MIDI CC 100, 0...127 -- -- ae attack: MIDI CC 101, 0...127 -- ae decay: MIDI CC 102, 0...127 -- ae sustain: MIDI CC 103, 0...127 -- ae decay 2: MIDI CC 104, 0...127 -- ae sustain 2: MIDI CC 105, 0...127 -- ae release: MIDI CC 106, 0...127 -- -- e3 attack: MIDI CC 107, 0...127 -- e3 decay: MIDI CC 108, 0...127 -- e3 sustain: MIDI CC 109, 0...127 -- e3 decay 2: MIDI CC 110, 0...127 -- e3 sustain 2: MIDI CC 111, 0...127 -- e3 release: MIDI CC 112, 0...127 -- -- e4 attack: MIDI CC 113, 0...127 -- e4 decay: MIDI CC 114, 0...127 -- e4 sustain: MIDI CC 115, 0...127 -- e4 decay 2: MIDI CC 116, 0...127 -- e4 sustain 2: MIDI CC 117, 0...127 -- e4 release: MIDI CC 118, 0...127 -- -- all sounds off: MIDI CC 120, 0 -- reset all controls: MIDI CC 121, 0 -- local control: MIDI CC 122, 0...127 -- all notes off: MIDI CC 123, 0 (mod_w, mod_w_p) = pF "mod_w" (Just 0) (br_ctrl, br_ctrl_p) = pF "br_ctrl" (Just 0) (ft_ctrl, ft_ctrl_p) = pF "ft_ctrl" (Just 0) (gl_rate, gl_rate_p) = pF "gl_rate" (Just 0) (ch_vol, ch_vol_p) = pF "ch_vol" (Just 0) (pan_, pan__p) = pF "pan" (Just 0) (arp_rng, arp_rng_p) = pF "arp_rng" (Just 0) (arp_len, arp_len_p) = pF "arp_len" (Just 0) (arp_act, arp_act_p) = pF "arp_act" (Just 0) (lfo1shape, lfo1shape_p) = pF "lfo1shape" (Just 0) (lfo1speed, lfo1speed_p) = pF "lfo1speed" (Just 0) (lfo1sync, lfo1sync_p) = pF "lfo1sync" (Just 0) (lfo1delay, lfo1delay_p) = pF "lfo1delay" (Just 0) (lfo2shape, lfo2shape_p) = pF "lfo2shape" (Just 0) (lfo2speed, lfo2speed_p) = pF "lfo2speed" (Just 0) (lfo2sync, lfo2sync_p) = pF "lfo2sync" (Just 0) (lfo2delay, lfo2delay_p) = pF "lfo2delay" (Just 0) (lfo3shape, lfo3shape_p) = pF "lfo3shape" (Just 0) (lfo3speed, lfo3speed_p) = pF "lfo3speed" (Just 0) (lfo3sync, lfo3sync_p) = pF "lfo3sync" (Just 0) (lfo3delay, lfo3delay_p) = pF "lfo3delay" (Just 0) (osc1oct, osc1oct_p) = pF "osc1oct" (Just 0) (osc1semi, osc1semi_p) = pF "osc1semi" (Just 0) (osc1detune, osc1detune_p) = pF "osc1detune" (Just 0) (osc1fm, osc1fm_p) = pF "osc1fm" (Just 0) (osc1shape, osc1shape_p) = pF "osc1shape" (Just 0) (bank_sel, bank_sel_p) = pF "bank_sel" (Just 0) (osc1pw, osc1pw_p) = pF "osc1pw" (Just 0) (osc1pwm, osc1pwm_p) = pF "osc1pwm" (Just 0) (osc2oct, osc2oct_p) = pF "osc2oct" (Just 0) (osc2semi, osc2semi_p) = pF "osc2semi" (Just 0) (osc2detune, osc2detune_p) = pF "osc2detune" (Just 0) (osc2fm, osc2fm_p) = pF "osc2fm" (Just 0) (osc2shape, osc2shape_p) = pF "osc2shape" (Just 0) (osc2pw, osc2pw_p) = pF "osc2pw" (Just 0) (osc2pwm, osc2pwm_p) = pF "osc2pwm" (Just 0) (osc3oct, osc3oct_p) = pF "osc3oct" (Just 0) (osc3semi, osc3semi_p) = pF "osc3semi" (Just 0) (osc3detune, osc3detune_p) = pF "osc3detune" (Just 0) (osc3fm, osc3fm_p) = pF "osc3fm" (Just 0) (osc3shape, osc3shape_p) = pF "osc3shape" (Just 0) (osc3pw, osc3pw_p) = pF "osc3pw" (Just 0) (osc3pwm, osc3pwm_p) = pF "osc3pwm" (Just 0) (sync, sync_p) = pF "sync" (Just 0) (pitchmod, pitchmod_p) = pF "pitchmod" (Just 0) (glide_mode, glide_mode_p) = pF "glide_mode" (Just 0) (osc1lvl, osc1lvl_p) = pF "osc1lvl" (Just 0) (osc1bal, osc1bal_p) = pF "osc1bal" (Just 0) (ringmod_lvl, ringmod_lvl_p) = pF "ringmod_lvl" (Just 0) (ringmod_bal, ringmod_bal_p) = pF "ringmod_bal" (Just 0) (osc2lvl, osc2lvl_p) = pF "osc2lvl" (Just 0) (osc2bal, osc2bal_p) = pF "osc2bal" (Just 0) (osc3lvl, osc3lvl_p) = pF "osc3lvl" (Just 0) (osc3bal, osc3bal_p) = pF "osc3bal" (Just 0) (noise_lvl, noise_lvl_p) = pF "noise_lvl" (Just 0) (noise_bal, noise_bal_p) = pF "noise_bal" (Just 0) (noise_col, noise_col_p) = pF "noise_col" (Just 0) (sus_ped, sus_ped_p) = pF "sus_ped" (Just 0) (glide_act, glide_act_p) = pF "glide_act" (Just 0) (sostenuto, sostenuto_p) = pF "sostenuto" (Just 0) (routing, routing_p) = pF "routing" (Just 0) (fil1tp, fil1tp_p) = pF "fil1tp" (Just 0) (fil1cut, fil1cut_p) = pF "fil1cut" (Just 0) (fil1res, fil1res_p) = pF "fil1res" (Just 0) (fil1drv, fil1drv_p) = pF "fil1drv" (Just 0) (fil1key, fil1key_p) = pF "fil1key" (Just 0) (fil1enva, fil1enva_p) = pF "fil1enva" (Just 0) (fil1envv, fil1envv_p) = pF "fil1envv" (Just 0) (fil1cutmo, fil1cutmo_p) = pF "fil1cutmo" (Just 0) (fil1fm, fil1fm_p) = pF "fil1fm" (Just 0) (fil1pan, fil1pan_p) = pF "fil1pan" (Just 0) (fil1panmod, fil1panmod_p) = pF "fil1panmod" (Just 0) (fil2tp, fil2tp_p) = pF "fil2tp" (Just 0) (fil2cut, fil2cut_p) = pF "fil2cut" (Just 0) (fil2res, fil2res_p) = pF "fil2res" (Just 0) (fil2drv, fil2drv_p) = pF "fil2drv" (Just 0) (fil2key, fil2key_p) = pF "fil2key" (Just 0) (fil2enva, fil2enva_p) = pF "fil2enva" (Just 0) (fil2envv, fil2envv_p) = pF "fil2envv" (Just 0) (fil2cutmo, fil2cutmo_p) = pF "fil2cutmo" (Just 0) (fil2fm, fil2fm_p) = pF "fil2fm" (Just 0) (fil2pan, fil2pan_p) = pF "fil2pan" (Just 0) (fil2panmod, fil2panmod_p) = pF "fil2panmod" (Just 0) (amp_vol, amp_vol_p) = pF "amp_vol" (Just 0) (amp_vel, amp_vel_p) = pF "amp_vel" (Just 0) (amp_mod, amp_mod_p) = pF "amp_mod" (Just 0) (fx1mix, fx1mix_p) = pF "fx1mix" (Just 0) (fx2mix, fx2mix_p) = pF "fx2mix" (Just 0) (fe_att, fe_att_p) = pF "fe_att" (Just 0) (fe_dec, fe_dec_p) = pF "fe_dec" (Just 0) (fe_sus, fe_sus_p) = pF "fe_sus" (Just 0) (fe_dec2, fe_dec2_p) = pF "fe_dec2" (Just 0) (fe_sus2, fe_sus2_p) = pF "fe_sus2" (Just 0) (fe_rel, fe_rel_p) = pF "fe_rel" (Just 0) (ae_att, ae_att_p) = pF "ae_att" (Just 0) (ae_dec, ae_dec_p) = pF "ae_dec" (Just 0) (ae_sus, ae_sus_p) = pF "ae_sus" (Just 0) (ae_dec2, ae_dec2_p) = pF "ae_dec2" (Just 0) (ae_sus2, ae_sus2_p) = pF "ae_sus2" (Just 0) (ae_rel, ae_rel_p) = pF "ae_rel" (Just 0) (e3_att, e3_att_p) = pF "e3_att" (Just 0) (e3_dec, e3_dec_p) = pF "e3_dec" (Just 0) (e3_sus, e3_sus_p) = pF "e3_sus" (Just 0) (e3_dec2, e3_dec2_p) = pF "e3_dec2" (Just 0) (e3_sus2, e3_sus2_p) = pF "e3_sus2" (Just 0) (e3_rel, e3_rel_p) = pF "e3_rel" (Just 0) (e4_att, e4_att_p) = pF "e4_att" (Just 0) (e4_dec, e4_dec_p) = pF "e4_dec" (Just 0) (e4_sus, e4_sus_p) = pF "e4_sus" (Just 0) (e4_dec2, e4_dec2_p) = pF "e4_dec2" (Just 0) (e4_sus2, e4_sus2_p) = pF "e4_sus2" (Just 0) (e4_rel, e4_rel_p) = pF "e4_rel" (Just 0) (soff, soff_p) = pF "soff" (Just 0) (res_ctrl, res_ctrl_p) = pF "res_ctrl" (Just 0) (loc_cont, loc_cont_p) = pF "loc_cont" (Just 0) (noff, noff_p) = pF "noff" (Just 0) blofeldController :: ControllerShape blofeldController = ControllerShape { controls = [ mCC mod_w_p 1, mCC br_ctrl_p 2, mCC ft_ctrl_p 4, mCC gl_rate_p 5, mCC ch_vol_p 7, mCC pan__p 10, mCC arp_rng_p 12, mCC arp_len_p 13, mCC arp_act_p 14, CC lfo1shape_p 15 (0, 5) passThru -- 0..5 - sine,triangle,square,saw,random,sample&hold ,mCC lfo1speed_p 16, CC lfo1sync_p 17 (0, 1) passThru -- 0 off, 1 on ,mCC lfo1delay_p 18, mCC lfo2shape_p 19, mCC lfo2speed_p 20, mCC lfo2sync_p 21, mCC lfo2delay_p 22, mCC lfo3shape_p 23, mCC lfo3speed_p 24, mCC lfo3sync_p 25, mCC lfo3delay_p 26, CC osc1oct_p 27 (16, 112) passThru -- 16, 28, 40 .. 112 - 128' .. 1/2' ,CC osc1semi_p 28 (52, 76) passThru -- 52 .. 76 - -12 - +12 semitones ,mCC osc1detune_p 29, mCC osc1fm_p 30, CC osc1shape_p 31 (0, 5) passThru -- 0..5 - pulse, saw, tri, sine, alt 1, alt 2 ,mCC bank_sel_p 32, mCC osc1pw_p 33, mCC osc1pwm_p 34, mCC osc2oct_p 35, mCC osc2semi_p 36, mCC osc2detune_p 37, mCC osc2fm_p 38, mCC osc2shape_p 39, mCC osc2pw_p 40, mCC osc2pwm_p 41, mCC osc3oct_p 42, mCC osc3semi_p 43, mCC osc3detune_p 44, mCC osc3fm_p 45, mCC osc3shape_p 46, mCC osc3pw_p 47, mCC osc3pwm_p 48, mCC sync_p 49, mCC pitchmod_p 50, mCC glide_mode_p 51, mCC osc1lvl_p 52, mCC osc1bal_p 53, mCC ringmod_lvl_p 54, mCC ringmod_bal_p 55, mCC osc2lvl_p 56, mCC osc2bal_p 57, mCC osc3lvl_p 58, mCC osc3bal_p 59, mCC noise_lvl_p 60, mCC noise_bal_p 61, mCC noise_col_p 62, mCC sus_ped_p 64, mCC glide_act_p 65, mCC sostenuto_p 66, mCC routing_p 67, mCC fil1tp_p 68, mCC fil1cut_p 69, mCC fil1res_p 70, mCC fil1drv_p 71, mCC fil1key_p 72, mCC fil1enva_p 73, mCC fil1envv_p 74, mCC fil1cutmo_p 75, mCC fil1fm_p 76, mCC fil1pan_p 77, mCC fil1panmod_p 78, mCC fil2tp_p 79, mCC fil2cut_p 80, mCC fil2res_p 81, mCC fil2drv_p 82, mCC fil2key_p 83, mCC fil2enva_p 84, mCC fil2envv_p 85, mCC fil2cutmo_p 86, mCC fil2fm_p 87, mCC fil2pan_p 88, mCC fil2panmod_p 89, mCC amp_vol_p 90, mCC amp_vel_p 91, mCC amp_mod_p 92, mCC fx1mix_p 93, mCC fx2mix_p 94, mCC fe_att_p 95, mCC fe_dec_p 96, mCC fe_sus_p 97, mCC fe_dec2_p 98, mCC fe_sus2_p 99, mCC fe_rel_p 100, mCC ae_att_p 101, mCC ae_dec_p 102, mCC ae_sus_p 103, mCC ae_dec2_p 104, mCC ae_sus2_p 105, mCC ae_rel_p 106, mCC e3_att_p 107, mCC e3_dec_p 108, mCC e3_sus_p 109, mCC e3_dec2_p 110, mCC e3_sus2_p 111, mCC e3_rel_p 112, mCC e4_att_p 113, mCC e4_dec_p 114, mCC e4_sus_p 115, mCC e4_dec2_p 116, mCC e4_sus2_p 117, mCC e4_rel_p 118, mCC soff_p 120, mCC res_ctrl_p 121, mCC loc_cont_p 122, mCC noff_p 123 ], latency = 0.1 } blofeld = toShape blofeldController