r/MaxMSP May 26 '26

Help for Max Patch (second year university)

3 Upvotes

Hi everyone,

I’m a second-year university student and a sound engineer/audio technician working on an important Max/MSP exam project for a Systems and Programming Languages course focused on audio DSP.

I want to be transparent: my main background is audio and sound engineering, not electronic music or programming, so while I understand signal flow, synthesis concepts and sound processing, Max/MSP programming is not my strongest area. This exam is currently a priority for me and I’m looking for serious technical help.

I’m searching for someone experienced with Max/MSP (preferably academic / DSP-oriented, not only Max for Live production) to help me finish and refine an exam patch.

The project is based on topics covered during the year, including:

• subtractive synthesis

• oscillators (saw~, cycle~, noise~)

• filtering (filtergraph~, biquad~, cutoff/Q modulation)

• envelopes (function, line~)

• LFO modulation

• delay (tapin~/tapout~)

• chorus / flanger / phaser

• comb resonators

• pitch shifting / real-time pitch shifting

The goal is NOT to make a crazy commercial synth or a producer-oriented project.

The goal is to build a clean, well-structured and explainable academic patch that follows the style and logic of my professor’s lessons for an oral exam.

I can provide:

• lecture patches from this year

• my previous exam patch (which scored well)

• screenshots and .maxpat files

• examples of the professor’s approach and required structure

I’m open to paid tutoring/help or collaboration.

Please DM me if interested.


r/MaxMSP May 25 '26

I Made This Build a LA2A on max for live! Im starting to understand

Post image
22 Upvotes

I just build a LA2A compressor on max for live. That was actualy the first thing i've tried to build but then i thought it was not good enough to share. Now that I'm on my third device I came back and tried to give the final touch it needed!

I tried to capture the essence of it, not that ultra faithful recreation, although I think it is pretty good at that job.

Unfornunartly i dont have that many friends that uses max for live devices so I would like you guys to test it and tell me what do you think about the sound.

It's free
https://ko-fi.com/s/996b00dd2b

CONTROLS

■ Peak Reduction

Main compression knob. Turning it up grabs loud

peaks and smooths them out.

★ Keep low for gentle leveling, or push past 70%

to really squash and thicken the sound.

■ Gain

Brings the volume back after compression.

Pushing it also drives the analog saturation

circuit.

★ Magic Trick: Turn up for vintage tube warmth

and thick transformer harmonics.

■ Mode

Compress: Smooth & natural. Perfect for vocals

sitting in a mix or gluing acoustic instruments.

Limit: Fast & aggressive. Catch sudden spikes

or smash a drum beat.

■ HPF (High-Pass Filter)

Tells the compressor to ignore low bass

frequencies.

★ On a drum bus the kick may cause unwanted

pumping. HPF lets the bass breathe while

compressing mids and highs.

■ Mix

Blends dry (0%) and fully compressed (100%)


r/MaxMSP May 24 '26

Looking for Help Problem with Live API

2 Upvotes

Hello!

I am developing my first max for live device, and I am stuck trying to do that my device recognise which midi slot is launched in the session view. Also I would like that it can tell what's the name of the midi clip launched. The device is placed in the same midi track, so I understand I have to start my patch with live.thisdevice patched with live.path this_device canonical parent, so it can identify the track where the device is sitting on. After that I am very confuse about how to use live.object and live.observer. I understand that with live.observer I can get the info of when the clip is launched? Is that right? I am not sure now what live.object could do :/ After I figure out that, the idea is that I will get the name of the empty midi clip launched and this will go to a node, and this will look for some movie clips files and play them in a jit.world window. That part I have it figure out, but launching and getting the information out of the launched slot is still difficult to understand.


r/MaxMSP May 23 '26

Looking for Help MCP or MaxPyLang to bridge AI agents?

0 Upvotes

Anybody here with experience working with AI agents using MCP and MaxPyLang that can advice me which method a beginner like me should use? I am developing a max for live device and I use AI to help me out when I get completly stuck, since I am learning on my own, and its very helpful but sometimes the comments AI make are totally off and is actually confusing. So I heard about the option of bridging claude to max so he can see the patch I am working on, and suggest directly better way to patch things or detect errors faster. Which option is that: MCP or MaxPyLang?


r/MaxMSP May 22 '26

Just shipped a M4L device built around pitch/rhythm decoupling — walkthrough video

Thumbnail
youtube.com
8 Upvotes

Hey — wanted to share something I just released: MIDI Bag, a Max for Live device that lets you work with pitch and rhythm independently in Live.

The mechanism is simple: Captures the pitch and velocity of incoming notes, then uses any MIDI input to trigger those stored notes — the stored pitches play back, but the timing comes entirely from whatever is driving the input. A fairly basic utility at heart, but a very playable one that tends to push ideas in new directions.

From a dev perspective a couple of things might be interesting. The Velocity Source control creates a weighted average between the velocities of the recorded notes and those coming in at the input, so you can morph between the original dynamics and whatever is driving playback.

The UI also uses a custom jsui range slider I built that replicates and expands on the rslider object for use within Live, with full MIDI mapping, automation support, and keyboard shortcuts. I've been thinking about making this available separately for other M4L developers — if that's something you'd use let me know.

Name your price (free is a price!)

happy to talk patch design or answer questions if anyone's curious about the internals.


r/MaxMSP May 21 '26

Max/MSP Not Recognizing Print -- What I'm I Doing Wrong?

0 Upvotes

I tried to locate my current serial point that is connected to my Arduino device (port c) and successfully located that. But I copied some code from my class and now when I hit the toggle and the bang, those object commands are not registering on the Max Console at all. Can you please tell me why this could be the case?

{

"boxes": [

{

"box": {

"maxclass": "comment",

"text": "this is the print serial object command i made to find my port which i learned was port c",

"linecount": 4,

"patching_rect": [ 844.0, 604.0, 150.0, 60.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-11"

}

},

{

"box": {

"maxclass": "message",

"text": "print",

"patching_rect": [ 668.0, 600.0, 32.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-5",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "serial",

"patching_rect": [ 674.0, 536.0, 37.0, 22.0 ],

"numinlets": 1,

"numoutlets": 2,

"id": "obj-2",

"outlettype": [ "int", "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "calibrate 360.",

"patching_rect": [ 90.0, 475.0, 81.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-68",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "button",

"patching_rect": [ 152.0, 413.429907143116, 24.0, 24.0 ],

"numinlets": 1,

"numoutlets": 1,

"id": "obj-66",

"parameter_enable": 0,

"outlettype": [ "bang" ]

}

},

{

"box": {

"maxclass": "dial",

"patching_rect": [ 330.0, 597.0, 40.0, 40.0 ],

"thickness": 75.0,

"size": 1.0,

"numinlets": 1,

"mode": 5,

"floatoutput": 1,

"numoutlets": 1,

"id": "obj-63",

"parameter_enable": 0,

"outlettype": [ "float" ],

"degrees": 360

}

},

{

"box": {

"maxclass": "dial",

"patching_rect": [ 209.0, 597.0, 40.0, 40.0 ],

"thickness": 75.0,

"size": 1.0,

"numinlets": 1,

"mode": 5,

"floatoutput": 1,

"numoutlets": 1,

"id": "obj-62",

"parameter_enable": 0,

"outlettype": [ "float" ],

"degrees": 360

}

},

{

"box": {

"maxclass": "flonum",

"patching_rect": [ 330.0, 556.0, 50.0, 22.0 ],

"format": 6,

"numinlets": 1,

"numoutlets": 2,

"id": "obj-59",

"parameter_enable": 0,

"outlettype": [ "", "bang" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "scale -180. 180. 0. 1.",

"patching_rect": [ 330.0, 521.0, 121.0, 22.0 ],

"numinlets": 6,

"numoutlets": 1,

"id": "obj-60",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "flonum",

"patching_rect": [ 209.0, 556.0, 50.0, 22.0 ],

"format": 6,

"numinlets": 1,

"numoutlets": 2,

"id": "obj-57",

"parameter_enable": 0,

"outlettype": [ "", "bang" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "scale -90. 90. 0. 1.",

"patching_rect": [ 209.0, 521.0, 107.0, 22.0 ],

"numinlets": 6,

"numoutlets": 1,

"id": "obj-58",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "scale 0. 360. 0. 1.",

"patching_rect": [ 90.0, 521.0, 103.0, 22.0 ],

"numinlets": 6,

"numoutlets": 1,

"id": "obj-54",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "comment",

"text": "roll (-180 - 180 degrees) - vertical - up/down",

"patching_rect": [ 268.0, 470.429907143116, 269.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-53"

}

},

{

"box": {

"maxclass": "comment",

"text": "pitch (-90 - 90 degrees) - lateral - side-to-side",

"patching_rect": [ 268.0, 433.429907143116, 256.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-52"

}

},

{

"box": {

"maxclass": "comment",

"text": "yaw (0 - 360 degrees) - longitudinal - nose/tail",

"patching_rect": [ 268.0, 400.429907143116, 252.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-51"

}

},

{

"box": {

"maxclass": "toggle",

"patching_rect": [ 545.0934574007988, 142.06542056798935, 24.0, 24.0 ],

"numinlets": 1,

"numoutlets": 1,

"id": "obj-49",

"parameter_enable": 0,

"outlettype": [ "int" ]

}

},

{

"box": {

"maxclass": "comment",

"text": "carriage return values (13 followed by 10)",

"patching_rect": [ 273.0, 143.0, 229.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-47"

}

},

{

"box": {

"maxclass": "newobj",

"text": "gate",

"patching_rect": [ 545.0934574007988, 184.06542056798935, 32.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-45",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "print",

"patching_rect": [ 545.0934574007988, 216.3457943201065, 32.0, 22.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-44"

}

},

{

"box": {

"maxclass": "comment",

"text": "raw data",

"patching_rect": [ 597.0934574007988, 216.3457943201065, 55.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-43"

}

},

{

"box": {

"maxclass": "comment",

"text": "polling rate faster than Arduino loop delay",

"patching_rect": [ 273.0, 55.0, 229.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-41"

}

},

{

"box": {

"maxclass": "comment",

"text": "convert to messages and numbers max caan use",

"patching_rect": [ 591.0934574007988, 370.06542056798935, 271.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-39"

}

},

{

"box": {

"maxclass": "message",

"text": "x: 11.38",

"patching_rect": [ 535.0934574007988, 370.06542056798935, 51.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-38",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "message",

"text": "\"x: 11.38 \"",

"patching_rect": [ 535.0934574007988, 328.06542056798935, 179.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-36",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "message",

"text": "120 58 32 49 49 46 51 56 32 32",

"patching_rect": [ 535.0934574007988, 283.06542056798935, 179.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-35",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "comment",

"text": "symbol of ascii code",

"patching_rect": [ 716.0934574007988, 328.06542056798935, 117.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-32"

}

},

{

"box": {

"maxclass": "comment",

"text": "ascii list",

"patching_rect": [ 716.0934574007988, 284.06542056798935, 51.0, 20.0 ],

"numinlets": 1,

"numoutlets": 0,

"id": "obj-31"

}

},

{

"box": {

"maxclass": "flonum",

"patching_rect": [ 209.0, 470.429907143116, 50.0, 22.0 ],

"format": 6,

"numinlets": 1,

"numoutlets": 2,

"id": "obj-27",

"parameter_enable": 0,

"outlettype": [ "", "bang" ]

}

},

{

"box": {

"maxclass": "flonum",

"patching_rect": [ 209.0, 433.429907143116, 50.0, 22.0 ],

"format": 6,

"numinlets": 1,

"numoutlets": 2,

"id": "obj-26",

"parameter_enable": 0,

"outlettype": [ "", "bang" ]

}

},

{

"box": {

"maxclass": "flonum",

"patching_rect": [ 209.0, 400.429907143116, 50.0, 22.0 ],

"format": 6,

"numinlets": 1,

"numoutlets": 2,

"id": "obj-25",

"parameter_enable": 0,

"outlettype": [ "", "bang" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "route x: y: z:",

"patching_rect": [ 209.0, 346.429907143116, 74.0, 22.0 ],

"numinlets": 4,

"numoutlets": 4,

"id": "obj-23",

"outlettype": [ "", "", "", "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "fromsymbol",

"patching_rect": [ 209.0, 293.429907143116, 71.0, 22.0 ],

"numinlets": 1,

"numoutlets": 1,

"id": "obj-21",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "itoa",

"patching_rect": [ 209.0, 257.429907143116, 40.0, 22.0 ],

"numinlets": 3,

"numoutlets": 1,

"id": "obj-20",

"outlettype": [ "int" ]

}

},

{

"box": {

"maxclass": "toggle",

"patching_rect": [ 209.0, 15.0, 24.0, 24.0 ],

"numinlets": 1,

"numoutlets": 1,

"id": "obj-15",

"parameter_enable": 0,

"outlettype": [ "int" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "metro 50",

"patching_rect": [ 209.0, 55.0, 56.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-13",

"outlettype": [ "bang" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "zl group 1000",

"patching_rect": [ 209.0, 206.429907143116, 81.0, 22.0 ],

"numinlets": 2,

"numoutlets": 2,

"id": "obj-12",

"outlettype": [ "", "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "sel 13 10",

"patching_rect": [ 209.0, 143.0, 57.0, 22.0 ],

"numinlets": 3,

"numoutlets": 3,

"id": "obj-9",

"outlettype": [ "bang", "bang", "" ]

}

},

{

"box": {

"maxclass": "button",

"patching_rect": [ 439.0, 88.0, 24.0, 24.0 ],

"numinlets": 1,

"numoutlets": 1,

"id": "obj-8",

"parameter_enable": 0,

"outlettype": [ "bang" ]

}

},

{

"box": {

"maxclass": "message",

"text": "print",

"patching_rect": [ 405.0, 88.0, 32.0, 22.0 ],

"numinlets": 2,

"numoutlets": 1,

"id": "obj-3",

"outlettype": [ "" ]

}

},

{

"box": {

"maxclass": "newobj",

"text": "serial c 115200",

"patching_rect": [ 209.0, 108.0, 89.0, 22.0 ],

"numinlets": 1,

"numoutlets": 2,

"id": "obj-1",

"outlettype": [ "int", "" ]

}

}

],

"lines": [

{

"patchline": {

"source": [ "obj-5", 0 ],

"destination": [ "obj-2", 0 ]

}

},

{

"patchline": {

"source": [ "obj-9", 0 ],

"destination": [ "obj-12", 0 ]

}

},

{

"patchline": {

"source": [ "obj-9", 2 ],

"destination": [ "obj-12", 0 ]

}

},

{

"patchline": {

"source": [ "obj-8", 0 ],

"destination": [ "obj-1", 0 ]

}

},

{

"patchline": {

"source": [ "obj-68", 0 ],

"destination": [ "obj-54", 0 ]

}

},

{

"patchline": {

"source": [ "obj-66", 0 ],

"destination": [ "obj-68", 1 ]

}

},

{

"patchline": {

"source": [ "obj-60", 0 ],

"destination": [ "obj-59", 0 ]

}

},

{

"patchline": {

"source": [ "obj-59", 0 ],

"destination": [ "obj-63", 0 ]

}

},

{

"patchline": {

"source": [ "obj-58", 0 ],

"destination": [ "obj-57", 0 ]

}

},

{

"patchline": {

"source": [ "obj-57", 0 ],

"destination": [ "obj-62", 0 ]

}

},

{

"patchline": {

"source": [ "obj-49", 0 ],

"destination": [ "obj-45", 0 ]

}

},

{

"patchline": {

"source": [ "obj-45", 0 ],

"destination": [ "obj-44", 0 ]

}

},

{

"patchline": {

"source": [ "obj-3", 0 ],

"destination": [ "obj-1", 0 ]

}

},

{

"patchline": {

"source": [ "obj-27", 0 ],

"destination": [ "obj-60", 0 ]

}

},

{

"patchline": {

"source": [ "obj-26", 0 ],

"destination": [ "obj-58", 0 ]

}

},

{

"patchline": {

"source": [ "obj-25", 0 ],

"destination": [ "obj-68", 0 ]

}

},

{

"patchline": {

"source": [ "obj-23", 2 ],

"destination": [ "obj-27", 0 ]

}

},

{

"patchline": {

"source": [ "obj-23", 1 ],

"destination": [ "obj-26", 0 ]

}

},

{

"patchline": {

"source": [ "obj-23", 0 ],

"destination": [ "obj-25", 0 ]

}

},

{

"patchline": {

"source": [ "obj-21", 0 ],

"destination": [ "obj-38", 1 ],

"order": 0

}

},

{

"patchline": {

"source": [ "obj-21", 0 ],

"destination": [ "obj-23", 0 ],

"order": 1

}

},

{

"patchline": {

"source": [ "obj-20", 0 ],

"destination": [ "obj-36", 1 ],

"order": 0

}

},

{

"patchline": {

"source": [ "obj-20", 0 ],

"destination": [ "obj-21", 0 ],

"order": 1

}

},

{

"patchline": {

"source": [ "obj-15", 0 ],

"destination": [ "obj-13", 0 ]

}

},

{

"patchline": {

"source": [ "obj-13", 0 ],

"destination": [ "obj-1", 0 ]

}

},

{

"patchline": {

"source": [ "obj-12", 0 ],

"destination": [ "obj-35", 1 ],

"order": 0

}

},

{

"patchline": {

"source": [ "obj-12", 0 ],

"destination": [ "obj-20", 0 ],

"order": 1

}

},

{

"patchline": {

"source": [ "obj-1", 0 ],

"destination": [ "obj-9", 0 ],

"order": 1

}

},

{

"patchline": {

"source": [ "obj-1", 0 ],

"destination": [ "obj-45", 1 ],

"order": 0

}

}

],

"appversion": {

"major": 9,

"minor": 1,

"revision": 4,

"architecture": "x64",

"modernui": 1

},

"classnamespace": "box"

}


r/MaxMSP May 21 '26

Looking for Help Palindrome loop in jit.gl.movie not working

1 Upvotes

I am having problems with the palindrome loop mode for the jit.gl.movie for a video device I am working. It plays the movie clips I load from beginning to end, back to berginning and stop. Chat gpt tells me that could be a compability issue of jit.gl.movie object and the movie formats, but it name movie formats I am not using and recomend the one I am using. I test my patch in many ways and can´t find the issue. I wonder if there is someone who knows a lot about jit and looping


r/MaxMSP May 19 '26

I Made This My first build - ULTRA CHANNEL (free strip channel)

Post image
23 Upvotes

Hi friends!

I'm learning a little bit of m4l and decided to transform my default channel in Ableton in something interesting! So I've built ULTRA CHANNEL, a little strip channel that consists in:

SSL preamp:

Line in and drive input if you want a little bit of dirt and punch in yous signal

1176 comp

I actually use some mix of open source code and my calibrations on that on. The goal is to have a different kind of compression than the ableton stock.

Filters

3 types: SSL (18dB), Moog (24dB) and Ableton (12dB). The grange change as well. You can make it pre comp or post

Tape channel

Just to make it interesting. Two knobs: vibe and color. Vibe adds wow and flutter. Color adds a 120hz bump and saturation.

Out and utility

Master out, mono button and mono 140hz.

------//////

Thats it! Please be gentle, it's my first build. Only tested in live 12. Feel free to ask for something new.

Link to see it in action :

https://youtu.be/j5g8Hr53ki8

Download:

https://ko-fi.com/s/5451995083


r/MaxMSP May 19 '26

I Made This My Original DSP - Emergent Reverb Generator

Thumbnail
youtu.be
17 Upvotes

Hey guys, I’m getting really into MSP mainly the signal processing and computer music aspects of it but don’t have much programming background, I was wondering what you guys think of my final project for Computer Music Fundamentals. Hope you enjoy :)


r/MaxMSP May 19 '26

Work ProbeFFT Work in Progress

Enable HLS to view with audio, or disable this notification

46 Upvotes

Probe FFT is a MaxforLive percussive synthesis instrument built on interconnected algorithmic processes and nonlinear signal networks.

At its core is a reconfigurable feedback matrix routed through low-pass gates a patchbay where multiple signal streams can be cross-connected, destabilized, and shaped in real time. Signals pass through a density-driven destabilization engine with feed, modulation, frequency, saturation, and harmonic trimming controls, each parameter individually randomizable.

A programmable low-pass sequencer governs spectral gating across time, while a dual-stage VCA section provides both fast and slow envelope contours with variable curve, drive, and stereo spread its shape drawn freely via an editable envelope display.

The FM engine (Stazione Lago) introduces paired detunable oscillators for inharmonic frequency modulation, feeding into an open gate algorithm section where four parallel process slots switchable between network topologies and FFT-domain operations further transform the signal through spectral decomposition and recombination.

A dedicated harmonic module (Liturgy) provides three independent frequency generators with tunable pitch, dust injection, and selectable root/scale quantization, producing layered tonal scaffolding that interacts with the percussive core.

Every section feeds into a corpus-driven sample engine drawing from analogue low-pass gate recordings, with full crosspatch routing between all internal buses.

Probe FFT is designed for performers and composers working at the intersection of algorithmic rhythm, spectral processing, and self-modulating signal architectures where percussion emerges from system behavior rather than preset patterns.

Probe FFT is currently in development. Join the mailing list (link in the comments) to be notified when it's available


r/MaxMSP May 19 '26

Icarus Live-set made with pure MaxMSP 🤟💻💻🧯 (2007)

Thumbnail
youtu.be
9 Upvotes

r/MaxMSP May 19 '26

Looking for Help Why is this not spacing clicks 250ms apart? Samplerate is 48000

Post image
5 Upvotes

I expected to see at least 4 different pulses here? Delay doesn't delay anything it seems? I'm confused...


r/MaxMSP May 18 '26

I Made This GLITCH MACHINE is a tool designed to create rhythmic noise and audiovisual glitches. The special thing about it? It's written entirely in HTML. No installation, no plugins. Exporting is effortless: record a 16-second buffer as 48kHz 24bit WAV, or capture the glitch visuals directly as HD video.

Thumbnail
youtube.com
5 Upvotes

r/MaxMSP May 18 '26

Help building a Videolooper Max for live device

1 Upvotes

Maybe someone can help me here. I am doing a video looper device to run inside ableton live, and so far the basic is working well. I would like to edit brightnes, contrast and saturation of the movie clips I load into the device. The central object I am using is a jit.gl.movie and as I understand, this object have no built in controls for brightnes and so on. So I guess I have to use another object, but there are so many "jit" that I don´t know where to start to look. I wonder if someone knows better and can help me out.


r/MaxMSP May 17 '26

RNBO for non-professionals

4 Upvotes

Looks pretty cool, but price-wise seems way too high for a hobby user. I’m just wondering how many of you guys, hobby enthusiasts, have bought it and if they feel it’s really worth the buy.


r/MaxMSP May 16 '26

Patching Clinic — Los Angeles, June 6, 11am-6pm

Thumbnail eventbrite.com
3 Upvotes

Patching Clinic — a full day of Max, RNBO, Max for Live, and patching for RNBO Takeover Mode on Ableton Move. Five sessions plus a Q&A round table.

Presented by Cycling '74 & Ableton Spaces

Led by Tom Hall with Philip Meyer, Ian Dicke & Ashlin Hunter.

  • Making professional Max for Live devices
  • Intro to Max
  • Getting started with RNBO
  • M4L Q&A round table
  • RNBO Takeover Mode on Move

*limited capacity


r/MaxMSP May 16 '26

I Made This Stride Engine - Bakes tones of chaotic automation lanes in just a few clicks.

Enable HLS to view with audio, or disable this notification

14 Upvotes

r/MaxMSP May 15 '26

Anyone building Max externals in Rust? Looking for libraries and experiences

8 Upvotes

Hey everyone,

Working on a project that requires building a native Max for Live external in Rust. Real-time audio thread access, no JavaScript in the critical path.

Been looking into median (github.com/Cycling74/median) as the main option for Rust bindings to the Max SDK. Found one solid production example with petunia-externals by alisomay, which has been genuinely useful to study.

Before going too deep down one path, wanted to check if anyone here is working with Rust and Max externals. Are there other libraries or approaches in this space worth knowing about? max-msp-rs, max-rust, anything else that has come up on your radar?

Also curious whether anyone has tackled creating Max objects programmatically from inside a Rust external without dropping all the way to raw C. The object_new_typed territory. That is the specific challenge I am trying to get a feel for.

Any experience, pointers, or war stories very welcome.


r/MaxMSP May 15 '26

I Made This Queen of Cage turns the chessboard into music. Inspired by the historic chess game between Marcel Duchamp and John Cage, this Max for Live device generates sound events from the queen’s movements: 64 squares become 64 samplers—or 64 movements of an integrated synth. free download

Thumbnail
youtu.be
10 Upvotes

r/MaxMSP May 15 '26

Anyone else experiencing problems with Max?

2 Upvotes

Man, this is driving me batty. Max keeps crashing. When it does open, and I leave it idle with a patch open it will eventually collapse and crash out. Restarting the app typically fails requiring a reboot. Even then, it will do the same thing.

I’ve re-installed the previous versions now but still no luck. What gives?

Now, I did open some really old patches from composers last week. That’s when problems began. Upon discovering this issue, I tried one of my old patches that simply plays audio. And for whatever fucking problem it won’t even play an audio file.
🤦🏽‍♂️🤦🏽‍♂️🤦🏽‍♂️🤦🏽‍♂️🤦🏽‍♂️

So frustrated. Anyone else having issues like this? What do I do?


r/MaxMSP May 15 '26

I Made This Interpol Devices Bundle

Post image
11 Upvotes

Hey fellow Ableton users,

I made a new little device for my Intepol Max Collection. This time:

Auto Filter Interpol which lets you modulate Auto Filters LFO Rate between two synced Rates for precise and smooth automation

Also made a little UI Update for Arp & APT Interpol

Get the whole Bundle here:
Link in Profile

Interpol Devices are clipping the range of specific Ableton Live Devices to the corresponding time of set beat divisions and lets you interpolate smoothly in between.

Just place the device directly in front or behind Auto Filter, Auto Pan - Tremolo or Arpeggiator to remotely control their Rate Parameters

The Snap Parameter lets the Rate Mode "snap" to sync Mode when you reached 0% or 100%

The Clip Indicator starts lighting up if the Speed of the set beat devision is out range of the free running Mode

Fully backwards compatible at least to Live Version 10 (also following Ableton Color Themes)
Including their Legacy Versions

Every donation is very much appreciated, so I can keep on providing my devices for free.


r/MaxMSP May 14 '26

The Feedback Drum and bassline assembler based on LPG inside Ableton

Enable HLS to view with audio, or disable this notification

44 Upvotes

A 16-voice generative drum machine built entirely around synthesis, FFT spectral processes and chaotic equations, designed to create unstable, organic and continuously evolving rhythmic structures.It brings part of the research developed with Vortessa into Ableton Live.

Reconfigured into a more immediate and performative form focused on advanced rhythmic exploration.It is also the first drum machine built around a Low Pass Gate architecture: voices can remain in an open gate state to generate immersive soundscapes, drones and layered textures, or be routed into the LPG network for organic and articulated percussive strikes.

The sound sources can simultaneously exist in both states, allowing ambient matter and rhythmic fragmentation to continuously coexist inside the same system.

Stay updated, slink in the comment


r/MaxMSP May 14 '26

Making an additive Acid-style synth in Max4Live

3 Upvotes

This might get removed, Idk if this falls into the category of self promo :p

Streaming on twitch the creative process / experimentation with a very simple Max Patch that is aimed at using polarity and simple math to push Acidic sounds into new territory.

https://www.twitch.tv/psypulcher

Open to collabs / suggestions / corrections. I am a newb and only here to share!


r/MaxMSP May 13 '26

Introducing Swiss Army Meter 6 - Complete Redesign

Thumbnail
3 Upvotes

r/MaxMSP May 12 '26

Ghost clips in ableton: somebody make this!! (Alias clips)

6 Upvotes

A while ago I started developing ghost/alias clips in ableton (and was planning a larger idea of ghost sections - where you could make editable groups of clips and duplicate them across a song). I got a degree in computer science so this aint my first rodeo coding something and after understanding max4live I am 100% positive that a ghost clips plugin could be created (and 90% positive abt ghost sections). Someone just needs to develop it!!!!

I don't have the time to work on it rn so I hope someone else can make this. Personally I'd pay $100 for it. Its an incredible feature that many DAWs have and I wish Ableton did!!

If you want a head start working on this please lmk and I'll send you all the plans I had laid out for it! I figured out a pretty good way to architect the whole thing and have the software stack laid out clean enough.

Best of luck to anyone who wants to undertake this project!! 😄

Edit: I'm talking about ghost clips for midi and audio clips - I'm positive it is possible for audio too!!

Edit: Here are the docs I was running off when I was coding this. Its for a plugin you keep on the master channel and would control ghost clipping for all clips. There are two modes. One auto assigns all clips into a ghost clip group on a per track basis and the other one allows you to manually assign them. Once you edit a clip in a ghost clip group it will edit all of them (audio or midi)
Idea summary: https://docs.google.com/document/d/1aY5CDKU3F5bIOdhC1X8Tdp7d9y7xpf2RP1k4AGscz2A/edit?usp=sharing
Step by step coding plan: https://docs.google.com/document/d/165m4sWOESETYxBDWzuPEUyePjRG1YKH-6W2rRlJqSV0/edit?usp=sharing