FPGAでミュージックシーケンサーを作る:注目デバイスで組み込み開発をアップグレード(20)(3/3 ページ)
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第20回は、筆者が独断と妄想に駆られて作ってみたFPGAで制御するミュージックシーケンサーを紹介する。
「お絵かきソフト」を改造してミュージックシーケンサーに対応させる
リスト2は、dpad2の後編に当たる連載第19回で紹介したお絵かきソフトを、今回のミュージックシーケンサーに対応させるために改造した箇所を示しています。お絵かきソフトが8×8のドットに対応していたのに対して、主に8×16に対応させるための変更を加えています。
3: reg [7:0]regs[15:0]; 4: reg [28:0] counter; 5: reg [2:0] x; 6: reg [3:0] y; 7: assign leds[0]=~y[3];
3行目で、8ビットのレジスタを16個用意しています。4行目と5行目は変更ありません。6行目のyは4ビット長になっています。16行分にアクセスできるようにするため1ビット拡張しました。
7行目では、Tang Nano 9Kの基板上にあるオレンジのLEDをyの最上位ビットで点灯させています。8×8のLEDドットマトリクスで16行を表現するためにページ切り替えを用いているのですが、LEDドットマトリクスに映し出されているのが1ページ目に当たる0〜7行目なのか、2ページ目に当たる8〜15行目なのか分からなくなると困るので、このLEDが点灯しているときは2ページ目であることを示すためにこの処理を設けました。
12: if(rst==0) {regs[0],regs[1],regs[2],regs[3],regs[4],regs[5],regs[6],regs[7],regs[8],regs[9],regs[10],regs[11],regs[12],regs[13],regs[14],regs[15],x,y}=0;
あと12行目ですが、リセットボタン(Tang Nano 9KのUSBコネクターを左側に向けた状態でコネクターの上側にあるタクトスイッチ)を押すと、regs[8]からregs[15]もクリアされるよう書き換えました。
実演(演奏)
図4は、今回作成したミュージックシーケンサーで演奏している様子で、YouTubeにアップしたサムネイルです。まず、ブレッドボードの上側に刺さっている青色のジャンパ線ですが、これはプレイモード/演奏モードではUSBコネクター下側のタクトスイッチを押しっぱなしにする必要があるのですが、動画撮影のため両手が使えるようにこのジャンパ線で常時プレイモードにしています。LEDドットマトリクスの右下に見えるICクリップはミュージックシーケンサーの出力をギターアンプにつなぐためのものです。
実際のFPGAミュージックシーケンサーによる演奏の様子は、以下のYouTube映像をご確認ください。
おわりに
いかがでしたでしょうか。筆者もYouTube映像を再確認したのですが、四半世紀以上前からあるお誕生日カードの平べったい圧電スピーカーから流れる安っぽい音にしか聞こえませんでした。これからはFPGAならではの特徴を生かして、前例のない音楽に挑戦する所存です。
今筆者は、「FPGAで音楽」というテーマにかなり入れ込んでいますので、試したいことはまだまだありますし、書きたいこともたくさんあります。読者の皆さんの中にこのテーマにご興味がある方は、編集部までどしどしご要望をお寄せください。もし反響が大きければこのテーマで新連載が開設されるかもしれません。そうなれば筆者としては思うつぼです。読者の皆さまのご協力を切にお願い申し上げます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「注目デバイスで組み込み開発をアップグレード」バックナンバー
- ≫連載「オリジナルCPUでバイナリコード入門」バックナンバー
- FPGA評価ボードに十字キーを付けてみた【後編】
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第19回では、前回作成したFPGA評価ボード「Tang Nano 9K」とつなげた十字キーとA/BボタンのUIによる「お絵描きソフト」を紹介する。 - FPGA評価ボードに十字キーを付けてみた【前編】
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第18回では、筆者の今岡氏が他連載でも活用しているFPGA評価ボード「Tang Nano 9K」に、ファミコンで広く知られるようになった十字キーとA/BボタンのUIを搭載する。 - LEDの光にはもう飽きた、放電プラズマが見たい
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第17回は、フライバックトランスを使って人工的に放電プラズマを起こす回路を紹介する。 - リレーで自作したスポット溶接装置で十字配線ユニバーサル基板をカットする
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第16回は、近年広く販売されるようになった十字配線ユニバーサル基板の配線をカットするために、リレーを使って自作したスポット溶接装置を紹介する。 - 金属探知機を自作して宝探しの勝ち組に
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第15回は、ひそかなブームとなっている宝探しの勝ち組を目指して、金属探知機を自作する。 - ソリッドステートリレーを使った1/fゆらぎ扇風機
注目デバイスの活用で組み込み開発の幅を広げることが狙いの本連載。第14回は、ソリッドステートリレーとArduino、一般的な扇風機を組み合わせて1/fゆらぎ扇風機を作る。