Forums > MaxMSP

analogue synthesis: doepfer like modules

April 15, 2009 | 7:21 am

hi, i would like to build a replica of this modular system in max..is there someone who already did something like this i could start from..i don’t have any experience at all with these analogue beauties..i know i can mess around with waveforms, lfo and stuff (and i already do plenty of modular mess) but i don’t know how the real modules work
mic



k9
April 15, 2009 | 9:15 am

one way would be to go to doepfer.de and read the PDF manuals on their modular-synthesizer modules of the A-100. Everything is available online for free.

I am toying with a similar idea, and this is where I started. maybe once you get started a bit deeper we can exchange some modules…

start with the Oscillator A 110 and try to build something that has a few of the features. You will probably need the tutorials and the help files a lot.

But it’s a great way to learn a lot about synthesis. I think it’s a monstrous task to actually build a modular synth in MaxMSP, but once you start you learn so much, that it will certainly be worth it.

Kai


April 15, 2009 | 9:27 am

This sounds veery interesting.

I would love to be able to follow this project, and hopefully participate


April 15, 2009 | 10:05 am

@k9 yes i just downloaded the A100_info pdf..i’ll build a simple vco oscillator and post it here so we can discuss some basic modularity-issues Smile



k9
April 15, 2009 | 12:57 pm

I think saving the patches as individual files, then using bpatchers to patch everything together gives you a nice feeling of virtual modularity.

Kai


April 15, 2009 | 1:31 pm
k9 wrote on Wed, 15 April 2009 07:57
I think saving the patches as individual files, then using bpatchers to patch everything together gives you a nice feeling of virtual modularity.

Kai

indeed, I think that’s one of the original purposes for bpatcher, to have everything as contained units with some room for uniqueness (using arguments), but able to communicate with the larger picture as well. Lots you can do with them for a project like this, like with [pattrstorage @greedy 1].

Having a master control for each bank of modules is very handy for setting things while you create, especially having a "default" button which gets everything to a state that you know should sound like X, so you can keep track of what’s happening as things grow and get more complex. You could have a [receive reset] in each bpatch which sets everything to the original defaults, like freq = 0, level = 0, waveform = sine… whatever makes sense. Also I usually have a "bank bpatcher" which itself has the (8 or however many) bpatch modules in it, so you can utilize scroll bars in just that part of the main patch. That way you can have multiple independent parts of the main UI which go well off the screen, but the main patch doesn’t need to scroll all over the place.

using numbers into "patching_rect $1 $2 $3 $4" for your bpatchers, then saving the groups as presets, would let you save different spatial layouts of your bpatchers that you could switch between. you can even work a little magic with [mousestate] to make elements draggable, though popup windows are easier to set up for this. look at [thispatcher] to see about window messages, like floating on or off, which can be helpful. There’s also the All Windows Active toggle which changes the feel of working with multiple windows.

You can use matrix~ to route everything around and change where things go on the fly, and preset these master routing settings. So one of a bank of (say) 8 main oscillators can go to any of 8 LFO’s, or ring modulators, or other effects, all in Runtime and without changing any cords. And of course there’s poly~ which definitely should be investigated for multiple synth generation that has a modular feel, like with different #s of things active at different times.

With all the great tools provided in Max I don’t think it’s a monstrous task Smile

…and it’s true, one will learn a lot not just about synthesis, but patching and UI concerns too.

best of luck!


April 15, 2009 | 3:37 pm

rebuilding the analog original would mean to implement a lot of artificial limits into the maxmsp enviroment.
in maxmsp you have the option to plug 5 cables to 1 target, or the other way round, or both.
this means max gives you far more possibilties than a doepfer or buchla will ever do. use them!


April 15, 2009 | 4:19 pm

I replicated a bunch of the doepfer modules as best I could in max about a year ago, and it sounds amazing. Ill make it available someday. I plan to make it into a whole virtual max doepfer type bpatcher abstraction collection.


April 15, 2009 | 4:23 pm

I should also mention that a huuuuge part of my achieving of analogueish sound qualty was to use tanh~ after every amped CV and audio signal, this made it so when you turned them up passed their top value you got more of an analogue type warming response then flat clipping which makes things very digital. that was the single most important thing I learned.


April 15, 2009 | 4:50 pm
Axiom-Crux wrote on Wed, 15 April 2009 18:23
I should also mention that a huuuuge part of my achieving of analogueish sound qualty was to use tanh~ after every amped CV and audio signal, this made it so when you turned them up passed their top value you got more of an analogue type warming response then flat clipping which makes things very digital. that was the single most important thing I learned.

hei thanks for this tip..i hope you could post a basic osc with al the tricks that make it sounds good that could be a solid start to build upon


April 15, 2009 | 4:57 pm

i know this can seem a simple task (and i’ve been maxin since a while so i used extensively bpatches ,changable arguments, matrix~ routing and etc) but it can be time consuming start from scratch without knowing if it’s worth or not Smile


April 15, 2009 | 7:06 pm

here it is a super rough basic oscillator..a good starting point?…how would you complete this..
still max 4.6 here


April 15, 2009 | 9:01 pm
Michele Verita wrote on Wed, 15 April 2009 21:06
here it is a super rough basic oscillator..a good starting point?…how would you complete this..
still max 4.6 here

looks good.

next thing to do:

– make abstractions out of the 4 oscs.

– polyfy the oscs.

– polyfy the whole signal chain, and offer an ON OFF button in the interface.

– ftom-+-mtof? you can do better than that.

i would (i actually did) shift the tanh stuff to below -1. and +1 only – so that up to 0 dB there is no effect. all modules would (mine do) allow up to +12 dB (-2. – 2.) of maximum gain then in order to get a saturation effect.

-110


April 15, 2009 | 10:27 pm

dont polyify anything, analogue modular is built on the idea of the exact opposite… unless its just for on off dsp signal conservation.

Also you might want to figure out how tanh~ works so you can use it to achieve the desired effect, as you have it here its not really doing anything. It only warms signals amplified above -1 to 1 going into it.


April 15, 2009 | 10:55 pm
Quote:
unless its just for on off dsp signal conservation.

nicholas: of course, only for on/off.

what can be nice though is to make a multivoice version of a big patch with many modules in it. but thats step # 2 in the course. we keep it in mind until next week.
Smile

Quote:
Also you might want to figure out how tanh~ works so you can use it to achieve the desired effect

exactly.

see picture for one possible version.

i usually mix its output with the original to get different colors.


April 16, 2009 | 6:56 am

yeah sure i forgot to put a gain control +0/+12 db to amplify signal before tanh..added now..i’ll post some other fancy modules soon (adsr, vc adsr, lfos, filters..)..many thanks to all you guys



Eav
April 16, 2009 | 10:18 am

Hi all,

I think it’s a very interesting idea, rebuilding a modular system. I’m the proud owner of an ever expanding Eurorack based modular system, and i adore the sound of it. I’m really curious to see how this is going to work.
For even more complex modules, you could try to recreate the Cwejman modules (http://www.cwejman.net/cwejman.net/modular.htm)

One of the most interesting things with a hardware analogue system is you can use the controller signals as audio and vice versa, without the risk of having a system overflow… So far no resume button by doepfer or another brand.

Anyway, good luck with the coding, i’m looking forward to see your idea grow.

Best,

yves


April 20, 2009 | 7:33 pm

hey guys this is where i’m now..
a nice feature i put: first instantiate modules in bpatchers then open matrix patcher and dinamically create the audio router and the connected matrixctrl with labels!
Smile


April 20, 2009 | 7:36 pm

incidently, in on of my first max analogue modular patches, I found out you can use knobs w float output for matrixctrl, and thus you can use the matrix for all of your cv and volume scaling, ill find the patch and post if it still works.



Eav
April 20, 2009 | 8:42 pm

Sweet, keep going!

best

yves


April 21, 2009 | 3:19 am

oh no, a modular system without patching cords!
Smile

i´ve always hated large send/recieve systems with dynamic names because sooner or later you loose overview.
dont you run into trouble when you want to make 30 instances of module X?


April 21, 2009 | 6:42 am

ahah yes i agree with you..patchchords are so analogue style!..but in relative small systems controlling signal routing with matrixctrl is great!..you can easily experiment with all the available routing possibilities



k9
April 21, 2009 | 9:27 am

I think matrixctrl is a nice object to have in a module (to mix diffferent waveforms, for example?), or to have in a mixer module.

relying entirely on matrix will give you something like a Synthi AKS I think… modular, with a matrix field. a good way to patch up a system of a certain number of modules, but maybe not the best system to be flexibly expanded.

Kai


April 21, 2009 | 9:54 am

mmm well in a small system (that is not necessarly dynamic..at the moment i’m not interested in having a menu from which i choose which module to load dynamically) i think there is not a better solution than matrixctrl + matrix to route audio signals and control signals quickly
how would you approach this issue in bigger and dynamic systems if you want to route everything to anything?


April 21, 2009 | 9:59 am
Roman Thilenius wrote on Tue, 21 April 2009 05:19
oh no, a modular system without patching cords!
Smile

i´ve always hated large send/recieve systems with dynamic names because sooner or later you loose overview.
dont you run into trouble when you want to make 30 instances of module X?

loading 30 instances of a module is an extreme but interesting situation Smile i think would be a hell even in reason if you want to try differnt routings between them!!


April 21, 2009 | 10:32 am
Michele Verit� wrote on Tue, 21 April 2009 08:42
ahah yes i agree with you..patchchords are so analogue style!..but in relative small systems controlling signal routing with matrixctrl is great!..you can easily experiment with all the available routing possibilities

the matrix way of course allows easy saving of connections, which is a different approach with a different advantage. (as i still use OS9 50% of the time i stay away from pattr stuff… )

in best case we had both .. a matrix with a patching GUI!

p.s. about 30 instances: you need a system for creating dynamic [send] names, for example by using the "#0_" method.
i have such abstractions for data, but never tried it with send~.


April 21, 2009 | 10:47 am

Here’s a [matrix~] like patchbay that you can load into a [bpatcher] and make connections with your mouse when not in edit mode. You might find it useful, even though it’s not particularly tidy. I might revisit it and have another look, could be worth implementing it in javascript, perhaps.

lh

http://www.cycling74.com/forums/index.php?t=msg&goto=152296&rid=7622&S=3a939131c341195aa8966832d74aec6d&srch=create+patchcords#msg_152296


April 21, 2009 | 11:15 am

ouch..sounds very interesting..unfortunately still max 4.6 here.. Sad


April 21, 2009 | 11:24 am

I’ve attached the file. Try using the supercollider conversion tool available from the link below. No guarantees it will work flawlessly though.

lh

http://www.fredrikolofsson.com/pages/code-sc.html


December 4, 2010 | 3:02 am

I recently released a collection of Max/MSP modules based on Eurorack and Doepfer modules.

Download here:

http://mhetrick.github.com/euromax.html


December 4, 2010 | 4:49 pm

@thelizard Nice way to start, huh.


Viewing 31 posts - 1 through 31 (of 31 total)