4.1 アプリケーションを作る (1) < 4.2 アプリケーションを作る (2) > 4.3 アプリケーションを作る (3)
4.2 アプリケーションを作る (2)
インスタンスの基本を学習。
「インスタンスとは何ぞや」ということだが「クラスから作ったオブジェクト(もの)」「何かいろいろまとめてある」程度に流しておく。ユーザーマニュアルだとFactoryという表現をしてたりする。
とりあえずクラスからインスタンス=オブジェクト=Factoryができるって感じで。
とりあえずクラスからインスタンス=オブジェクト=Factoryができるって感じで。
- CHORDクラスのインスタンスを作ってみる。
パッチエディタの空いたところで、右クリックコンテキストメニューもしくはメニューバーからClasses->Score->CHORDと選択すると、CHORDオブジェクトが作成される。あるいは、ダブルクリックかCtrl + クリックで入力ボックスを出し「chord」と入力することでも作成できる。 - リサイズとかインプットの見方とかドキュメントの参照あたりの操作は関数と全く同じように出来るので割愛。以下オブジェクト独自の事柄を解説。
- ボックスを選択してMキーを押すとオブジェクトの中身が表示される。この表示をミニビュー(Miniview)という。もう1度押すと戻る。
- ボックスを選択してNキーを押すとオブジェクト名が表示される。もう1度押すと戻る。
- 名前を変えるには、ボックスを右クリックしメニューからGet Infoを選ぶ、もしくはCtrl + iで出るウィンドウで。
- ミニビュー内の五線の位置を動かすにはボックス選択してAlt+↑、Alt+↓。
- さて、CHORDは和音や音列を表現するオブジェクトである。どこかに音程情報が入っているはずだが、それはインプット[1](左から2番目)である。インプット[1]を確認してみると次のようになっている。(引数の見方はマウスオーバーやCtrl+マウスオーバーであった。あるいはボックス選択してdキーでドキュメンテーションを参照してもよい(前ページの内容)。)
「引数[1]は音高の集合(pitches)を意味していて、midiセントのリスト(list of MidiCents)を受け取る。デフォルトでは6000という音高1つだけが入ったリストが設定されている」とわかる。 - OMでは音高を表すのにmidiセントを使う。midiセントはC4(真ん中のド)を6000、半音を100セントとした単位。例えばC#4は6100、D4は6200というように。
つまり上の(6000)というのはC4一音だけが入ったリストを意味している。 - 鳴らして確かめてみる。オブジェクトの再生は、ボックスを選択してスペースキー。pキーでも再生できるがスペースキーの方が途中で止めることもできるので便利。
C4の音が再生される。音が出なかったらmidi回りがおかしい。 - では値を変えてドミソの和音を作ってみる。C4・E4・G4をmidiセントで表わすとそれぞれ6000・6400・6700である。それをリストにした(6000 6400 6700)を引数とする。
(「いちいち数字で指定しないといけないの?めんどくさっ!」と思った方、大丈夫。5章でもっと直感的な入力方法やります。) - ボックスを評価。値が変更されたインスタンスが作成される。
(Eval Box選択およびVキーを使った評価ではアウトプット[0]であるself、つまりこのオブジェクトそのものが返ってくる。参照名 #<chord ????????>で表わされている。
Ctrl+クリックによる評価ではそれぞれのアウトプット(1番左ならself、2番目なら音高リストのように)が返ってくる。) - このオブジェクトを再生するとちゃんとドミソの和音が鳴る。
- 次は音量をいじってみる。音量は第3インプットである。0~127の値が入ったリストを入力できる&今はデフォで(100)が入っているとわかる。
これを(50)に変えて評価。再生すると音量が小さくなったことがわかる。 - ここで音量のアウトプットを確認してみると(50 50 50)となっているのがわかる。ドミソ3音なので音量もそれに応じて補完されているのがわかる。
- (50 100)と入力すると一番最後の100が以降補完される。
- 補完のされ方はモノによって違うが、一番最後の有効値が以降コピーされるというのが普通。
4.3 アプリケーションを作る (3) へ進む