n00b: how to route audio to midi-fx in m4l
I wish to route audio from a chosen (list) audio track to a m4l midi-effect on a midi track.
I am having a hard time figuring out the live.* objects.
So I would be very glad for any help!
Sincerely – Jonas Barsten Johnsen
Sending audio in MFL requires send~ / receive~ or plugsend~ / plugreceive~ object pairs. You can’t pick up just any audio signal. So using MFL for this task requires some forethought.
A spare Live audio track can perhaps be used to choose an audio source. In Live you have input selectors to select a track and 3 points in the device chain as audio sources. These choices are part of Live API, so they can be altered on the fly.
If you really need the audio signal in a MIDI-effect you still have to transport it using a send~ / receive~ pair. Expect a variable extra latency of about 12 ms, with no automatic compensation by Live.
Thanks Xanadu, really appreciate it!
Though, I think it would be easier if I rather converted it into an audio-fx, and than find a way to send the MIDI-signals to a MIDI-track.
As far as I have understood, there is no way of routing m4l midi to external devices, such as the IAC-driver?
Is it not possible to program this in java?
Well, I’m a bit confused about what you want to accomplish.
If you want to do something with a known audio track, an audio-fx is the way to go. If you want a drop down list of available audio signals things get a lot more complicated.
In your reaction to my previous message you mention sending MIDI to an output. Do you want to convert the audio signal to MIDI in some way?
Please make clear what you are up to.
The IAC-driver is on Apple and I’m on Windows XP, but I think there are three equal ways to output MIDI to the outside world for both platforms:
1. Create a MIDI track in Live without a MIDI to audio converter, so don’t create a synth plugin. Then choose a MIDI output for the track. You can use a plug / receive pair to transport midi signals to this track in MFL.
2. Get a Max/MSP upgrade licence at the website of C’74. This will allow you to output MIDI using Max.
3. Program a midiout external object. Distributing such an object will spoil the market for C’74, which will eventually shoot ourselves in the foot.
I’m in favor of the first option for using once in a while and option two for power users.
Hello again, thanks for responding!
I have both max/msp/jitter and m4l, but in this case, I´d rather use m4l.
I am making a simple audio-to-midi-device which sends a chosen MIDI-signal when the audio-gain reaches a chosen level.
I reached doing this by placing one "send" instance on an audio track, and one "return" instance on a MIDI-track, communicating trough the send/receive objects.
But I would really like to just have either one audio-device which sends MIDI to an external loopback or to a chosen MIDI-track in Live (umenu), or one MIDI-device with audio from a chosen audio track (umenu).
This is my patch so far, I welcome any comments, as you might see in the send (audio)-device, I am trying to convert db into 0-127 and than send it to it´s corresponding receive (midi)-device, but I have not figured completely how to do that … well, that´s not the main issue anyways.
----------begin_max5_patcher---------- 1591.3oc2ZstjaZCE92deJXX5OZScbQRHtzYZmo80HoyNXirW0hEd.7taRlj m8JjD1XLBDFa13LSBqOBL5b9z24hzwe4gY1KSekjaa86VevZ1ru7vrYhgJGX lRdl81nWWkDkKdLa19sKIY1yk2ZWTwpmnrMOlQVUHeMf.uENysBvkWwNkWAA Kbr9G0WgFKdOoK+22CPUum0orhb5mIk2BT9cjCymLJKgTHlZvwAS2WTMJTMp bnhOsiHUCaJqvdtk8xH1F6CSd47vh1JdF6+JiFkX82oIw1k28qO7P4k4lBDj W31PkATPdUX+1+lED3zO73IthPcBOvg.OvVgGPWvyMAVLje35a.+v4GO9A40 cYV+zZf06r1k9xOy+zG+3bvuzAf45JwHn3O.PWHFDLdDSKk4l.SIzmIKh4ug JE+4nrCu5ytod3wUvjjBn5nytLRNgUDUPSY0Mu5nVMG1L9bWPxdjvhVlPZfR lR1pOm0TUXfv0GoQSOGv47y0IoQ07TyeJ8EkKF+YpVUyidlD+XTQQFc49Bxw OkqPdEzWhtI6IoqqFtZ75VdBk8ekq.40lgSdfsow7+QzcaJacp.Zsa4loYwm n5mby8LpDGa8qluiPhSna08syKH6zpyb2tTFgIVH.KzN4EeJQqcskyaEecem Eseepff8dcOP0Ja6fFsfyyqQ6Z0DeJM6ni2lH9D1565YZNsiWS4BnxVf9spp QLVph9dX5ZapRRYaz5sd1bJwGN3HusHRQ0etNQW+0tR7fjQPghJS3B3Nx7Dd Ol5scLgGLZGgEawiHE2A7.UvSfHPpuWmoYf2aoY1ukv1e.Z3Slpn2ioIZgvD Jy0hEgsANmWqhA4V.WgLxntSqfDDZYBvfVJnpfrUYs1wjmoqHfxDKyKuHkgM jQMjcaHiaH60P1ugbPC4vFx757zmDTUml3+SnWy5zrWhx5xgA4DVh0PG2i0y pygIb7j.mquouJc61xbhMs8hr8cY2xJQgNx3E3KxsvCd8PDMtEdRECIVdfmu SqaOGZSTA4acfj9h.KtBZDpS9iG3FlOJmxygmbSbtJR2rgWGhdHPf.h5k3Dp pqChHcn18AjyQWfTYRODTi5nIS9zQXjaZvDBCN79jvnqFlj8a3pQ+XiLkMty yUAGLdrA1C1L+s.kF9YKfjGFSUP7tObAr28VUe5RvUsH0WNNP.XD43v3oJGm itHB2dNWRZTr3Lz5.LkIewRWSbWTLW2aHE6lcTeaI44QaHsPy9LwB3g6Ga7A GCrC7zfMnaXH82nyBVlpMzfdE3BtiOK37DZbm.gJNr+wBODGn4Ph13dnPnCf iG9R7azDpAHUKnNUrMJ0E.UK2WTjx5eaW.YwyWVQinfqdQiNAlVznhkc8BAm SRr.FfXX+964Dx6FVajLOwaUvlJX.YPmmP364NO0KRHS5DZBP.+wqEbuq7r7 bbVzehIUZ4fNOKza4NsZz8mqH1veybcneHvj9zBuk8wWBAuAzj+7OLHXBvu+ lI3eG1KAQSa9V+zCYyTTm5LZf6O5BRByGMgDKQJGSNVbfHTmbebkJq97xU9Z W2Ssfx5BE8NjLl6o0YKWb+d8LKDOqcBk072QjvbKG+TfKOce1ppYtpWaVGs4 XRdAkcf27gC9P0dlmnwwDV88GukFuKk6LnzAfKP3QhkcY2QcJGmHAj+Db3.N VIoYs2XCww.Co7G0yPrjwpSPSzIzjpSkakqecx4xVwAJuHz4RpeoH7capDFo c.MxNJY2.ysCrPUgNx7JxdWTW..UGIE9fzXMCSnsMr0uOnHgSqNcxBY6pDdX ZTXnfJJWQA3yDp1mMnR3JXBNWWSvGdpV6zP.DVyDJEFoIfMgrNswyflDicfb UX0Zt3OpjTBowlP.X.MFNsIoPPCq..LcqoHS3YSa.HnIEJ4NwApMAmbGXtbj b+TAxtZHqc+DAwVOPxD4vwGUzjvhtSaLkxds0qNgFnapBw.xi0.46ctTHRdF gvJgwhslTbQCicJRj2qJENogavl3ZW125IDl7bLEmFRY59BhkzYF27ynPU26 UedBpXyCLoKzd.SWnAeesP6AFwBsayOKWnC7uRKznfqeEXiUkLJ.9z5QiLo3 YzzFL12DUBOBUhK70G9e.pV+rJA -----------end_max5_patcher-----------
----------begin_max5_patcher---------- 1043.3oc6YssaiBCD84juBDOmMx1bKYea2eippJRvo0aA6HvjscW0+80W.Bg hIPogMUJRUNc7E7wGOywig+Nel8F1K3Laquacm0rY+c9rYppjULqvdlcR3Ka iCyTcyNlb.uLhDFauP25gvTZXB9zFuy49x12Gx29Dg93Co3sb8Lg7QKAKrBf xRWWUYvRf08kCIEmgo7PNgQki.VTOIRMKrM+5a9Ge7ohYmiSe.SC2Diq2eZd BgFi4YMpjkyKqE0xTVCotqjfCBVa.o5mD+08Xc+ssWXYuKlEJFeYexBOfidH jySIax43i+WVAMWvyRpLNGy1UVcY80WjwD5yR5VMVvh22gDVj3OrolIzcLEI Z2RirzHbpoQlSIZJq0glsGiihIIlFcFGu2HlwurmQEruZaZowIm+Zrw0UhvI UMbTvx1amnbk.s1Z4FX6LFgK7nq4d0556IVJuJNXOQ3yasYocqOuCjLRGOJ4 NX2KlPJkU3pVMksMUwL5icEa9toshizM+174G+QU917Eet5DnN0IffwpS.mH chaxD2jIFrLQ3NQcV7qTYBzTHSPw+VDlVFjxwun1csSHQjcrzDQ.hY4AOeUT 2JnN3CnspE1USGvq74riQ4Yj+ni+q1lOUBHnUI.nofYBsVXr74WQl+HUPjV+ jEGYe4jPgcIgB8BFqDp6Tlpkm2MIzuFRnN..nSMT3jngljccpdBudRxpK4Af +XkGblvLrtoNbKAqgHNb.GeUpN7+KwJQz0dLMxJC2YlUJ8.j55L9AckWEZPI VAGVhUWjrpxSvz7JdQLYEu9qiZdsISpTbLkmYetGp+34Im9nPJKV0RpvbbRw B0NBefrECkRjKjEZaTCamF1tMr8ZX62vNng8pF1qaXCA1lkykoXuPqpeQbJL DsHHWrHl8rQJdp2moqWWQJvubQJhyF4BG5ys3CTNdHPY4fBK.1Ce0av+2WkJ CReovfxRy9TaBoOJ3sOQs0vsOe9qq5qHJGmt7UbWMDeEzUfuho6wG9LVbP44 iffNZ4qNOrwcPhnNcll46nEc1huOswOSRJOYiHwtyxE.snxG5fF2OjLSw6ZQ Ti6GI4bkvGxy.pMolWD.NcNijHh.KmMDEAbJufQGI9Ld0bP+W4JDHxej17i0 oVDx5OkNxX4oaKo6huWl0w0QDNiSnUtQ2U8Nxr7p5ySjnHLsNNE72dlXuq.B HwsF8DDjm9ajUnn4o3qV2z5KVg8DqtC.qv0Jr5pRoEVyZjX0qGXEcReNKVGI hjmczK5aBgTOPjTa2B0eHAEG2K2CQqj+rdUkwHwpSewJb.XE5ogmi7mf0UFi kW6STcC+gK9d8obSGXBNcXxquapSGOIy787XZZiSg8YuCMsXB0m8N3DyS8BS fQfIgway+GnZ8tJN -----------end_max5_patcher-----------
What kind of "midi signal" do you want to trigger?
If it’s for synths, remember that you can use vst~ and audiounit~ objects, directly in your audio device; so you just need one track, one device.
Thanks for your demo-devices. Together they achieve what you want to do. It’s clear now you are not a noob!
As far as I know your devices are state of the art. A midi-track has no input for audio and once a Live track is using audio it can’t output MIDI.
I must agree: it’s a bit clumsy. But it works!
I love MFL because it is capable of this kind of ‘plumbing’ in Live.
In EnergyXT you always have MIDI and (multiple) audio connections in parallel, for input as well as output. Of course there is no integration with Max.
I think the current design of Live without MFL is clever and flexible. Ableton and Cycling ’74 are living 4000 km apart and have done a great job of integrating two very different software designs. When using MFL, Live tracks are lacking some flexibility. We must ask Ableton to enhance their tracks to enhance MIDI and audio capabilities of tracks.
Crampe: thanks for your advices, really appreciate them!
Xanadu: thanks for your kind words and for setting things in perspective.
What an excellent community!
Have a nice day.
i am having a similar problem regarding routing midi within Live. and am wondering how to open the earlier patches in Live ??
I have tried saving them as .maxpat then opening in Live but M4L doesnt do anything.
in regard to my own endeavours, i am attempting to create a MIDI LFO (sending controller information) effect which to route to any desirable knob/parameter within Live. My earlier attempts (using SYnthedit) really only worked well using an external host. So I am once again attempting to build an internal device to Live.
i am unable to create (within M4L) a purely midi instrument (or track).. (well that is how it seems as it refuses to coexist with an instrument.)
Hello there :)
I did not entirely understand your issue, might because is 3 in the morning here, but have you tried using IAC (mac) or MIDI Yoke (pc) or just the internal routing in Live? … I don’t know the Yoke at all, I just googled for a PC equivalent for IAC.
To open the text-patch, choose "New From Clipboard" in Max/Msp`s file-menu when you have copied the text.
Than copy all the objects and patching to your patch.
I hope this helped, good night!
How do you post these binaries to this forum?
To me your issue is not very clear too. In Holland it’s 9 PM now.
I did some testing and found out that a MIDI track with a synth (Electric) will send audio output to the Master track. At the same time on another MIDI track with a synth (Analog) you can choose the MIDI out of the first track as MIDI in. For this no MIDI loopback is needed.
One can use the live.xx objects to control any device parameter. Just read the lessons.
Please try to explain your issue more clearly.
Hi again Xanadu, how have you been? :)
in the reply-section (where I am writing just now), further down, there is a "Upload Files from your Computer"-section, and even though it says it does not support ".amxd"-files, it does :)
I’ve just overlooked it from november 23 till now!
after spending a couple days learning how to make one of these i was glad to find this post (its much nicer than what i was working on!).
one question; does anyone know of a good way to include the velocity information and convert that as a part of the midi signal? thanks.
Thanks for your response!
I have actually tried to do some enhancements to the patch.
Including a lame way of converting volume to velocity …
I’ll post it later tonight.
Meanwhile, take a look at CNMAT’s external (max object) "Analyzer~" here: http://cnmat.berkeley.edu/downloads