top of page

MAX 7 オーディオ処理基礎2

今一度、MIDIノートナンバーを整理する。

MIDIノートナンバーは、MIDIコントローラーの鍵盤左端から順に0〜127の数値を割り当てたもので、これによって音高、すなわち音程・ピッチを表すものである。

例えば、中央のドは60、ラは69等となる。1オクターブで12音ずつ構成される。

一方、周波数においてこの考え方は大きく異なる。

周波数は物理現象としての音を分析して得られたものである。高さを感じられる音は周期的に繰り返される波形(倍音)を含んでおり、この周期的な波形が1秒感に何回繰り返されるかという回数が周波数である。

また、ある音高の1オクターブ上の音高は、ノートナンバーでは12を足したものであったが、周波数ではその2倍となる。同じく1オクターブ下は1/2倍になる。例えば、中央ラ(440Hz)の伊オクターブ上は880Hz、1オクターブ下は220Hzという感じである。

このように、ノートナンバーでは加算減算であるも、周波数では乗算除算によって行う。さらに音程はノートナンバーでは、周波数ではの関係となるので注意したい。

以上の基本的な知識を頭に入れてプログラミングをしていくわけであるが、例えばどの音程の周波数が何ヘルツになるか等覚えておくのは大変なので、周波数に変換するオブジェクトとしてmtofオブジェクトを使ってノートナンバーを周波数に変換することができる。

さて、ボリュームを上げたり外部オーディオ出力を行うために、dacやezdacオブジェクトが受け取る最終的なシグナルは-1〜1の範囲内になければならない。もしこれを超えた場合、耳障りなクリッピングノイズが発生してしまう。これは、上記の範囲を超えてしまった部分が強制的に-1、1になってしまい、波形そのものが変化して歪みやノイズを発生させてしまうからである。

このクリッピングオブジェクトによるピークレベルの監視をするために、meterオブジェクトを使用することができる。このオブジェクトでは、受け取ったシグナルのピークの大きさを刻々とLEDメーターで表示し、シグナルが-1〜1の範囲を超える場合に、赤く点灯する。デフォルトではLED1個分がおおよそ3dBの音量変化に相当し、表示時間間隔が100msecとなっているが、これらの設定はインスペクター上で細かく変更できる。

最新記事
アーカイブ
タグから検索
bottom of page