Pbind/Patternの内容を変える
春がくるのかしら、と思うような天気から、冷たい雨の白い冬の空。
この雨は、暖かい日をよんでいるのだろうか。今日は祭日。
午前中にiPressさんの原稿をチェックしました。写真のわたし、プクプクですが、なかなか楽しい記事になっています。2月中に全国のソフトバンクショップなどで無料でいただけるフリーペーパーです。また、配布が始まったらお知らせします。。
さて、Pbind/Patternの内容を、コードを走らせて音を鳴らしながら、要素をダイナミックに変える方法は以前書いたかも。
Pattern系のクラス自体を書き換えるような場合(PseqとPrandを切り替えて使う、など)は、PatternProxyを使った1の方法、そうではなく、リストの要素のみを書き換えたい場合は、2番目の方法がよいかな。
// SCデフォルトのinstrumentはいつになったら、
// テストしやすいものに変わるのだろう、苦笑。
SynthDef("simpleSine", {arg freq=440, amp=0.5;
Out.ar([0,1],
SinOsc.ar(freq) * EnvGen.ar(Env.perc, doneAction:2) * amp)
}).store;
//方法1///////////////////////////////////
~playerA_deg = PatternProxy(Pseq([0,1,2,3,4],inf));
p = Pbind(
\instrument, \simpleSine,
\degree, ~playerA_deg,
\dur ,0.25,
\octave, 7
).play
// Patternを変える
~playerA_deg.source = (Pseq([2,3,4,5],inf));
~playerA_deg.source = (Pseq([0,1,2,3,4,5],inf));
~playerA_deg.source = (Prand([0,1,2,3,4,5],inf));
//方法2 ///////////////////////////////////
~playerA_deg= List[2,2,2,2];
p = Pbind(
\instrument, \simpleSine,
\degree, Pseq(~playerA_deg, inf),
\dur, 0.25,
\octave, 7
).play;
// Listの内容を変える
~playerA_deg[1] = 5
~playerA_deg[3] = 7
Posted: 2月 11th, 2010 under 日々のSC.
Comments: none
Write a comment