Midi Effects Plugins in Ableton Live
-
@ulrik I am assuming you are using a timer for sending out the CC ?
We just encountered a problem in our plugin.Now works as Vst2, Vst3,AU and AAX.
BUT...when buffer is set to 1024 or higher , it stops working, that is the plugin runs but stops sending out cc.
Not entirely sure if scriptnode or the timer stops working.Assuming that our projects both use the timer, have you tried setting buffer to 1024 or higher?
-
@lalalandsynth Actually I'm using this function, creating MessageHolder objects for each controller value, and it is triggered by the TransportHandlers" GridChange function" set to minimum note value = 18 ( 1/96)
So it will read the cc values on each 1/64T of current tempo
// SEND CC FUNCTION inline function sendCC(number, value, channel) { local cc; switch (number) { case 128: cc = 16384 * value; break; default: cc = 127 * value; } local m = Engine.createMessageHolder(); m.setType(m.Controller); m.setChannel(channel); m.setControllerNumber(number); m.setControllerValue(cc); Synth.addMessageFromHolder(m); rm.sendOSCMessage(subdomains[channel-1], ["cc", channel, number, cc]); };
I've set the Transport handler like this:
const TH = Engine.createTransportHandler(); TH.setEnableGrid(true, 18); // 18 = 1/96 TH.setSyncMode(TH.PreferExternal); TH.setOnGridChange(true, GridChange);
I have both some kind of Extra Low LFO curves running and a sliderpack for each channel (4 channels) and they can be configured for all cc's and pitch bend, and yes, it works nicely.
However I have not tried changing the buffer, I'll try it when I get homeCC lane / channel
Low LFO / channel
-
@ulrik very interesting to see! Thanks.
I am pretty sure that we have discovered that midi out stops working at 1024 buffer or higher.Rather than the timer or scriptnode.
-
@lalalandsynth Confirmed, something breaks at 1024 here, the clock seems to still triggers but... the Synth.addNoteOn & Synth.sendController stops working at 1024 (I've not tested over 1024)
@Christoph-Hart what do you think happens? Could it be fixed?
-
@lalalandsynth said in Midi Effects Plugins in Ableton Live:
@ulrik very interesting to see! Thanks.
I am pretty sure that we have discovered that midi out stops working at 1024 buffer or higher.Yeah, the midi out is out :)
-
@ulrik indeed, thanks for confirming.
Discovered by complete accident, completely puzzled for quite a while as I didnt notice that protools changed my buffer size.All of a sudden plugin stopped working :)
Should i make a bug report?
-
@lalalandsynth I think I have found away around it. Although there are some warnings in the code about memory usage etc.
But since we are just using the plugins for MIDI and the only audio we are processing is are 2 audio paths from ScriptNode I "hope" it will slide.Just add this the the
Extra Definitions
in the HISE settings will give you some extra breathing room for the plugin.HISE_MAX_PROCESSING_BLOCKSIZE=2048
-
@jonhallur awesome, maybe @Christoph-Hart can chime in on this.
-
@jonhallur Nice finding!
-
@Christoph-Hart Oh boy. this was probably the biggest HISE mystery for me in the past year.
Is there any way to work around this so we can have midi out working with all buffer sizes without affecting the performance of the plugin? -
Interesting. I've looked in the code and HISE will break down audio (and midi) buffers into smaller chunks if the buffer size exceeds the preprocessor value but it appears that it doesn't copy the temporary (smaller) midi buffers back to the original buffer, which would explain the behaviour.
I've just fixed that but please check if it solves the problem (you should not rely on the preprocessor flag to get it working).
-
@Christoph-Hart said in Midi Effects Plugins in Ableton Live:
Interesting. I've looked in the code and HISE will break down audio (and midi) buffers into smaller chunks if the buffer size exceeds the preprocessor value but it appears that it doesn't copy the temporary (smaller) midi buffers back to the original buffer, which would explain the behaviour.
I've just fixed that but please check if it solves the problem (you should not rely on the preprocessor flag to get it working).
Could this be a fix for this as well you think?
https://forum.hise.audio/topic/8056/midifx-plugin-issues-in-logic-pro-x/21 -
@ulrik said in Midi Effects Plugins in Ableton Live:
@Christoph-Hart said in Midi Effects Plugins in Ableton Live:
Interesting. I've looked in the code and HISE will break down audio (and midi) buffers into smaller chunks if the buffer size exceeds the preprocessor value but it appears that it doesn't copy the temporary (smaller) midi buffers back to the original buffer, which would explain the behaviour.
I've just fixed that but please check if it solves the problem (you should not rely on the preprocessor flag to get it working).
Could this be a fix for this as well you think?
https://forum.hise.audio/topic/8056/midifx-plugin-issues-in-logic-pro-x/21Yes it fixed that problem, I'm able to switch tracks in Logic and the recorded midi will still trigger! Hallelujah! Thank you @Christoph-Hart