21Q1.05A

21Q1.05A

DA コンバータがなくてもできる FPGA ピアノ (5)

本連載もいよいよ最終回。デルタシグマ変調も正弦波生成もできるようになりましたので、いよいよ FPGA ピアノを完成させます。異なる周波数で発振する複数の正弦波生成モジュールを並べ、複数の音を同時に出力できるようにします。つまり和音の演奏を可能にします。さらに BRAM を用いた ROM テーブルに楽曲のデータを保存しておき、それを読み出しながら自動演奏する機能も実装し、最後は本連載の「卒業演奏」に臨みます。 まずは鍵盤に見立てたスイッチボタンと正弦波の生成を連携させるために、前回の設計を...
21Q1.05A

DA コンバータがなくてもできる FPGA ピアノ (4)

前回はデルタシグマ変調回路を実装して振幅の自由を手に入れました。もはやパルス波じゃなくても出力できます。そこで今回は正弦波を FPGA で生成して出力します。三角関数の計算はどうしましょうか? BRAM でテーブルを作って索く? 確かに定番ですが、他の方法はないでしょうか。 CORDIC? それもありますね。でも、やっぱりテーブルが必要です。今回は題して「テーブルがなくてもできる正弦波出力」。もちろんテーブルを使ったって構わないのですが 、実装の選択肢を色々と持っておくことも何かの時には役に立...
21Q1.05A

DA コンバータがなくてもできる FPGA ピアノ (3)

今回は1ビットのディジタル出力を使ってアナログ信号を作り出すデルタシグマ型の DA コンバータを FPGA で実装します。これによってパルス波の振幅を変えることで前回作ったピアノの音量を調整してみます。デルタシグマって聞いたことはあるけど理論が何だか難しそう、というイメージをお持ちの方もいらっしゃるかもしれません。でも、そんなことはありません。Z 変換ができなくても大丈夫、基本原理はちゃんと理解できます。大部分の処理をディジタルで行うので FPGA 実装に向いていますし、回路構造もとても単純で...
21Q1.05A

DA コンバータがなくてもできる FPGA ピアノ (2)

前回の実装では FPGA から指定した周波数のパルス波を出力し、圧電スピーカーから音を出すことができるようになりました。あとは音階に対応した周波数を各ボタンスイッチに割り当てれば、だいぶピアノらしくなるはずです。いわば FPGA ピアノの調律の作業です。さて、ピアノの調律といえば音の高さだけではなく音色の調整も行います。そこで今回は簡易的な音色の調整機能として PWM (Pulse Width Modulation) のメカニズムを実装して、自由にパルス幅を変更できるようにしてみましょう。また...
21Q1.05A

DA コンバータがなくてもできる FPGA ピアノ (1)

この連載では、少しホビーエレクトロニクス的なテイストも交えながら、FPGA ボードのスイッチボタンを鍵盤に見立てた電子ピアノの作成例をご紹介します。 オーディオ信号の出力となると、FPGA に DA コンバータを接続し、ディジタル信号をアナログ信号に変換するというのが普通かと思います。実際、廉価な FPGA ボードでもオーディオ用 DA コンバータを備えているものがかなりありますし、DA コンバータを搭載した拡張基板も色々とあるのですが、本連載ではあえて「DA コンバータがなくてもできる...
タイトルとURLをコピーしました