DesignSpark Electrical Logolinkedin
Menu 検索
フォーラムで質問

BeagleBone BlackとBelaを使用した高度なオーディオエフェクト パート2: Red Tin用マルチエフェクトモジュールの構築

今回は、パート1で紹介したエフェクトモジュールをさらに拡張させ、マルチエフェクトユニットを作成する。作成には、筐体の設計と組み立て、ノブとボタンの配線、Belaソフトウェアの開発を行った。

この記事のパート1では、BeagleBone Black (125-2412) 用Bela Capeの可能性を探求するため、いくつかの異なるスケッチ(サンプルプログラム)を試してみて、何ができるのかを体験した。ここからは自作のDJマシン「Red Tin」で使用する方法について探る。

BeagleBone BlackとBelaをベースにしたギターエフェクトペダルのプロジェクトを見つけたとき、これは私のDJマシンに搭載できるのではと思った。私のエフェクトユニットには多くの種類のサウンドエフェクト機能があり、プッシュボタンによる機能の選択と、パラメータの調整が可能である。

ペダルはギターで使用することを想定して設計されていたので、一部のエフェクトは私が望むものではなかったが、Belaスケッチを編集して他のエフェクトの代わりにできるのではないかと期待していた。

Belaユーザーフォーラムでペダルの製作者に連絡すると、彼はとても力になってくれた。時間・専門知識・経験を惜しげもなく分け与えてくれる人たちに出会うことができ、私は心から感謝している。

筐体設計

筐体設計は、以前作成したサウンドエフェクトモジュールをベースにしている。とてもコンパクトで優れたデザインだが、今回作成するBeagleBone BlackとBelaを組み合わせたものはAdafruit Sound FXプロセッサボードよりもはるかに広いスペースを占めるうえ、半固定抵抗器6つとボタン3つも収めなければならないので、かなり窮屈になると思われた。さらに将来的にはLEDライトバーも組み込んで、今実行しているエフェクトはどれかを示したり、レベルメーターとして使用したりしたいので、そのためのスペースを残す必要があった。

素材をレーザーカットしてプロトタイプを作成した。底面にはMDF、上面には透明なアクリル板の端材を使用した。上部の側面はアクリルベンダーを使用して加熱して曲げた。

もちろん、最終版は赤いアクリルを使用した。

配線

以下の部品を組み立てた。

  • 10k半固定抵抗器(168-140) x 10
  • モーメンタリミニチュアプッシュボタンスイッチ x 3
  • ノブ(467-6689) x 6
  • 470Ω抵抗(707-7647) (写真なし) x 6
  • 3.3 kΩ抵抗(125-1162) (写真なし) x 3
  • 2.54mmピッチ、36極、1列、ライトアングルピンヘッダ x 1

写真には10セグメントライトバーLEDディスプレイ(246-5689) と数個の470Ωバス抵抗器も写っているが、今回は使用していない。将来的には組み込んで、どのエフェクトがアクティブかをディスプレイに表示させる予定である。

配線方法は、Belaフォーラムの「ryjobil」さんが親切に教えてくれたギターエフェクトの配線ガイドに従った。ADC refピンとgndの間に6個の10kポットを接続し、ワイヤーをBelaのアナログ入力チャンネル0~5に接続する。470Ωの抵抗器を5Vとアナログrefピンの間に配線し、10kポットによって引き出される余分な電流を補完する。

これを治具にはんだ付けしてケースに移した。

次に、モメンタリープッシュボタンスイッチをデジタル入力ピンから3.3Vと3.3kプルダウン抵抗へ、さらにアースへと配線した。これらは、ケースの最新バージョンに取り付けることができる。

ライトアングルピンヘッダ(251-8654) は、Belaアナログ・デジタル入力にすべてを接続するために適切な長さにカットしたものを使用した。ライトアングルピンヘッダを使うのは、エンクロージャ内のスペースを節約できるためである。

7番目の半固定抵抗器を追加した後で、これは自分が使用するつもりのないWahWahエフェクトのバイパスボリューム用のものだと気付いた。そのため一部の写真には写っているが配線はしていない。ただ、将来コードやプロジェクトをアップデートしたときに役に立つかもしれない。

その後、動作確認のためクイックテストを実行し、Bela IDEコンソールの測定値からスイッチとポットが期待どおりに動作していることを確認した。

スクリプトの変更

コーディング経験に関して、HTML 5とArduinoをかじった程度の初心者レベルの私がサンプルプログラムをいじって改造してみた。

ギターペダル用のBelaプロジェクトなので、一部のエフェクトは使用するつもりのないものだ。オリジナルのスケッチには様々なエフェクトが並んでいたので、必要ないものを削除し、残りを並べ替えたいと思った。

Wahwahエフェクトを使用するつもりはなかったので、私はコメントアウトした。

#include "inductorwah.h"

Bela IDEはコンソールセクションがアップデートされ、スケッチ変更によってスケッチが壊れてしまった場所をすべて示してくれるようになったので非常に助かる。このおかげで、スムーズにスケッチに目を通して不要な行をコメントアウトすることができた。メインの"render.cpp"は2,000行を超える長さで、他の多数のスケッチを要求するため、リアルタイムの構文チェック機能はとてもありがたいものだった。

さらにサスティナー機能を削除して、最終的には自分が使いたい10個のエフェクトだけを残した。

以上のプロセスを踏んだおかげで、プロジェクトがどのように機能しているか、どの部分が相互依存しているか、どのように組み合わされているのかを把握できた。

完成品

配線が終了し、部品がエンクロージャに取り付けられ、メインスケッチを少し修正した後、実際のサウンドで試してみた。ギターの環境音楽のループを見つけたので、これを音源として使用し、エフェクトをスクロールして次のような結果を確認した。

  • デジタル入力0: FXのリストをスクロールし、コントロール用にアクティブにする(CONTROL_EFFECT_SWITCH)。
  • デジタル入力1: アクティブエフェクトのオン/バイパス状態を切り替える(EFFECT_BYPASS_SWITCH)。
  • デジタル入力2: ポットを異なるパラメータセットに割り当てるエフェクトのコントロールページをスクロールする(CONTROL_CONTEXT_SWITCH)。

まだ、どの入力にどのボタンを使うのかを決めていないが、切り替えはBelaヘッダーのピンを動かすだけなのでとても簡単だ。

このマルチエフェクトモジュールには自由に使える10種のエフェクトがあり、その配列は自分で決定できる。この仕様はかえって少し混乱を呼ぶかもしれないが、ビデオを見ればどんなことが可能かを大まかに把握することができる。

今後の展開

使用しない7番目のダイヤルをなくした(そして入力と出力が正しい順序でラベル付けされている)バージョンのエンクロージャを作る予定だ。また前述のように、どのエフェクトが実行されているかを確認するためのLEDインジケータも組み込む。コーディングについては仕組みが良く分かったので、違うエフェクトをいくつか組み込むこともできそうだ。

I currently look after production at AB Open. I have a background in the arts, environmental conservation and IT support. In my spare time I do a bit of DJing and I like making things.

11 Jul 2019, 4:58