Live blogging sc symposium
as an aside, david has a tiny sc logo on his badge. Ha ha.
Ron has given an intro and now scott wilson and nick collins are talking about tje supercollider book, coming from mit press. It's like the c sound book, but for supercollider.
The book is cool. You should buy it.
James McCartney is giving a keynote about single sample code synthesis. He did a 1 sample at a time server in 2001. Synthdefs were c functions. The code is lying around on his website. It doesn't work and there are missing pieces and is not the same version that he's talking about.
The current version does block processing. It does a bunch of samples at once. ChucK does single sample, but most do block.
The single sample version of sc has lower performance. And compiling synths took too long. This might not be the case today. It had the same architecture as the current version. There was no distinction between audio rate and control rate, since everything gets evaluated on every sample. You could do one sample feedback.
The whole thing was written in sc. It made c++ code for synthdefs, which was then compiled. He's showing us what the code looks lile. It looks like c++. Actually, it looks like source for ugens now.
The sc code for ugens returns strings for code generation. This doesn't need primatives, because the c code is in the sc class. But it's still c code. This would really not be easier to write, since you wou;d need to know tje structure of the generated code. It would have been beyter to have meta code to describe how the ugen should work.
He's showing us the source code for his project and now going to tell us why this is a bad idea. This is an unusual keynote. Now he's telling us about memory issues and registers. Now he's talking about vectorization and optimation. Now there's a slid called 'code pointer swapping.' Now 'instruction cacahe'
It might be ok to do single samples once in a while despite performance issues.
There's a question about faust. He says its interesting and good.
Q: demand ugens can do single sample feedback as a hack, but its inefficient. Te solution is to write your own ugens in c because non block stuff is slow.
Another faust question. Functional programs parallelize better. But faust has no variable names but prefer not to. It makes me a bit dizzy, faust does.
Ron is asking a question about demand rate and jit code and other things that i don't know how to use. Now ron is asking about synths that change rate on the fly. It's hard.
Can you set the block size to 1 on sc now? Yes, but then you have chuck.