OpenMusic公式チュートリアル解説:1 - 移調(トランスポーズ)

■今回のテーマ

算術演算子を利用してノートを移調する。

■使用するファンクション

CHORD , om+

■解説

 "om+" を使用してCHORDの各ノートにmidicent値を加算していくだけである。例を見たほうが早い。

画像1

 Om において、ノートのピッチは midicent で表現される。Midicent は midiのノート番号に (中央のC3が60に対応してるアレ) セントを表す100を乗算したもの。つまり、100 cent = 1 半音だ。

 ノートを上下に移調するということは、与えられたノートにmidicents値を加減算することと同義ということになる。例のCHORDボックスは和音なので、それぞれのノートに移調したい micicent を加算しなくてはならない。なので、om謹製の "om+" を使用する。"om+" はリストの各要素に対してそれぞれ加算できる。

 ちなみに単音であるNOTEボックスならCommonLisp標準の "+" でなんの問題もない。(CHORDボックスでやるとエラーになる)

 このパッチではCHORDボックス(A)内の全てのノートに、入力した値200 (B) を加算 (C) する事によって、ノートを短2度移調している。

 ただ、今後のチュートリアル全てに言えることだが、読むより自分でパッチ組んで、それぞれのボックスのアウトプットをEVALUATEしたほうが理解が早いとは思う。

 ちなみに、OM界隈の達人方がEVALUATEってどう呼んでいるのかわからいのだが、俺の周りのコボラー(※)はみんなEVALUATEの事はEVAL(イーバル)と略して呼んでいる。この方が言いやすいと個人的に思っているので、本稿でもEVALって略していく予定だ。

※ 古(いにしえ)の言語、COBOLを利用している方をこう呼ぶ。ちなみに、古とは言うものの、まだまだ金融機関のシステムではCOBOLを利用している・・・というか金融機関でしかもう使われていない。

 CHORDボックスの各インレットについて詳しく知りたくなったら、右クリック>Show Documentationで詳細が見れる。本稿でもコピペではあるが一応載せておこう。

CHORD [CLASS]

SLOTS:
- SELF :	object
- LMIDIC :	pitches (list of midicents)
- LVEL :	velocities (list of values 0-127)
- LOFFSET :	offsets (list of values in ms)
- LDUR :	durations (list of values in ms)
- LCHAN :	MIDI channels (list of values 0-16)

 頭に L がついてるのは、Listを意味しているのだろう、多分。

 これで、解説は終わりなのだが、公式チュートリアルでは各ボックス毎にもう少し詳しくやっているので、本稿もそれに習っていこう。各アルファベットは、パッチ例の横に記載されれているアルファベットに対応している。

 A: ボックスの中心をダブルクリックするとCHORDのスコアエディタが表示される。このエディタ上でノートを編集したりする。

 ちなみに編集後のボックスを選択し、"b"を押下することでロックすることができる。ボックスの左上に☓のアイコンが出るはずだ。また、再度押下するとロックが解除される。よく使うので覚えておこう。

 B: om+ボックスの右インプットで移調値を入力する。100入力した場合は、半音だけ移調する。ということは。四分音は50、八分音は25に相当するということである。これらの値は先前述のとおりmidicentsで表されている。四分音、八分音を表示するには、エディタのApproxを1/4なり1/8に変更する必要がある。

 C: om+は、CHORDボックス内のすべてのノートに移調値を加算している。

 D:CHORDボックスを評価(選択して"v"を押下)し、ボックスを開いて結果を確認してみよう。

 最後に、文中で紹介したCommonLisp標準の"+"を利用した例を紹介する。これは、Noteボックスのピッチを移調した例。

画像2

こっちは、エラーとなった例。両方のインレットが数値型(リスト型は不可)でないと"+"は利用できないのだ。

画像3

いいなと思ったら応援しよう!