Im using the MidiSynth Class from this thread Video Tutorials on MIDI based music production with Supercollider, jackd and DAW - #10 by droptableuser and the
.prime method to bind a SynthDef to two different Ndefs (soprano and bass), adding specs with
.addSpec and CC messages using the
.cc method for playing back two SC instruments with midinotes from Ableton Live.
The first Ndef (soprano) should be played on output channel [0, 1] and the second Ndef (bass) on output channel [2, 3].
This is the setup for one of the Ndefs with the MidiSynth Class:
( MidiSynth(\soprano).synth(\additive); MidiSynth(\soprano).note(noteChan:0).cc(ctrl:[ \atk, \dec, \rel, \inharmonic, \fDec, \freqEnvAmount, \fltAtk, \fltRel, \lpfCutoff, \lpfEnvAmount, \lpfSlope, \peakSlope, \peakRes, \amp, \vel, \tilt, ], ccNum:(1..16), ccChan:0); MidiSynth(\soprano).addSpec( \atk, [0.07, 8.0], \dec, [0.5, 4.0], \rel, [0.07, 20.0], \fDec, [0.001, 20.0], \inharmonic, [0.001, 0.100], \freqEnvAmount, [0, 100.0], \fltAtk, [0.001, 20.0], \fltRel, [0.001, 20.0], \lpfCutoff, [100.0, 8000], \lpfEnvAmount, [0, 8000], \lpfSlope, [-3.0, -10], \peakSlope, [-3.0, -10.0], \peakRes, [12, 48], \tilt, [-3.0, -12.0], \amp, [0, 1], \vel, [0, 1], ).edit; )
Ive been wondering how i can automatically set the output channels for both of the Ndefs and was trying to use the
.set method like this:
MidiSynth(\soprano).set(\out, 0); MidiSynth(\bass).set(\out, 2);
When i do it like this the Ndefs are enabled right away and cant be enabled or disabled using the play method inside the
When i additionally open the
NdefMixer after setting the output channels using the
.set method and hit play for the different instruments Im not enableling them Im creating additional Synths. Probably a wrong understanding of play with the
I could also not use the
.set method and always set the output channels manually inside the
NdefMixer which allows me to enable and disable the different Ndefs.
Is this the right method for setting the output channels automatically?
Another issue is: when Im not playing any Midi notes in Ableton at all and hit play on the
NdefMixer i get a sustained note for the specific Ndef which only can be removed by hiting cmd + period.
So at the moment I first have to play the midinotes in Ableton and then afterwards I can hit play on the
NdefMixer and have to make sure the passage where i hit play in Ableton includes midinotes for every single Ndef im using otherwise i have the same problem with sustained notes for the specific Ndef which was not receiving any midinotes from Ableton. this is really inconvenient.
NdefMixer and just using the .
set method there is no problem with sustained notes.
So I should probably get rid of the
NdefMixer and just use the
.set method and enable and disable the different instruments in Ableton Live.
2.) The other problem is that Im trying to use CC automations inside Ableton live to automate the parameters of the SC instruments with an Instrument Rack + External Instrument + CC Control Max 4 Live device. At the moment It looks like this:
2a.) But i have to toggle every single knob of the controls before they get updated in SC. I cant just set them in advance. This makes sense but is also very inconvenient. I would like to be able to just click into a specific passage in the arragement view in Ableton Live and the instrument in SC plays back the specific parameter values.
2b.) Also automating midi values from 0-127 in Ableton Live which then get mapped inside SC to their specific range and in addition also have to open the
NdefGui to see the actual parameter values and not just values between 0-127 makes this setup impossible to work with.
Especially because the resolution of the MIDI CC values is not accurate enough to set for example a filter cutoff precisely to 2000 hz in Ableton. The best way I think would be to do the mapping inside Ableton live and dont use the
NdefGui at all. But i dont know how or if this works.
So at the moment the
NdefMixer and the
NdefGui are kind of redundant with the Instrument Rack for CC Controls inside Ableton Live, but atm necessary to see the actual values for the parameter mapping. Is anybody using Ableton Live and SC and has a workaround for these problems?