FIRフィルターチャンネルデバイダの作成【8】(ソフトウェア後編@SPDIF→DSP→DAC編
マルチアンプシステム向け、FIRフィルター搭載チャンネルデバイダー(チャンデバ)自作に関連する記事の一覧はこちら!
DSPを組んで音出しまでいきましょう。
入力・出力を追加
今回は、I2S → ASRC とのルーティングをしているので、ASRCからの入力を追加します。
まず、中央画面の Schematic を開いてください。まあ、何もしていないので空っぽです。
次に左のリストから、IO → ASRC → From ASRC → Asrc Input、をドラッグ&ドロップします。
また、左のリストから、出力として、IO → Output → Output を2個、ドラッグ&ドロップします。
そうすると、以下のようになるはずです。
左のASRCの入力側では、0/1が選択されている(I2S input のLeft、Rightの信号)状態、
右の出力は、
- 0 → I2S output Ch0 の Left となり、
- 1 → I2S output Ch0 の Right となります
よって、
- 入力 → I2S input Ch0 Left、Right
- 出力 → I2S output Ch0 Left、Right
細かいチャンネルの話などは、また別途解説します。
配線
次に配線をしていきましょう。
とはいっても、かんたんで、以下のような感じで接続してください。
単純に、ASRCの入力(元はI2Sの入力)を、単純に出力しているだけとなります。
コンパイル
まずは、ここまでの設定を、ADAU1467に送り込まなくてはなりませんのでツールバーの、 Link Compile Download をクリックして、コンパイル・書き込みしましょう。
ただ、書き込みといっても、ADAU1467の内部のRAMに書き込むだけなので、リセットや、電源を入れ直すと消えてしまいます(そのためにE2Promがありますが、そのあたりの話はまた後で)。
無事に完了すると、以下のような画面となるはずです。
中央画面の下部には、緑のライン、右下には、Active Downloaded、右には、Fs = 96.0kHz 3%、との表示がでているはずです。
ちなみに、Fs = 96.0kHz 3%とは、96kHzで処理する場合の、3%の、処理時間を使っているという表示です。
なので、ここが100%を超えてしまうと、処理が追いつかなくなり、正しく音声処理ができません。
動作確認
やっと、動作確認できるところまで来ました。
ここでは、Audacityを利用していきます。
まず、Audacityを起動します。
そして、上記メニューから、音声を設定 → 再生デバイス を選択、
ここで、実際にSPDIFが接続されているデバイス設定してください(画面は参考になりません・・・)。
次に、テストトーンを作成します。
上記メニューから、ジェネレーター → トーン を選択
デフォルトのままだと、440Hzのトーンが生成されます。
生成された波形を再生していきましょう。
メニューの緑矢印をクリックで再生です。右の、ループボタンを押してループ再生にしておくと便利です。
さあ、これで、パソコンから、SPDIFを通して、I2S信号が発生し、ADAU1467のDSPに渡り、それをそのままOutputとして再びI2Sで出力、DACで音声信号に変換、されているはずです!
確認
ということで、実際に音声信号がでているか、オシロスコープで見てみましょう。
こんな感じで、出力されているはずです。
アンプ・スピーカーに接続すれば、440hZ音声が聞こえるはずです。
なんら、音声処理もしていない、非常にかんたんなサンプルですが、DSPの内部を通って、処理がおこなわれていると言う所が確認できた、最初の一歩となります。
実際にチャレンジされている方、ぜひがんばってください!
そして、これで、基本中の基本は、完了です。
ここまでの手順については、パラメータを変更してみるなどすると(例えば内部動作48kHzを試してみるとか)実際にどのように動作しているか、理解がすすむかと思います。
このあとは、ボリュームとか、チャンネルごとのGAIN調整とか、FIRフィルターの実装とかに進んでいきたいと思います。

にほんブログ村

にほんブログ村