axjack's blog

axjack is said to be an abbreviation for An eXistent JApanese Cool Klutz.

Ptparでカエルの歌を輪唱する

TaskかRoutineを用いて書いてみたかったけれども、思いつかなかったのでPtparを用いて書いてみた。 いつか「カエルの歌 無限輪唱」を書きたい。

PtparとPpar

  • Ptparはtime offset付きでparalell実行するPattern
  • Pparはtime offset無しでparalell実行するPattern

コード

//カエルの歌
////////////////////////////////////
(
var melody = [
    60,62,64,65,64,62,60,
    64,65,67,69,67,65,64,
    60,60,60,60,
    60,60,62,62,64,64,65,65,
    64,62,60];

var dur = [
    1,1,1,1,1,1,2,
    1,1,1,1,1,1,2,
    2,2,2,2,
    0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,
    1,1,2];

var song = Pbind(
    \midinote,Pseq(melody,1),
    \dur,Pseq(dur,1),
);


var tempo = TempoClock(120/60);

/*
Ptpar
    embed event streams in parallel, with time offset

Arguments:
    list
        list of pairs of times and patterns: [time, pat, time, pat .. ].
    repeats
        repeat the whole pattern n times.
*/
Ptpar([0,song,8,song,16,song],1).play(tempo);

)
////////////////////////////////////

参考

Ptpar | SuperCollider 3.9dev Help