【音階表示コンピュータとは】

 

音階表示コンピュータは、PCに接続したマイクから入力した音の高低に応じて、鍵盤上に配置された12個のLEDを光らせるコンピュータです。ギターのラ(A4)もリコーダーのラ(A4)も同じ周波数(440Hz)であることがこのツールを使うことでわかります。

音の高低の変化を目で楽しんだり、自分の歌声の音程のチェックに利用できます。

【音階表示コンピュータのPC側の処理】

PC上のプログラムが、8kHzのサンプリング(電話と同じ)、量子化ビット数16ビットでマイクから入力した音声をデジタル化し、0.125秒前の音を高速フーリエ変換(FFT)を使って周波数を解析し、もっとも大きな音の周波数に応じて対応する音階のLEDをArduino Unoが光らせます。

マイクからの入力は、WindowsのWaveForm関数(waveInOpen等)を使用しています。

処理を高速に行うため、共有メモリを介して通信を行う2プロセス構造を採用し、マイクからの音の入力と、フーリエ変換による波長の解析が同時に実行できるように実装しました。

解析対象の音と解析結果として点灯される光の時間差は、コンピュータの処理能力や負荷状況に依存します。

動作には、お客様PC(Core i5以上、Windows7以降)、C++コンパイル環境(個人利用限定で無償ダウンロード可)、Arduino IDE(無償ダウンロード可)が必要です。

マイクの感度は、Windowsの標準機能を使って調節可能です。

【LED鍵盤側の処理】

PCとLED鍵盤(Arduino Unoが実装されている)との間はUSBケーブルで接続します。Arduino UnoはPC上での解析結果に応じて、対応するLEDを点灯させます。LED鍵盤はUSBを通して電源が供給されます。

LED鍵盤には、コンピュータArduino Unoが実装され、前面に12個の高輝度LEDが組み込まれています。下段(ドレミファソラシ)は青、上段(ド#レ#ファ#ソ#ラ#)は緑のLEDが対応しています。C4からB5(253HZから1014Hz)の音(2オクターブ)を鍵盤上の対応するLEDを点灯させることにより表示します。この範囲より低い音、高い音は一番左(低音)もしくは一番右(高音)のLEDが点滅します。

LED鍵盤の電源は、PCのUSBから供給します。

PCのマイク端子にマイクを接続します。(マイクとイヤホンを兼用するコンポジットオーディオ端子には対応していません)

 

【機能注意事項】

本音階表示コンピュータの音階の判断性能は、楽器などの音質により左右されます。たとえばギターの場合、指ではじいた直後から音は次第に小さくなっていき、基本音と倍音の比較(倍音のほうが振幅が大きい、等)がむずかしくなってしまいます。これに対してリコーダーの場合には、息を吐き続けている間、音の強さは変わらないので、比較的安定した音程の判定が可能となっています。

【エレクトーンでの実証】

エレクトーンを弾いたときのLED鍵盤の様子を以下に載せます。鍵盤の位置とLED鍵盤の位置がほぼ対応していることがわかります。