注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第20回は、筆者が独断と妄想に駆られて作ってみたFPGAで制御するミュージックシーケンサーを紹介する。
本連載は、古今東西面白いデバイスを筆者の嗅覚で探し出し実際の製作や実験を交えながら対象デバイスを深堀りすることがテーマです。今回は筆者がただただ独断と妄想に駆られて作ってみたものになりますが、FPGAで制御するミュージックシーケンサーを紹介したいと思います。
音楽と組み込みというとちょっと縁遠い関係に見えるかもしれませんが、音楽を奏でる楽器は最も古い精密機器の一つです。現在まで使われている絶対12音階は、既にバッハの時代からあったのでしょうか。それを楽器として実現するには、それなりの数学的知識も必要ですし、経年変化しない素材の選択や加工なども含めて、当時としてはハイテクの粋を結集した工芸品であったことは想像に難くありません。
FPGAで音響帯域音を生成するということはそれと同じで、あらゆる電子工学的知識を総動員する必要があるのです。
⇒連載「注目デバイスで組み込み開発をアップグレード」のバックナンバー
図1は、20世紀中盤にコルグが発売したアナログシーケンサーです。パネル右上側を見る限り、12ステップのプログラミングが可能で、それぞれのステップに対して3個のノブがあるので、ステップごとにそれぞれ周波数やその他の音響的な設定が可能だったものと思われます。
今回は、このようなミュージックシーケンサーをFPGAで作ってみます。
図2に示すように、FPGAとしては、ブレッドボードにFPGA評価ボード「Tang Nano 9K」を挿したものを使用します。Tang Nano 9Kには8×8のLEDドットマトリクスをマウントしており、Tang Nano 9Kの下側には十字キーとAボタン、Bボタンがあります。これらの組み合わせを本連載では「dpad2」と呼んでいます。
dpad2については、連載第18回と第19回をご参照ください。
まず、LEDドットマトリクスの見方ですが、水平方向に並ぶ8つの行方向のドットは音階を表します。左から、低い方のラ(周波数440Hz)から高い方のラ(同880Hz)までの音階を8音で表しています。ピアノなどのけん盤楽器で言えば全音に対応する白鍵のみを使っており、黒鍵に対応する半音はありません。
1行の中で8つの音階を指定して鳴らすことができますが、一定時間が経過すると演奏する音階は次の行に移ります。つまり、垂直方向(列方向)に並ぶ8つの行は演奏ステップを表しているわけです。なお、一番下の行の演奏が終わると、次は一番上の行に演奏ステップが移ります。
このミュージックシーケンサーの入力方法はシンプルです。十字キーでLEDドットマトリクス上のカーソルを動かしAボタンでドットを点灯すれば、所定の演奏ステップで所定の音階を鳴らせるようになります。Bボタンを使えば、点灯しているドットを消灯して、音階を鳴らすのを止めることができます。
この入力方法に従って、点灯しているドットで示した音階が鳴ります。1つの行の中で複数のドットが点灯している場合は対応する複数の音階が鳴ります。例えば、その列の全てのドットを点灯させれば8音が同時に鳴ります。
ここまでの話はコンポーザーモード、いわゆる作曲モードです。図2でいくと、ブレッドボード上に設置されたTang Nano 9Kの左側を向いているUSBコネクターの下側にある白いタクトスイッチを押すとプレイモード/演奏モードに遷移し、コンポーザーモードで記録したドットに従って演奏が始まります。タクトスイッチを離すと演奏は止まり、コンポーザーモードに戻ります。
Copyright © ITmedia, Inc. All Rights Reserved.