하나의 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));

 

이렇게 하면 됩니당.

Leave a Comment.