Cabbage Logo
Back to Cabbage Site

Micropolyphony

This instrument attempts to replicate some of the tone cluster/micropolyphony of composers like György Ligeti and Krzysztof Penderecki.
http://iainmccurdy.org/CsoundRealtimeExamples/Cabbage/Synths/Micropolyphony.csd
Detailed instructions are given at the top of the .csd but if you’ve no time for that you can just flick through the built-in presets to get a overview. It is best played sparsely - each note can produce a dense texture - in fact frenetic playing is liable to cause a crash. Try it from a hardware keyboard if you can and play with the ‘Spread’ control while a note sustains - alternatively crank up ‘release’ in order to sustain a note for slider tweaking.

Great stuff Iain. I wonder if it would be worth preventing more than N notes from taking place simultaneously? I find some users tend to go crazy on the keyboard, cause a crash, and then assume that Cabbage sucks!!

I would prefer to avoid doing that, its kind of like limiting the top speed of sports car. I’d prefer to get to the bottom of what’s causing the crash and to find a workaround, I think it’s something related to all the recursive UDOs. I’ve also encountered problems when using subinstr in the past and as UDOs and subinstr are closely related maybe there’s a connection…

This instrument is causing a crash for me on Linux. I’m not sure why. I’m just investigating now.

That’s a pity. I’ve noticed also that the barmodel instrument sustain isn’t working on any platform any more. It’s a bit disappointing when these things spontaneously stop working, although I think it might be a Csound issue. I’ll have to take it down and into the garage in the meantime.

John had a look under the hood of your Micropolyphony for me just now. He spotted a faulty gasket in GEN41 which he has now fixed. It’s working for me now fine with the latest Csound dev branch. :wink:

p.s. does your barmodel instrument also use GEN41? Also, I wonder if we couldn’t write a simple script that would test each of your instruments from the command line to see if they all work without crashing the latest releases of Csound. I might take a look at that.

There’s no GEN41 in it but I’m fiddling with it now and have got some suspicions…

Aha, I got it working. I think some of the table writing/reading opcodes are playing up. I changed to using an array and it fixed the problem.
Yeah it’s a Csound problem.

I updated Cabbage (latest git) and tried to build Micropolyphony but it constantly failed until I updated my Csound (6.08 from latest git). All problems solved, and I’ve added another fabulous synth to my collection of Iain McCurdy’s instruments . I’ve exported it as a Linux VST but haven’t tested it in a DAW.

Btw, a note to the unwary: Test the synth with a single note from its keyboard, held for long enough for the sound to begin. The presets are very good but it might be easy to overload the audio output.

Fedora 21 x86_64, GCC 4.9.2, Planet CCRMA rt kernel.

Once again, vast thanks to Iain for another great synthesizer. And of course, vasty thanks to Rory for the always-tasty Cabbage. :slight_smile:

Great stuff Dave. I look forward to hearing what you do with it. I plan to develop it a bit further with a wider choice of synth engines and a few more scales - maybe a user definable one. Micropolyphony in the Ligeti sense is really about the internal movement of each voice and at, the moment, this can only be dealt with using the vibrato options so I’ll be developing the aspect also.
As you suggest, it’s best played with individual notes or a small number of overlapping notes, as each note played is potentially triggering many other notes. Shortening the attack and release values will possibly permit faster staccato playing.

Great instrument, thank you! I posted this page on : https://twitter.com/reaktorplayer