Dictionaryは字引く書なりー。
某ブログでみた疑問を解決!
英語音名をMIDIノートナンバーで表記するときに、C3=60 … と、
考えるのが大変な場合は、Dictionaryを利用すると便利です。
Dictionaryクラスとは….その名前の通り、辞書のようなクラスです。辞書は、ある「単語」とその「意味(内容)」が一セットになったものの集合ですね。それと同じようにDictinaryに、key(キーワード)とvalue(その値)を登録しておき、それらを自由自在に呼び出す事ができます。
Dictionaryクラフのヘルプより:
(
d = Dictionary.new;
d.add(’monkey’ -> 0).postln; // monkeyは0
d.add(’robot’ -> 1).postln; // robotは1
d.add(’monkey’ -> 2).postln; // monkeyを2に上書き
)
d.at(’monkey’); // monkeyの値を取得する。
これを使って、英語音名でmidiノートを呼び出してみましょう。
(
d = Dictionary.new;
d.add(’3C’ -> 60).postln;
d.add(’3D’ -> 62).postln;
d.add(’3E’ -> 64).postln;
SynthDef(\simpleSine, {arg out, freq=400, gate= 1 ;
Out.ar(out, SinOsc.ar(freq) * EnvGen.kr(Env.asr(1,1,1), gate, doneAction:2))
}
).store;
Pbind(\midinote, Pseq([d.at('C'),d.at('D'), d.at('E')],inf),
\instrument, \simpleSine
).play;
全部書いたりするのも面倒ですが、どなたかコードのディクショナリーをどこかで発表している方がいらっしゃいました。ちょっと見つからなかったのですが、そんなのがあると便利かもしれないし、もっとエレガントにも書く事もできるでしょう。と、まぁ、Dictionaryは、こんな感じ、デシタ。
Posted: 1月 14th, 2009 under 日々のSC.
Comments: none