From ad682ab1676470c9508e0fd13ccbd6ad46809291 Mon Sep 17 00:00:00 2001 From: Eugene Petkevich Date: Wed, 1 Jun 2022 22:02:13 +0300 Subject: [PATCH] Fixes / add touch --- extensions/classes/midiremotesl.sc | 14 ++++++++++---- startup.scd | 8 ++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/extensions/classes/midiremotesl.sc b/extensions/classes/midiremotesl.sc index 53f74ca..12ea5c2 100644 --- a/extensions/classes/midiremotesl.sc +++ b/extensions/classes/midiremotesl.sc @@ -16,6 +16,7 @@ MidiRemote25SL : MidiHandler { var <>key; var <>bend; var <>mod; + var <>touch; *new {|name='Novation SL25 ReMOTE MKII', midiNames=#["ReMOTE SL", "ReMOTE SL MIDI 1", "ReMOTE SL MIDI 1"], reveal=true| ^super.newCopyArgs(name, midiNames, reveal).midiInit.controlInit; @@ -24,10 +25,10 @@ MidiRemote25SL : MidiHandler { controlInit { // key pressed/released MIDIdef.noteOn((\keyDown++name).asSymbol, {|...args| - key.value(true, *args); + key.value(true, args[0].linlin(0, 127, 0, 1), args[1], *args); }, (0..127), srcID: idin); MIDIdef.noteOff((\keyUp++name).asSymbol, {|...args| - key.value(false, *args); + key.value(false, args[0].linlin(0, 127, 0, 1), args[1], *args); }, (0..127), srcID: idin); // bend @@ -40,9 +41,14 @@ MidiRemote25SL : MidiHandler { mod.value(args[0].linlin(0, 127, 0, 1), *args); }, 66, srcID: idin); + // pressure + MIDIdef.touch((\touch++name).asSymbol, {|...args| + touch.value(args[0].linlin(0, 127, 0, 1), *args); + }, srcID: idin); + // initialize handlers with revealing code [ - \key, \bend, \mod + \key, \bend, \mod, \touch ].do{|handlerName| this.perform((handlerName++\_).asSymbol, {|...args| this.noCallback(handlerName, *args); @@ -53,7 +59,7 @@ MidiRemote25SL : MidiHandler { free { [ - \keyDown, \keyUp, \bend, \mod + \keyDown, \keyUp, \bend, \mod, \touch ].do{|prefix| var defName = (prefix ++ name).asSymbol; MIDIdef(defName).free; diff --git a/startup.scd b/startup.scd index 03bad72..b0e9e22 100644 --- a/startup.scd +++ b/startup.scd @@ -33,14 +33,14 @@ SynthDef(\buti, {|out=0, amp=1, pan=0, t_trig=0, accent=0.1, freq=200, tone=0.5, // Subtract synth pad SynthDef(\dyti, { - | out=0, gate=1, freq=440, amp=1, cut=800, rez=0.8, + | out=0, gate=1, freq=440, amp=1, pan=0, doneAction=2, cut=800, rez=0.8, modFreqMin=7, modFreqMax=12, modAmp=0.01, release=1.0 | var sig = 0; var modFreq = SinOsc.kr(Rand(modFreqMin, modFreqMax), 0, modAmp, 1); sig = sig + Pulse.ar(freq * modFreq); sig = RLPF.ar(sig, cut, rez); - sig = sig * EnvGen.ar(Env.asr(releaseTime: release), gate, doneAction: 2); - sig = Pan2.ar(sig, Rand(-0.3, 0.3)); + sig = sig * EnvGen.ar(Env.asr(releaseTime: release), gate, doneAction: doneAction); + sig = Pan2.ar(sig, pan); Out.ar(out, sig * amp); }).add; @@ -61,7 +61,7 @@ SynthDef(\leto, { |freq = 440, sustain = 1, amp=1, out=0| }).add; // round membrane drum continuous -SynthDef(\liwe, {|out=0, amp=1, pan=0, t_trig=0, tension=0.05, loss=0.99999, impact=0.025| +SynthDef(\liwe, {|out=0, amp=1, pan=0, t_trig=0, tension=0.05, loss=0.99999, impact=0.1| var sig, excitation; excitation = EnvGen.kr(Env.perc, t_trig, timeScale: impact, doneAction: 0); excitation = excitation * PinkNoise.ar(); -- 2.17.1