What is the simplest?
Countless times, I’ve been impressed by the amazing output of seemingly simple patches. What the most impressive, simple patch in your repertoire? How many objects do you need to make something that works?
Good question Andrew; concise, efficient and innovative use of objects never fails to evoke envy in me.
My repertoire mainly consists of hacking other people’s patches and code, the most effective example being a quanitized FM noise generator – 2 x [cycle~] + 1 x [sah~]/[phasor~]. I haven’t been programming long enough yet to invent my own hyper-efficient algorithms sadly.
This is probably the simplest patch I’ve ever done, and I couldn’t believe how effective it is. It took me a couple of hours to think up and implement. It was fairly late at night but I couldn’t get to sleep so I decided to mess about on max a bit while my girlfriend slept (this has happened on more than one occasion so she’s now quite jealous of Max!) and this patch was the result.
It’s incredibly simple, basically a sawtooth wave going through three parallel filters.
I’ve given it quite a good interface, so use it in presentation mode (it’s a lot easier). Basically the interface gives you a menu from which you can select a variety of percussive sounds (all of which are created with the simple saw->3filters algorithm), a number box to change BPM if desired, an on/off switch for the DSP, a pictslider pad (drag the dot around quickly to create interesting rhythm patterns), a slider which controls the volume of a constant pulse (whose sound can be defined by the three "drum" "wood" "metal" messages) and finally a second slider that controls the overall amplitude.
Considering the simplicity of the patch the sound is pretty good (the metallic sounds are especially realistic).
----------begin_max5_patcher---------- 2783.3oc6c0sriZiD95y4ovkq8pMNmn+QZua2jK1K1opbepsRwwliG1XCmxF mYxlJ48YeM1mr.RBLXiMMf.733oNisQVFZ80epUqFole84ml+Z7mC1Oe1ea1 OL6om90me5IcQYE7j83mlu0+yK23uWWs4QAeJ90+y7EluJI3yI5h2D6uZav9 8yv4e0awQIQ9aCze8eeWn+lxey9v+q9avjWP1hiNrMLZSPh95fOVX7gjSK8c +jkeLLZ8OtKXYhQ5UbU5YZFCiydyK6zNifdAM6ea+MlSSxu7df4GLedwWEtR Kjosqu1iLOqre64mydYgq.EBZhfEIgXfET1aRdWgEbWfkkwa2FDkbFt7++ey 9N+nvfMy91v3kKi2DGElIV31hRnqiRuuKXe502OILNpDlPHzLX.SMuQX52jk .kpvK5xvKgqQTgg0gIpyNUkkgxxVIvUnbHma2reNdiaHan1R1vRSePCmy.uc frI3NDO16N7.2V1AmowCARSRnm24qbil4vF8ecV5Ug5lVMosr.aqlKjFxPyr f2RMTlTOUf1ETY+lvUA6JZjYm8zq46GRJK4utNyvyNKyU2us3ETUaAmSAJ.s BL6B1Zn3TqKJg.qRAAi0AwKRjPhkoli8JccdMdWpPWRlPuvQXk.u3Be5RlqZ V0v3RqjjMlfBVGTHFx5zfmudHII8T5jg6H5g43Y.6B6AWm58pez55YdntzVR hWudSfKaKhishlZKgQ02IhK6RSIywE+0AmYaIN5ahe6sNaa4Zc6vWpaGogAz 0DYLRiQLTCCm2L8gqkFF8rST+5dvEtzIp+w2+gwwaIM3xzVLn3t6pjTXr8XL AUyYBBB5ROC9JWMWERWmqhRS2njW3ctqcmr3dHkPcn41d102N2vhqs+tcwe5 sc15i5de8FGh8pzQhrTO9ptTkDr0Jzy+WwyWLa92s6v1r2Wj8xGRAuSK6eFd VQle4GBRxPip+zpEZ9sUKy7i+13suFe5OtZgleb0x9d+rJpPUONcBjmT.+Rc Ao45jLkTE2IjDOFW65PcepTGwKyX4zKg60RYSEW8+aUebrKGshfPSUmbOCVw vG6jCcvjxvAxkvAdxfCLhJbAdvTtDOTSG8.ycBb3Te6nnICOj7JzCu136UY7 vyk3wJ8XB2Td5hNFJg93oad2Qg1HEU5XWcYBWpF9Tb7paQ0ffzW0fhwKoETt VKvcoVXqwImaO0fp2y6yZ7wnFp4D0S0.1og1i8xTYh1DWWNk.cZKWNvdLjCw juYVJQXZAElIz2TVeh1IsSDkzyWDjgo9Hzoi8wLfsxLGLUv9R4dqWH9BCwD+ L2oESbHpoKZOBeZRJJEkE1tRynMUtB2lhpUhwaURQNUIUYTTU4QL3JbEaTXA DeICWYwowoDRrX6efycSDx4HTSAImjEY7alfj6Yt8fJ0fDibVmtOOuGtLopx YW35Ol7y9aNTfxcX.TrwTtIZJxhWu.lkexRheutKbsdYp6n5guv4+RAMnR3t f.pzgzvY2u2f0XhfjNEKHFI3FPybSzfLfxhqbyLXtbUM7U+9TMTq08LysWT0 r6G6CWGkJS0NTq5d.Q3JOyzAIVtRufD48SmHqMbhIdktoSD069AerKSJ2hOh 6G7IOB2NEeP2QCR4wcN9Pti3ObNy83C+9AeHL2aelby3DXoIORPvm8XyipYl ShaQMz8NpwjDmiZXu6cTC64dODvTmtPW26+oIZgtJXdk.GSb66vBcEStSvCJ U4D7.emfGl.pzW3P4zkAsyPiVuLnsQzv1owbCduzxf1ykLff8wQNZp4rNZhf hLN5vD8Zt476EXwZoHGVnzdAKr6EXwXvvQnhS2BSgQACZzsHMtcR3HC3HZ1L pETtp+tNc4k8WvoJsoZEUY2sMRzQypcXEyPHtbUIa1mEy7299lvjCqBls1OL ZhF2gX2AJ1EsH4p6+Fh5Fzi9V3Pe1F9oYthYks6QcR7r5zfR56lSRK1gDrFW UpbSvDDF2KXWqUke0KtSSUKn1lIad4aDUxOtxOwOeGyVzHMh8qA6J0PRK6Xc SMnmiZKNxaNhyZ8WQsRmoTs0xFWxhp4Ue03UqV1tOstpQQmTOXWUBGV0Dvtp TzEQjRUR.oRd.pDiTekz1JDKJtghKpdWWyFJbu9jo+q3rwx9piUp1K4Ejcro GngqX5AUOehLX7IJL9j2C9z8DehNX7INL9TpjBhPQdPn9hfPwFLBkbZHTmYI iCrdOnTNhRwGRenfwoDO3T2WbJwfwoH.4TD9CN08Emxa3rSwAQoTShu4OHTC EgRNXDJFvw8v+4gQwlBFEajYTpAiQI.xnjOrQcWYiBi5FkBKnDkynUJ25KU9 RhoQd04U7KKhkXzIVpJUhiy9NaRHIOR7knEbYVw4oRo7JfKcUHWRT3LFEw.Q gw2awr3OM72Ixv3sFAlLn1fAGkD9CVbmXwlLx53Ri42fzX5CWId3JwW1tRvd 3JwCWIt4ckv7IGsbh8+zuOsIbCgYa.CYwUeskJYm1yqaBVMe.yzEBaxMDeLA Dj85wFXDrjyQ8PZJXDmds1Dt7mJWb7auANYAhudxBDiL69MgPdoVvUyuk.1v +RWtlE8OrJLd1t.+U+xDsREwHydaWHDWX84Uly5x0H+p8uuOEoc0Z7s0KguB tBpThvBThkrXAJVWNinLb4xEI9J+kCpcOTSY+.aeJp20XHXmlK4m1z8.2zY. R1l5J14wcZWN9teTPQarHEAoNtpb2FuJnRNkWmdZJWx5c9qH41TULL1Srn1O U1l5q9K+o06hODs5j9TvyRt18erlrXxNDxFxVRRtTRXKp8S3t8rwPTRAhMYb .JpkY74hmhAYHIt.IERAwaQseBmGCamnsKmRmNUcWR4dkLZmCzl1GcDlkydC YomqlULTkST5mchfjVoj0pODYzX4hZ+z8m9fZyF+8Uevs4zLtr65CwDqO95d XNjf4B0hZ+jaUXXyi3Gl4wRCwXORbc6gMBgs2dH1XOz3UrI++RXszdHqF8cc j8RJX84WuStN4I8kVHyJupVee7gcKyGT09PwJs0WHlqB1mDFUHk+PoYxVJIB FtZUPT0Tp2p2iS8RqHkxWKGDrLgAHShQUjDb.hDkOtxDEBLwFWYBBc5DAevk IDDJtbTkIt.BNgFWYRBPlviKehCgOQGYYBh4oSD7AWlfvwIsjOoj1TWuNe7I Qxhi5ozxfv94sTZwHFWKfXT1a4Be1Qig3xTipBmwG.YRkN0xiHXE.cTDWYeD WEg4LoUND8lrxm66MofHshN1axJtRlyDWuAPbkhIUZQ8RZcHU.xPSmzjFbKU PFZhMtCWRAgSiq6WPFjgNtSDi.Alxdx9NC2BKKJMcmaBcIFYhjX1Q8UoBYLF x3RzHP7ekLxZUF.YZbmNDFc6M0C3xDd7rakc4HtU0oWMf7rb3E21gjVbXOEW PNlLtJUPF9GWQBTD3FWQhBTwQFOQxCnha7DIBBnhqEhj0WPhPj6YHVHDROaQ 8UhgpWoiGHxApWGQQR.Tu1BQxNijb8pzbKbcfJkh.pRGwAoD.UoinH4ATk1B QxyttELpzrino+CScidEz8aPNpfHCpH0hApnLs8NJUOgXARTbTe03PBgCU0N .LW9LOC5wT6CXQud6nDApv1Fn0SKqlPMnHEGzWfUAcNgi3LZfnrG4nd.YnVJ Z7kIbSxTaCTnmwiEr44eFAUbTekVP1aFYsJnoy2m4Nmdvu87e.XltxMJ -----------end_max5_patcher-----------
@n00b_meister yes i have, it’s very nicely executed.
Anyway in terms of simplicity, what is important to remember is that even within a "complex" patch each algorithm should be simple and streamlined, otherwise the performance of the patch will suffer and debugging will become a bitch (especially when you have sub-patches ten layers deep!).
For example this video
contains the recording of a live performance i did recently with a max patch of my creation, now bear in mind while watching that all the synthesis, control and modification is all being handled by one Max patch which contains 72 independent synthesisers which can all be controlled in depth both in the time and frequency domain as well as in terms of spacialisation (panning, etc).
All of this controlled by a single patch (with sub-patches that open as separate windows each allowing a greater depth of control), when you are dealing with something like this, simplicity in every detail is paramount, simplicity is the only true route to true complexity.
As I said, while watching bear in mind that all of the sound is untreated and unedited from a live performance using a single max patch.
"simplicity is the true path to complexity"
nice collection of videos btw
Thanks. Always trying to push Max to the max, and that means STREAMLINING, constantly.
Sometimes the patch itself is simple, because the idea, content, or the output is more important. It can be tough to overcome the social need to impress your peers with savvy patching. Sometimes simplicity is less about computational elegance and more about just getting something to work, to solve a problem, to make a thing happen. Duct tape and chewing gum. These are often patches we keep tucked away, but are essential tools.
Anyone have examples or stories that you are willing to share?
i agree that "FM synth" but also a little delay chain are perfect examples
of how to make something tahts cool using less than 25 objects.
but of course one questions remains: what is an object? sometimes when
i prototype synthesis stuff, i use custom abstractions for more than 50%.
you might say those are patches – but they are only patches because i am
not able to write objects in C ….
other examples of great stuff built with only a few objects could be a waveshaper,
an FIR filter, or a synth with "sync" effect based on phasor.
last but not least there are the (eventually typical maxmsp?) sound generators
made up only from clicks, noises, resonators, and objects like teeth~ or comb~.