Bitters: a M4L polysynth


8-bit-inspired hybrid polysynth

My favorite synth sounds in pop music are usually chiptune-inspired or distorted in some way. I wanted to build my DSP chops by designing a polysynth that was sort of always a little lo-fi by design. To this end, I implemented a “polynomial transition region” asymmetric triangle oscillator and an SVF to add to excellent building blocks Peter McCulloch made for the Ableton Max4Live synth Poli. I also really like FM, so inspired by the Just Friends approach, I gave each oscillator a modulator to pair with it. Also inspired by Three Sisters, I included options to “tilt” the filter and mixer; bringing in more of the high/low end or first/second oscillator and making the other quieter.


Max for Live with Max 8 required (uses mc.gen~). Otherwise is a normal Ableton “Instrument” playable via MIDI.


v2.3.0 - download

github link


A new thread for a new version! This one should have all the kinks of the earlier version worked out, and has much more legible innards, should you feel like poking around inside the gen~ files.


Very interesting! I feel ya on the distorted/chippy things for sure. As soon as I get back in town I will mos def take for a spin. Love your synth Mind and have no doubt good sounds will come from it. Thanks for sharing!

1 Like

I’m so excited this has progressed. I’m gonna find some time this week to throw some fast arps through this!

1 Like

this sounds incredibly inspiring!

getting no sound out of mine though…what’s the best way to troubleshoot? do the supporting files need to be in a specific folder/location on my drive?

1 Like

For me it works when the supporting files are in the same folder as the .amxd file. Let me know if that doesn’t solve your issue, @glia!

ok unfortunately not (they were all in the same folder…then i dragged amxd into ableton to use it)

here’s screenshots to compare

short midi loop into aalto (works)

same seq into bitters makes no sound

any suggestions?

That looks like the same kind of failure as when I moved the support files to another folder… I wonder if adding the folder to Live and then opening it from there will work?

This sequence works for me: download .zip, add folder to Ableton’s Places, open .amxd from there. Let me see if I can reproduce the failure.

ETA: no, dragging in the .amxd file works for me. I’m a bit puzzled. I wonder if this is the “freeze first” issue again…

I “froze” the device and pushed a new, frozen version to GitHub. However, now the .amxd only works when I click the “edit” button. This is very frustrating!

ETA: okay I think I have figured out the problem.

1 Like

re-downloaded and tried both dragging the amxd and adding the whole folder to places…neither seem to work properly

not sure why

it’s probably your gen~ files, they need to be included in Documents/Max 8/Max for Live Devices/Bitters before freezing (it is very annoying)

the problem is that freezing doesn’t collect files within gen~ files. So I gotta not use the @file keyword within the gen~ subpatcher. Working on a fix now, should be ready in a few minutes.

edit: okay, I think I have things working and pushed a change to GitHub. @glia care to give it another go?

1 Like

Can I ask how you learned Gen~? I’ve wanted to take the dive but don’t know where to start!
Also this is super great, thanks for sharing!

I learned a lot of gen~ by picking apart the Max4Live synth Poli to make this! I also learned from tutorials like this one, and then of course the usual-for-Max poke around, look at help patchers sort of thing


works now!
thanks for the quick fix


This is wonderful and thank you for sharing! I’m going to have to dig into this and learn from it too. FYI, the first version you uploaded worked for me. I dragged the whole folder into my “Max Instrument” folder and it showed up in Ableton and worked fine.

1 Like

@alanza this is really great! I am in the process of diving deeper into max patching, synths and modular synths. ^^Thanks for sharing and all the best

1 Like

highly recommend tearing the gen filter out of this project btw - it’s my favorite one that exists in max


oh boy, thanks! it was fun transcribing the pseudocode source into something workable!

nice! sounds great, thank you!

1 Like