Sending MIDI to an Audio channel

Oct 20, 2013 at 9:48am

Sending MIDI to an Audio channel

I’m really pulling my hair out here – very grateful for any help! I think it’s a (somewhat crazy) limitation in Max4Live, but just in case I’m missing something..

Basically I’m trying to use a Max for Live plugin to control a parameter on a vst plugin on another plugin. The only way I can think to do that is to use a midi controller message, but I can’t find any way to send MIDI into an audio channel – in the io view, only midi channels appear as possible outlets.

I don’t really understand how you select devices with midiout in Max4Live – I wondered if I could use an IAC bus or something and route it back in that way. But it’s not immediately evident that would be done.

The other option might be to use API messages, but I’m not sure vst plugins can be controlled using these, and if so I certainly don’t know how. Any ideas anyone?

Any help super gratefully received..

#268512
Oct 20, 2013 at 11:42am

I can remember I stumbled upon this also some time ago.
I’m not a m4l expert, but I think the most flexible and straight forward way would really be to go out IAC and back in.
(which is a shame if that’s true, of course)

#268525
Oct 20, 2013 at 12:09pm

In Live you can automate the parameters of VST plugins and thus also control them with API messages.
For details see Live manual, chapter ‘Using Plug-Ins’.

#268530
Oct 20, 2013 at 1:39pm

@woyteg – yes, that would seem the easiest (if annoyingly convoluted) way to make it work, but I’ve not got it to do so yet.

@broc – I kind of assumed plugins couldn’t be controlled through the API, and I can’t find any documentation of how to do so, although again I might be missing something.

I assume I need a live.remote object with a live.path object connected to the right inlet.

The live.path object would read something like:

live.path live_set tracks 2 mixer_device? ??????

I run out there – I don’t know if it would be a mixer_device or not, and how one would know how to identify the automated parameter.

Any further pointers?

#268539
Oct 20, 2013 at 3:51pm

IIRC I used to send data out to an empty midi track in Live, and then from that track into the vst.

#268546
Oct 21, 2013 at 6:00am

I think the OP wants sending midi to an audio track which is not possible with standard routing.

Re API: for accessing device parameters you could look into factory devices (Max Audio Effect > Tools > API) to see how it’s done and copy the relevant code.

#268595
Oct 21, 2013 at 6:52am

@broc – yes, that’s exactly right. I would’ve thought the out/in via IAC would work, but it didn’t seem to.

I did exactly what you suggested – I could only find out codes for standard Live elements (volume, panning etc.). When you use the Live.path object these always resolve down to a single ID number. So I just sort of got the feel for those, then for my vst plugin I just had to guess and do a bunch of trial and error. Got there in the end!

If anyone has a more efficient way of doing this, I’d love to know for next time..

#268604
Oct 22, 2013 at 4:30pm

If I understand correctly – - you wish to control VST parameters via a m4l device on another channel.

Here is my solution (not at home to test, but I am 99% sure this will work like a charm)-

-Macro the relevant parameters in the VST in an instrument/effect rack.
-Steal the code from the included LFO (or any other device that includes the API navigation scheme), use that to find the id of the macro tied to the vst parameter.
-use that id to tie a live.remote~ to the intended parameter.
-Send your midi values into previously discussed live.remote~ (with proper scaling, and control -> audio conversion).
-Rejoice.

#268825
Oct 23, 2013 at 3:34am

@evan – yes, that’s pretty much what I did (although I didn’t think of stealing the code from the LFO device – I’ll do that next time!). Once you find the ID it does seem to be ‘stable’ – I was worried it might change as changes are made to the session, but that doesn’t seem to have happened. Yet!

#268866
Oct 23, 2013 at 3:27pm

It’s my understanding that once an object in live has an id, it doesn’t change (Could be wrong about tracks, if you start deleting them etc.). But as far as parameters go, they should stay put. A while back they also made them persistent, so when you load the session again all objects retain their ids. You might want to implement a failsafe though with some integer storage or something similar.

Best of luck!

-E

#268943
Oct 24, 2013 at 3:51am

@evan – yes, I can confirm that they do seem to be consistent. Luckily! THanks for your help on this..

#268982
Oct 30, 2013 at 1:50am

Here’s a device doing just that. It allows you to send and receive midi data from everywhere to anywhere. http://www.maxforlive.com/library/device/1993/midi-transmitter
hope it helps
Ronen

#269553
Oct 30, 2013 at 2:29am

Thanks Ronen, I’ve haven’t had a chance to try it yet, but that device looks like just the ticket, very useful. I’m pretty sure Max for Live ought to have this functionality built in, but it’s nice that you’ve come up with a nice easily-usable workaround!

#269556

You must be logged in to reply to this topic.