タグ別アーカイブ: Scale

SuperColliderで純正律を使う

現代の音楽文化においてはすっかり十二平均率が普及しているため、MIDIキーボードにせよ音楽作成ソフトにせよ、音律を変更すると言うことはほぼできませんが、SuperColliderならかんたんに平均率以外の音律を使うことができます。

平均率以外の音律を使うには、Scaleクラスを使うのが便利です。Scaleクラスを使うと長調、短調、またホールトーンや日本の律旋法など、様々な音階を取得することができます。これは音階にあてはめた音楽を生成するには便利ですが、次に示すサンプルではMIDIキーボードを作ろうとしているため、 .chromatic を指定しオクターブ内の12音全てを取得しています。

次に、Scaleオブジェクトに .tuning_ メッセージを送り、チューニングを変更しています。\justの場合は純正律、\et12だと12平均率、\mean4だと1/4コンマ中全音律、\pythagoreanだとピタゴラス音律になります。かんたんですね。

MIDIナンバーを音階に割り振り音度(Degree)を取得するのに .keyToDegree メッセージを使っています。さらに、音度からMIDIナンバーに戻すのに .degreeToKey メッセージを使っています。結局MIDIナンバーに戻しているのが不思議に感じるかもしれませんが、この時点で平均率以外を選択していれば小数点になるはずです(平均率からはずれる)。最後に .midicps メッセージで周波数に変換しています。処理が冗長なので、もっといい方法があれば教えてください。

Scaleクラスが対応している音階や音律を知るには、Scale.scファイルを見てソースコードを見るのが良さそうです(一覧が見つけられなかった)。音階は ScaleInfo クラス、音律は TuningInfo クラスで定義しています。バルトーク音階など音楽史上に現れた様々な音階、雅楽やラーガなど民族音楽の音階、さらに1オクターブに12音以上存在する特殊な音階も対応しています。ミーントーンも1/4、1/5、1/6に対応、キルンベルガー第3法、ウェンディ・カルロスの超純正律などマニアックなものも入ってます。実用性のほどは分かりませんが、この懐の深さがオープンソースのSuperColliderならではの魅力かもしれません。