Know MAX/MSP? I need your advice

Reaktor, MAX/MSP, VST/AU, etc. A place for all things soft....

Moderators: Joe., lisa, luketeaford, Kent

Post Reply
StrangeAttraction
Common Wiggler
Posts: 201
Joined: Sun Nov 16, 2014 1:51 pm
Location: London

Know MAX/MSP? I need your advice

Post by StrangeAttraction » Fri Mar 13, 2020 8:20 am

Hello
Now seems like a good time to stay home, hunker down and learn those things I was hoping to learn, like MAX/MSP.

I have an end-goal in mind and it's a track creation and performance environment.
I do already a lot of these things in Ableton with M4L but it's not an ideal solution and I would like to explore building a patch in Max.

if you know Max...where would you start? Trying to pick one part of the problem and build something? Any particular resources (books, articles, videos) that you found the most helpful?
I know there's lots of Max advice online but I would like to find out what people here think it's actually useful and worthwhile.

My end-goal is to create my own performance environment with a:
- 4-5 Sequencers with some fun ornamentations like ratcheting, probability, rotation of sequences, etc.
- A few Envelopes/LFOs/Functions for modulation to use internally and externally via Expert Sleepers modules
- Module playing audio samples
- Something holding CV values to send to eurorack modules (like sending parameters in a sound preset)
- Basic FXs: Delay, Reverb, Chorus, Phaser, Looper
- Way to route CV/Gates/MIDI and audio around for mixing and modulation - so a Routing Matrix
- Some kind of a Song or Preset mode - i.e. each song would be a unique snapshot of all the routing, sequences, LFOs, essentially the building blocks

Wow, it starts to sound like an Octatrack...LOL...but really...
can you offer any advice where best to start and what worked in your Max journey?
cheers

Be Sandy?
Veteran Wiggler
Posts: 509
Joined: Sun Apr 08, 2018 12:04 pm

Re: Know MAX/MSP? I need your advice

Post by Be Sandy? » Fri Mar 13, 2020 9:38 am

If you're using M4L then you're off to a decent start in terms of being familiar with how Max works.
I always find it easiest to have a goal in mind, break it into parts and then work on these, learning what I need as I go along. Pulling apart other peoples' patches as a learning method is quite often recommended but not one I personally find useful.

Resources - as you've likely discovered there are lots.

The Max Thesaurus is a document I constantly look at when figuring out what object(s) will do the things I want. Between it and the built in tutorials and help files you can figure out most stuff.
https://docs.cycling74.com/max8/vignettes/thesaurus

A couple of books that you might find useful/interesting:
Electronic Music and Sound Design

Step by Step: Adventures in Sequencing with Max/MSP

Xomrys
Learning to Wiggle
Posts: 24
Joined: Wed Feb 26, 2020 12:54 am

Re: Know MAX/MSP? I need your advice

Post by Xomrys » Fri Mar 13, 2020 11:03 am

I'm working on something like this, minus the audio stuff.

Aside from the basic tutorials, I'd highly recommend:
  • Know how to develop Max externals. This can save time as for some complex tasks it's just easier (and cleaner) to code the thing in C. here's the latest documentation. https://cycling74.com/sdk/max-sdk-8.0.3/html/index.html. Note: I recommend actually doing 'the actual work' in C++, because the 'easier and cleaner' threshold is usually when you end up using STL objects like std::map and so on. To do this, just make sure your file containing ext_main is name with .cpp, and embed a pointer to a C++ delegate object in the Max object. You can continue to use C for the Max-specific stuff.
  • On the other hand, learn the zl (list processing) objects, maybe they can already do most of what you want.
  • Learn the pattr object backwards and forwards. Not only does this help with preset management and preserving the UI 'state' between sessions, it is essential for copy/paste (say a bulk copy of one sequencer's data to another sequencer), also dynamic coloring of UI objects (like sequencer stage LED's). you mention "snapshot management", this is also in the same category.
  • 4. Aside from the pattr object it may be good to read up on the 'Model-View-Controller' paradigm as a way to manage and maintain a complex project involving UI. Max programming is still programming. there's nothing worse than wanting to tweak something and having to do a lot of repetitive work because of poor/spaghettified design.

rovadams
Learning to Wiggle
Posts: 22
Joined: Mon Apr 21, 2014 7:30 pm
Location: Oakland, CA

Re: Know MAX/MSP? I need your advice

Post by rovadams » Fri Mar 13, 2020 12:38 pm

I agree with Be Sandy's advice, particularly Electronic Music and Sound Design. But if you're already working in Ableton/M4L, it seems like you're going to be doing a lot of re-inventing the wheel here - so many of those elements are easily done in Live. I've found a lot of solutions for Live limitations in maxforlive.com.

StrangeAttraction
Common Wiggler
Posts: 201
Joined: Sun Nov 16, 2014 1:51 pm
Location: London

Re: Know MAX/MSP? I need your advice

Post by StrangeAttraction » Sun Mar 15, 2020 6:42 am

Thanks all - lots of good advice here that I'll check out.

That's right - Ableton + M4L does a lot of the funcionality for free already. Especially, around clip management, sequencing, audio routing, FXs....
M4L plugins are essentially audio and midi processing blocks at the moment, and if I were going to build it in MaxMSP then I would be looking to re-create a lot of the same Live functionality, which might be a huge task. Though I've seen it being done very effectively in the wild.
I might start by building an M4L device to store CV values in order to have "presets" for LI and Plaits modules.
The routing matrix might require a proper MaxMSP patch though as doing it in Live would bloat the template exponentially.

So, yes, keeping my performance template really simple - Live with M4L would most likely suffice.
Anything more fancy with routing matrix...is calling for a dedicated Max solution.

Thanks for the info about useful Max objects for this type of goal.
Last edited by StrangeAttraction on Sun Mar 15, 2020 6:48 am, edited 1 time in total.

francoprussian
Wiggling with Experience
Posts: 386
Joined: Sun Jul 26, 2015 7:54 am

Re: Know MAX/MSP? I need your advice

Post by francoprussian » Sun Mar 15, 2020 4:47 pm

Don't know your power level so these might be redundant but here goes:

If you're doing anything timing-critical, then it's worth having a read of this:

https://cycling74.com/articles/event-pr ... -vs-queue/

There's also a video linked at the bottom of the comments there which explains the same thing with some visual examples.

Gen~ can do almost anything an external can do in terms of DSP, good to have a dig there. I don't agree with trying to write externals unless you're into C already and you know how to set up a development toolchain. Gen~ can also be used to do timing critical sequencing.

zl family of objects are very useful but docs are a bit crunchy, so best to experiment in a sandbox or something.

Abstractions can be very powerful when combined with bpatcher. This is how BEAP works. The way they did it is really convoluted though and i always forget the technique. Most things in Max are needlessly convoluted i find. Including convolution.

Poly~ is a pain in the arse.

A good way to get to know objects is to find one that does roughly what you want and then look in the help page reference pane. At the bottom there are usually a couple of related objects and sometimes you find one that does what you want better than what you had. It's like surfing wikipedia, you end up with a shitload of help pages open in the background, like tabs in a browser. I often just make a dummy patch with the objects i'm interested in using laid out on the canvas so that i can just alt-click em to get info.

groove~ has some really decent advanced functions that can be found in the help reference page.

You can customize the object buttons in the border with a right-click, pretty useful for quick object browsing.

Snapshots are useful but weird, something about the way they get stored is really stupid, it's been ages since i was using Max so can't remember any more.


Good objects:

2dwave~
sync~
rate~
togedge
sig~
edge~
zerox~
change~
capture~ (useful for debugging signal rate stuff)
coll
borax
midiflush
spray
uzi
cycle (without ~)

The object thesaurus is quite good for inspiring investigation into unknown objects, but it's repetitive, like a thesaurus, and long, and annoying to use, as is much of the 'help browser' abomination.


Oh, and it's obligatory to end any commentary on Max with the twee valediction "Happy Patching".

Toodle-pip.

francoprussian
Wiggling with Experience
Posts: 386
Joined: Sun Jul 26, 2015 7:54 am

Re: Know MAX/MSP? I need your advice

Post by francoprussian » Sun Mar 15, 2020 4:53 pm

and also, pattr is a bastard, and it breaks the top-to-bottom flow paradigm. Really annoying system they made there.

Snapshots are much simpler to deal with but have some gotchas to watch out for. I think it's to do with the object settings. Read the help about it, sure it's mentioned in there.

pip pip

francoprussian
Wiggling with Experience
Posts: 386
Joined: Sun Jul 26, 2015 7:54 am

Re: Know MAX/MSP? I need your advice

Post by francoprussian » Sun Mar 15, 2020 4:56 pm

and also also, sam tarakajian's videos are excellent and informative and entertaining: https://www.youtube.com/user/dude837

kesserich
Common Wiggler
Posts: 126
Joined: Fri Sep 13, 2013 7:35 pm

Re: Know MAX/MSP? I need your advice

Post by kesserich » Sun Mar 15, 2020 5:52 pm

StrangeAttraction wrote:
Fri Mar 13, 2020 8:20 am
if you know Max...where would you start? ...
I'd start with this:

For what's its worth, here is my perspective on max: Only use max/msp when the tool you are looking for doesn't already exist. I say this because if you get into the habit of building everything you need, you won't actually have much time left over to work on music. Additionally, you will never implement anything as well as specialists if for no other reason, then they will pour ALL of their time into it. Eg. If you want an amazing FULL FEATURED step sequencer, just go by one right now as it will take you years to develop one from scratch. If you want a beautiful sounding LFP, go buy one right now, or you will spend months learning DSP theory and tweaking coefficients.

Lastly, if you need sample accurate timing and want to drop down to code, i would just use gen~ in this day and age. Javascript is slow as shit and the overhead of dealing with C externals is not really necessary.

StrangeAttraction
Common Wiggler
Posts: 201
Joined: Sun Nov 16, 2014 1:51 pm
Location: London

Re: Know MAX/MSP? I need your advice

Post by StrangeAttraction » Mon Mar 16, 2020 9:03 am

I think the link might be broken
kesserich wrote:
Sun Mar 15, 2020 5:52 pm
StrangeAttraction wrote:
Fri Mar 13, 2020 8:20 am
if you know Max...where would you start? ...
I'd start with this:

For what's its worth, here is my perspective on max: Only use max/msp when the tool you are looking for doesn't already exist. I say this because if you get into the habit of building everything you need, you won't actually have much time left over to work on music. Additionally, you will never implement anything as well as specialists if for no other reason, then they will pour ALL of their time into it. Eg. If you want an amazing FULL FEATURED step sequencer, just go by one right now as it will take you years to develop one from scratch. If you want a beautiful sounding LFP, go buy one right now, or you will spend months learning DSP theory and tweaking coefficients.

Lastly, if you need sample accurate timing and want to drop down to code, i would just use gen~ in this day and age. Javascript is slow as shit and the overhead of dealing with C externals is not really necessary.

kesserich
Common Wiggler
Posts: 126
Joined: Fri Sep 13, 2013 7:35 pm

Re: Know MAX/MSP? I need your advice

Post by kesserich » Mon Mar 16, 2020 9:38 am

Sorry:
Step by Step: Adventures in Sequencing with Max/MSP by Gregory Taylor

Post Reply

Return to “Music Software”