-
-
Notifications
You must be signed in to change notification settings - Fork 60
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Running EnvelopForLive inside of Max/MSP directly? #90
Comments
You could certainly adapt the max 4 live devices to run in standalone max. The components should work fine standalone, however you will be missing some key things that Live provides:
You could create your own stand-ins for that. The "core guts" of the Envelop ambisonic panning implementation doesn't really depend on the live audio routing. But it will take a big of patching surgery to pull out the relevant bits. We don't really have any ready-to-use examples of this, unfortunately. |
Thanks for the insights!
This definitely seems like the most black magic part for me, I don't really know/understand how you can wire the audio between devices on Max4Live like if they are Thanks a lot for your quick and awesome answer as usual! |
Yeah, the inter-channel wiring was definitely one of the trickier parts of E4L... it uses the fact that plugin devices can have more than just a single stereo out pair, as well as multiple inputs. The E4L panners actually have 8 stereo outputs, for a total of 16 channels which supports 3rd-order Ambisonics. There are routing settings for these additional outputs which can be set using Max code, e.g. so outputs 3/4 from an E4L panner go to inputs 3/4 of the E4L Master Bus. It does get a bit hairy but it works. The routing assignment logic is here in these patchers if you're curious: You can see the multi-outs on the E4L panner devices, and the init routine that gets called to set them up to be "invisibly" routed to the E4L Master Bus. Then on the E4L Master Bus side, there are multiple inputs and some more e4l.bus.receive initialization stuff... In standalone Max you could just rip all of this fiddly stuff out and either use send~/receive~ or just simply connect the device patch cords directly. This routing stuff is all definitely a bit of a hack (or your more flattering term "black magic") around the fact that Live does not really support multi-channel audio - everything is stereo, so we construct the multi-channel flow ourselves by using extra sets of stereo pairs. |
thanks a lot for taking your time to reply this! I had a look at the source code and indeed the live api seems fairly "completicated" ( aka messy ) but indeed it works! very good work you did! in the end of the day trying to run envelop4live inside creates it's own set of problems, still it is a valid experiment to learn more about envelop4live and ( ambisonics and live api as well! ). I wonder if there would be any advantage of trying to use "spat~" over ICST or if in the future we would be able to have envelop4live support multiple libraries ( i.e. spat and icst ) |
The spat tools are very well regarded, lots of powerful stuff in there. However, they are not under an open source license that is compatible with Envelop's GPL licensing. So we are not able to utilize or include those in this project for release. Definitely something you could experiment with independently though! |
that's definitely the right way to do it, very good catch! 🎱 i wonder if the "sync" function will also follow the transport on max when doing that.. i definitely need to give it a try |
Hello,
I have seen a few examples of Max4Live devices running inside of Max MSP directly and i'm wondering if that would be possible ( and fir there are examples ) with Envelop4Live?
The text was updated successfully, but these errors were encountered: