Math Coding for M4L
Math Coding for M4L
I am just beginning my journey towards developing VSTs for Ableton.
Many, if not most of my ideas rely heavily on relatively complex mathematics.
I know that many VSTs are programmed in C++ and that is where I had planned to start.
M4L has a large number of canned elements that would be most helpful for me.
I understand that M4L can integrate with Javascript, can it do so with C++? Or as crazy as it might sound, would it be feasible to use Javascript as an intermediary to send information and commands back and forth between C++ and M4L?
I really don't know anything about C++, Javascript or M4L at this point.
Just trying to figure out the best place to start 'eating the elephant'.
I do have subscriptions to the latest version of Max (7.1, I believe), and MS Visual Studio Online.
Any suggestions would be most helpful.
Thanks!
Many, if not most of my ideas rely heavily on relatively complex mathematics.
I know that many VSTs are programmed in C++ and that is where I had planned to start.
M4L has a large number of canned elements that would be most helpful for me.
I understand that M4L can integrate with Javascript, can it do so with C++? Or as crazy as it might sound, would it be feasible to use Javascript as an intermediary to send information and commands back and forth between C++ and M4L?
I really don't know anything about C++, Javascript or M4L at this point.
Just trying to figure out the best place to start 'eating the elephant'.
I do have subscriptions to the latest version of Max (7.1, I believe), and MS Visual Studio Online.
Any suggestions would be most helpful.
Thanks!
Re: Math Coding for M4L
Note: While I am new to C++, Max and Javascript, I am an extremely proficient SAS Programmer. I would use SAS, if it were not $15k per person per year :s. Now trying to backpedal and learn more common languages.
Re: Math Coding for M4L
VSTs or M4L devices? Two totally different things.Statwerk wrote:I am just beginning my journey towards developing VSTs for Ableton.
You can code externals (custom Max objects) in C++ which can be used within Max/M4L. You don't want to use javascript for anything audio related or timing sensitive. It runs in the low priority thread and isn't suitable for DSP tasks.Statwerk wrote: I understand that M4L can integrate with Javascript, can it do so with C++? Or as crazy as it might sound, would it be feasible to use Javascript as an intermediary to send information and commands back and forth between C++ and M4L?
better study up then there's a lot to learn.Statwerk wrote: I really don't know anything about C++, Javascript or M4L at this point.
-Evan B. sound_designer.composer.performer
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
Re: Math Coding for M4L
Excellent!
I do have quite the the learning curve ahead of me.
I am envisioning what I call VSTs, but I may not be using the appropriate definition.
I am envisioning a fully featured software program that has 'modules' that can be placed on individual tracks in Ableton. They would use M4L as a convenient way to send & receive information to and from Ableton. Ultimately it would need to be a C++ program that had M4L elements embedded rather than the reverse because there are a lot of sophisticated algorithms running in the background which require a robust, fully featured compiler to develop.
I should come up with a new name, though. VSTs as such are designed to run in many DAWs. My plans are Ableton specific. Maybe call them 'AVST'?
I do have quite the the learning curve ahead of me.
I am envisioning what I call VSTs, but I may not be using the appropriate definition.
I am envisioning a fully featured software program that has 'modules' that can be placed on individual tracks in Ableton. They would use M4L as a convenient way to send & receive information to and from Ableton. Ultimately it would need to be a C++ program that had M4L elements embedded rather than the reverse because there are a lot of sophisticated algorithms running in the background which require a robust, fully featured compiler to develop.
I should come up with a new name, though. VSTs as such are designed to run in many DAWs. My plans are Ableton specific. Maybe call them 'AVST'?
Re: Math Coding for M4L
What you are talking about are not VSTs. It seems to me you want to code externals using C++ (due to your sophisticated algorithms) and house those with M4L devices which can communicate with each other. VST's don't talk to each other usually. They just process audio signals.
You wouldn't code a C++ program that had M4L elements in it, it just doesn't work like that. I doubt C74 would want you to embed their commercial software within your C++ programs.
You wouldn't code a C++ program that had M4L elements in it, it just doesn't work like that. I doubt C74 would want you to embed their commercial software within your C++ programs.
-Evan B. sound_designer.composer.performer
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
Re: Math Coding for M4L
Sounds good. Thanks!
-
- Posts: 6302
- Joined: Sat Aug 28, 2004 6:21 pm
Re: Math Coding for M4L
Unless something's changed that I missed, Max externals are coded in C, not C++. (A discussion about it here: Cycle74 support for Max External C++ API?)dataf1ow wrote:You can code externals (custom Max objects) in C++ which can be used within Max/M4L.
That said, Gen has the code export feature which does create C++ code from what you've patched in the Gen object. That could possibly be a way in to at least creating the DSP parts of VSTs (if that's in fact what you're trying to do).
Other than that Gen is also a great way to essentially code something like an external without dealing with programming in C. You can do some powerful DSP with [gen~].
Unsound Designer
Re: Math Coding for M4L
Yeah you're right. Although I think my points are still valid, regardless of the amount of plusses following the 'C'.stringtapper wrote:Unless something's changed that I missed, Max externals are coded in C, not C++. (A discussion about it here: Cycle74 support for Max External C++ API?)dataf1ow wrote:You can code externals (custom Max objects) in C++ which can be used within Max/M4L.
-Evan B. sound_designer.composer.performer
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
-
- Posts: 6302
- Joined: Sat Aug 28, 2004 6:21 pm
Re: Math Coding for M4L
Just clearing up details. Never said anything about your points.dataf1ow wrote:Yeah you're right. Although I think my points are still valid, regardless of the amount of plusses following the 'C'.stringtapper wrote:Unless something's changed that I missed, Max externals are coded in C, not C++. (A discussion about it here: Cycle74 support for Max External C++ API?)dataf1ow wrote:You can code externals (custom Max objects) in C++ which can be used within Max/M4L.
Unsound Designer
Re: Math Coding for M4L
And I do appreciate it! I'm not entirely clear on the finer points of developing externals.
I didn't mean to come off as unappreciative.
I didn't mean to come off as unappreciative.
-Evan B. sound_designer.composer.performer
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
-
- Posts: 6302
- Joined: Sat Aug 28, 2004 6:21 pm
Re: Math Coding for M4L
Nah it's all good.
I do think that Gen is a very good possibility for sidestepping the lower-level coding to create some serious DSP inside of a M4L device.
I took a class on delay-based signal processing using Gen a couple of years ago and it was a real eye opener. If you want to get into making filters and other effects with Gen this document that the professor gave us is a great start:
https://dl.dropboxusercontent.com/u/104 ... agrams.pdf
You can recreate those diagrams in Gen and it's very intuitive to do if you know what the symbols mean and how they correlate to the various Gen operators.
I gave a list of correlates for translating the diagrams in this thread:
https://cycling74.com/forums/topic/good ... de-online/
I do think that Gen is a very good possibility for sidestepping the lower-level coding to create some serious DSP inside of a M4L device.
I took a class on delay-based signal processing using Gen a couple of years ago and it was a real eye opener. If you want to get into making filters and other effects with Gen this document that the professor gave us is a great start:
https://dl.dropboxusercontent.com/u/104 ... agrams.pdf
You can recreate those diagrams in Gen and it's very intuitive to do if you know what the symbols mean and how they correlate to the various Gen operators.
I gave a list of correlates for translating the diagrams in this thread:
https://cycling74.com/forums/topic/good ... de-online/
Unsound Designer
Re: Math Coding for M4L
I've been getting into Gen~ a lot lately as a way to get into more low-level signal processing stuff, and I just finished a M4L device where most of the audio stuff is Gen (although it's just recording and playing back a buffer, basically). Resources like this are great!
Funny - I have that cycling forum post bookmarked already I must've stumbled upon it in the past.
/hijack
Funny - I have that cycling forum post bookmarked already I must've stumbled upon it in the past.
/hijack
-Evan B. sound_designer.composer.performer
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow
http://www.maxforlive.com/profile/user/dataf1ow
http://www.soundcloud.com/dataf1ow