Supercollider tips, Q/A


so cool. Keep it coming. :slight_smile: maybe cylob will turn up


I might be the only one thats heard it,. .It sounded like a regular phrase then stretched like taffy, Perfectly. No artifacts, No spectrally sounds.


@scztt so funny, immediately after writing that post i went and found your Quark. it is very elegant, and just what i had in mind (thinking of the dyadic filterbank from the Faust libraries.)

i don’t have BLPF though - it’s an IIR of arbitrary order?

(for industry work though, what i’ve found is that dyadic filterbanks ultimately impose too much group delay with a significant number of subbands. we’ve ended up using multirate structures instead.)


I’ve been trying to split bands using the bark scale for years in supercollider. My mind is blown! Finally! Thank you!


So, any way to tidy this up onto the ideal patch?


ERROR: binary operator ‘+’ failed.

when I execute;
~band_signal_bus =, n);
~band_amp_bus = Bus.control(s, n);


dunno. make sure s is set to Server.default or something.


shame there wasn’t a working example posted. I can’t do it. Don’t have the brains


Didn’t my example work…?


oh, apologies, i hadn’t defined n in that snippet.

here is a full and working script:

of course this is just a multiband envelope follower that happens to be bark-scaled. it doesn’t make music, let alone cylob’s music.

@frankchannel’s script also works for me, and maps things to oscillators.

(however, big caveat that Tartini requires sc3-plugins to be installed, use Pitch instead if you don’t want to install that.)

more extended musical applications are really a creative endeavor.


Yeah, nothing that sounds like the original that I can tell. Thanks for the effort


but thank you everybody


so zebra, so what global variable is spitting out the numbers to play oscillators? You are there, just needs to play something.


Cylob must have done some other stuff to in the text


I stuck a,, 0.2));
in zebras routine.
no sound
no error

Clearly have no clue



you’re asking for a lot of things, many of which are not well defined, and in my view are really compositional parameters.

that script shows you how to make a multiband envelope follower that is psychoacoustically meaningful. i have no idea how you want to use that.

a separate part of your question is about recording and manipulating acoustic analysis results, as synthesis parameters, particularly pitch. here is a gist that demonstrates recording and playing back pitch, clarity, amplitude and flatness from a buffer:

to use:

  • hit “record” to start recording analysis params, in a loop, into a short buffer (8sec arbitrarily.)
  • manipulate pitch playback parameters using the number boxes (use arrow keys.)

of course i imagine you would want to have many buffers, manipulate loop times, and so on. this is outside the scope of the demo.

also outside the scope is how you would use the filterbank in conjunction with such processes, and of course implementing the overall compositional / performance goals.

i hope this helps illustrate some of the techniques you require. the rest of it is creative work, which i can’t accomplish for you.

there are a few issues here, the most important one being that you need an In ugen to play or read something from a bus within a SynthDef.

not totally clear to me what you’re trying to do. something like frank’s example?

assuming so, i’ve updated the first gist to attach a sine wave to each bark band, tracking pitch and amplitude within that subband. it’s an extremely weird kind of crummy vocoder!


every little bit helps. Thank you


Thank you. Good study tool.


Hi, I feel sort of ashamed for even opening this thread, but here we go. I am just taking my very, very first steps in SuperCollider, have installed SC on my Mac and reading thru the SC online tutorial.

So there’s this line of code on that page:
{ [, 0, 0.2),, 0, 0.2)] }.play;

When I evaluate this line of code, I hear two slightly detuned sine wave beating against each other.

Now when I play around with the code and try to evaluate this:
{ [, 0, 0.2),, 0, 0.2),, 0, 0.2)] }.play;
I still just hear the first two sine waves.

Please, why am I not hearing the third sine wave?


I’m not a supercollider expert by any stretch, so take this with a grain of salt, but I think what’s happening is that your first two sine waves are being sent to the left and right speakers, respectively. So when you add the third one, it gets sent to a third “speaker”/channel, which you don’t have and therefore can’t hear. This is part of supercollider’s multichannel expansion functionality.

To split more than two channels/sources across the stereo field you could use the splay or Pan2 ugens.

Hope this helps.