I’m putting together a patch for a few lectures physics of music and sound class that I’m teaching and am running into a few MIDI input snags. Basically I’m trying to send midi info into Kontakt loaded into vst~ which then outputs to a few different analyzers to "see" what the sound is doing (harmonics, spectrum, etc.).
In an effort to make the lectures fluid and smooth it’s helpful to have a bunch of stuff cued up in the Kontakt rack set on different midi channels so all I have to do is change channels on my controller to change instruments/sounds. But the rub is that vst~ only accepts the pitch on/off and velocity info (and detuning) with the midievent object as stated in the reference. Additionally it seems that any midi sent into vst~ only comes through on channel one.
Does anyone know how I might get more sophisticated MIDI info into vst~ or some sort of workaround? I’d love to be able to control a lot of different knobs, settings, and etc. inside vst~ with midi learn and more but can’t figure it out. Any help would be much appreciated!
about the channel thing, it is in the docs somewhere.
and about the parameters, well, why not just control the parameters directly from inside max? midi would only put a big limit on the resolution on it.
even when controlling a vst instrument from a hardware controller i wouldnt like to send the midi to the plug-in but 0. 1. floating point instead – so that you can mergem scale, reverse, limit, or interpolate the incoming data.
Look at the GenericVST object I created as part of a library I have been building to manage my live rig. It encapsulates the essence of the VST object but makes it much easier to send in MIDI (on multiple channels as well) by also encapsulating the MIDIEVENT stuff and the scaling between MIDI ranges and o.o – 1.0 ranges. It will make it much more convenient for you to do the kinds of operations you describe. The stuff is written up on my blog and the library can be downloaded.