I just started working with max - well, max for live. One thing that frustrates me is that all the tutorials are still max tutorials and won’t output sound without replacing the dsp out with plugout…

I wish I didn’t have to shell out another $300 for standalone max - I would gladly accept the other limitations of max4live.

there’s a 30 day demo, can be useful for learning :slight_smile:

yes, but you should consinder that there are $399 of reasons to prefer PD
IMHO

There’s a much better set of M4L tutorials available, but in a fairly wacky place. They’re in the help view for the M4L Building Tools pack.

  1. Go to Packs (under Places in the Live browser sidebar)
  2. Right-click “M4L Building Tools” and select “Show Default Lesson”.

There are a bunch of lessons there, starting with MIDI processing.

6 Likes

Thank you! I don’t know why this isn’t more obvious.

From my perspective this is spot on, I am very comfortable with analogue synthesis, and modular synthesis, and within Max DSP, BEAP, however to be able to fully exploit MAX 8, or whatever pre existence, there just seems to be soooooo much expected knowledge required , I really want to start exploiting vizzie and jitter to drive the graphical output using my modular setup from a performance petspective but a lot of times I feel bewildered when this forum starts to disappear into the complexities of levels of knowledge that can kinda only be known if you were in right from the start

1 Like

You’re definitely not alone. I think of Max these days as a convenient environment for UI, midi/data routing and hosting of Max externals… in other words, anytime I want to do something of any complexity I just code it as an external and do the interface in Max. I embed a C++ delegate object in the main Max object and have it do all the work.

2 Likes

what’s the debugging situation for max objects like? I’ve probably done some things that are complicated enough to warrant an external but I’ve always assumed it would just be too difficult to test and revise compared to a max patch

1 Like

Just set breakpoints, attach to process Max in Xcode… like everything sometimes it fails but is mostly alright…

I did test max runtime on a $50 Windows Tablet a while back. The audio drivers weren’t really built to fight latency, but it had WiFi, and multitouch, and could handle my MIDI processing well enough.

(The turnoff for me, with this particular unit, was that you had to keep track of a special USB dongle to charge the thing. I knew I would lose that in a day or two.)

First off: Thanks for the replies everyone - I appreciate it and I feel slightly less stupid now :slight_smile:

But only slightly, because I have to ask questions like this one: Does anyone know a way to make a mc.list~ object that takes a list of length 100 and gives me 100 channels of values? Other than typing “mc.list~ 0. 0. 0. 0. […] 0.” with 100 "0."s, of course, because that seems sort of dumb. I already have generated the list I want and it’s static (for now), so I guess I could print it and copy paste it in, but this seems like an obvious use case I’ll run in a lot and I’d love to have a better solution.

Alternatively, I’d also be happy about another solution to turn a long list of values into a bunch of mc signals. But I think that’s exactly what mc.list~ is for?

I don’t have Max 8 and haven’t used the object you’re talking about so sorry if this is completely off the point as a result! When I want to do stuff with long lists I tend to use the coll object. Maybe that could feed the mc.list~ object in some way?

https://docs.cycling74.com/max5/refpages/max-ref/coll.html

1 Like

i would do:

[uzi 100]
[i 0.]
[zl.group 100]

replace the [i] with some other operation, i.e. [random], to generate a list that isn’t just zeros

1 Like

Sorry for the confusion, apparently I didn’t state my problem correctly: I do already have the long list (generated a bit differently, because I actually needed to calculate all the different values, it’s not supposed to be 0s, but a long list of frequencies).

I just need to convert the list I have to an mc-signal and that’s what I’m struggling with. This conversion of list to mc-signal is what mc.list~ is for, but you need to specify how long the list is supposed to be (it discards all values in lists longer than that) and the only way I found to set the expected list length of that object is to give it an according number of initial values, i.e. “mc.list~ 0. 0. 0. 0. 0. 0. […]”, which just seems silly for very long lists.

Optimally, I’d want something like “mc.list~ @listlength 100”, but no such thing seems to exist.

I see. Yes, looks like mc.list~ would require 100 arguments… hmm that’s a weird one

I figured it out! [mc.targetlist @chans 100 @listmode 1] will do what you want:

list to mc.maxpat (5.0 KB)

3 Likes

I posted the same question on the Max list. They sent me two examples for creating mc lists from massive multislider banks:

mcLists.maxpat (4.2 KB)

3 Likes

Thanks to both of you!

I didn’t know about the applyvalues message. Useful. Thanks.

One thing I have to say about Max 8 so far is that the mc documentation seems to be all over the place and sometimes hard to find.

Right clicking an mc.sig~ for example gives me an “extra help” menu containing “mc wrapper features help” and “mc message features help,” but neither of these options open a help window, nor any documentation, they just cause the message “menu_generalhelp generalhelp2” to be printed in the console. Weird. Seems like a bug.

yeah - that sounds like a support issue…

[ddg]

1 Like