This topic is all about how Max/MSP can interface with other languages and artifacts. So far I have tried interfacing Max/MSP with External Hardware synthesizers through MIDI. I have also experimented with Interfacing Max/MSP with ORCA through MIDI, OSC and UDP messages, as well as how Max/MSP interfaces with Arduino through serial in order to use various sensors.

As I am making this topic I am trying to figure out how to Interface Max/MSP with MQTT brokers such as Shiftr.io through Node for Max as well as how I can interface Max/MSP with Python in order to control an Axidraw XY plotter with a live-input rather than static .svg’s. If your curious about some of these things I am making guides on all of these subjects.

Here is an example of how Max/MSP Interfaces with ORCA

Here is an example of how Max/MSP Interfaces with an Adafruit AMG8833 Thermal Camera through Serial communication


Here is how to connect Max/MSP with an MQTT broker

This and more to come can be found here!

8 Likes

FWIW I’ve found OSC to be very easy. I had Max talking to both VDMX and Unity / Hololens in the past.

2 Likes

That is super cool. Yea I also found OSC to be a very easy way of communicating with various things with. Have you tried using OSC between python and max/MSP?

No, never. I’m sure it must be possible though.

1 Like

I figured out how to launch a python script from max/MSP via Node for max and a NPM package called python-shell, Now i just need to find out if I can control parameters of a more complex python-script. :smile:

here is the repo where you can find the code and everything you need to connect Max/MSP with Python.

3 Likes

just getting into jitter and hoping for some smarter than me ppl in the room bc I have many questions now : )

any idea what the best way to load/animate an arbitrary # of 3d models ? is poly~ fair game here ? or maybe i just need to straight into JS ?

1 Like

My girlfriend and I are working on a cover of Mount Eerie’s O My Heart. I used your Collatz sequencer to generate some texture that comes in around the 0:27 mark here.

Two Collatz sequencers sequence two instances of Arturia Stage 73 panned slightly left/right, which are sent to Madrona Labs’ Aaltoverb. I might not end up using this sound in this particular final mix, but I imagine it’ll find its way into other songs. Thanks for writing this :slight_smile:

2 Likes

How would I fill a given number of samples in a buffer with a specific waveform? For example, if I wanted to fill the first 256 samples of a 512 sample buffer with one cycle of a sine wave. How would I do that? I guess [peek~] would be what I want, but I don’t know how to work out the math to draw the sine function.

i.e., the image below, but the second half is empty

Screen Shot 2020-04-10 at 14.26.07

peek~ / sin~ (i think (nope, only cos~ in msp i guess)) / line~ (scaled to 2pi * time in buffer) would work but the javascript Buffer object might be nice for this as well. i’m assuming the buffer fill messages don’t work for you’re doing

Just the procrastination I needed!

Here’s one way (audio needs to be on):

One way:

Bet there are others…

1 Like

thanks for this, it works :slight_smile: can you help me unpack what’s going on here, though? is the buffer being filled then [count~] clearing the second half?

edit: ah, wait. count is writing a 0. from [sig~] in the second 256 samples, yes?

Yes, correct. Buffer size is set, fill makes 2 cycles of the sine, then poke~ sets the second half to 0.

I guess you could also use uzi to keep it all in the max world too.

Yes, works:
Screen Shot 2020-04-10 at 16.16.46

More or less the thing I figured out afterwards with some added stuff to fill the second half of the buffer with a ramp cycle :slight_smile:

1 Like

I’m new to max and finding it tough to concentrate so currently I’m trying to change some existing patches to suit my needs and remove some gui elements which I don’t need. I’m from a design background so this is a great way to feel purposeful whilst digging around in patches and seeing how bits work. I’m starting slow.
I’m finding it hard to remove some presentation elements from bpatchers when they’re in the main patch. Is there something else I should be checking for other than the ‘include in presentation’ checkbox in the bpatcher. I’m also changing visual elements in the bpatchers, background and text colours etc, which are translating well into the main patch, but changing layout and spacing of elements won’t change in the main patch. Is there a way to edit the way a bpatcher presents from the main patch?
I have been watching tutorials and reading the max manual so apologies if this is obvious and basic, I’m very much out of my comfort zone with this at the moment.
Thanks all

1 Like

Bpatcher will always display what you have in it. There are some useful offset commands if you want to focus on specific parts of the patch from a master patch (see using offsets in the helpfile).

I’m finding it hard to remove some presentation elements from bpatchers when they’re in the main patch.

  • So is this Bpatchers that are included in presentation of your master patch, or UI within Bpatchers that is included in presentation within the Bpatcher?

As with a lot of Max stuff, it is sometimes difficult to grasp what the issue is without seeing the patch. Can you post it or even better - part of it showing the issue? I’m sure someone could take a look. Or a video capture could do it.

1 Like

Thanks Mark,
there are elements in the bpatcher which I have no need to see in the main patch but unchecking ‘show in presentation’ in the bpatcher and saving hides that element in the bpatcher (as it should) but it still shows in the main. I don’t want to post patches at the moment because I’m just digging around in other peoples brilliant patches and making aesthetic changes, feels sacrilegious (but fun).

Hmmm…

Maybe just check if your Bpatcher in the main patch has ‘embed patcher in parent’ checked. This saves the patch in its current state within that patcher, but also means that the patch is no longer referencing the original. Could be it…

Another useful thing is using the different view modes of an embedded patcher to help understand what is happening. If you right click > object > open original will do as expected, but new view of… will open the patcher you are running, in the state it is. Really useful to see what’s going on. Event probe and signal probe (enabled from the debug menu) are super useful here.

1 Like

It wasn’t embed so it’s still a mystery. I’ll post back if I ever figure it out. That open new view is a great tip, thanks. I’m going to divide my max time between digging in vast patches and trying to make some super simple things from scratch. I’m glad llllllll has my back! Many thanks Mark.

2 Likes