Designing Sound in SuperCollider

Hi –

I’ve been slowly working through Andy Farnell’s recent book “Designing
Sound”, full of puredata examples of all sorts of techniques. I
reimplemented various of his examples in supercollider.

I was intending to get the whole lot done and then put them online,
but it’s been nearly a year so I realised I should just put out what I
had – here it is as a lovely wikibook:
http://en.wikibooks.org/wiki/Designing_Sound_in_SuperCollider

I should emphasise that this is just a tiny fraction of the examples
from the book, and also that if any of them sound rubbish then it’s
probably my fault 😉

Dan

SuperCollider 3.4 released

Hi all –

The new 3.4 version of SuperCollider is now available for Mac and Linux.

Full announcement (and downloads) here:
http://supercollider.sourceforge.net/2010/supercollider-34/

There are many changes since 3.3.1, including 64-bit support on mac
and linux, iPhone support, performance improvements, and improved user
interface features. Also, following the 3.4 “alpha” a couple of months
ago we fixed a backwards-compatibility issue, made consistency
improvements in JITlib, and more.

The ‘-with-extras’ versions include the new version of SwingOSC too (0.65).

Many people contributed towards this release – not just the large
group of developers but also people improving documentation, reporting
bugs, and so on. Thanks to you all!

Dan

http://www.mcld.co.uk

하나의 folder에서 Random으로 soundfile고르기

하나의 folder에 여러가지 sample들이 있을때에 Syndef에서 random을로 골라 play하는 패치를 만들어 보지용

 

먼저 Global Variable을 이용해서 file을 골라 Buffer에 넣어봅니다.

(
~chooseSound = {|n|
    var path=PathName("/Users/jiyounkang/sounds/").entries.choose.fullPath;
    Buffer.read(s,path,bufnum:n);};
)
여기에서 "…." 이 안에는 파일들이 들은 folder의 path를 넣어줍니다.

그리고 SynthDef

(
SynthDef("choice",
{
    arg amp=0.1,bufnum=~chooseSound.(n);
    var play=PlayBuf.ar(1,bufnum, doneAction:0);
    Out.ar(0,(play*amp)!2);
}).store
)

 

이렇게 해줍니다.

이제 실행해보지요

a=Synth.new("choice");

이러면 소리가 납니다. 그럼 이제 random으로 소리파일을 바꾸어 볼까요?

a.set(bufnum,~chooseSound.(n));

 

이렇게 하면 됩니당.