プログラミング
Waveshare ESP32-S3-Touch-AMOLED-2.06で構築されたギターアンプとエフェクトペダル
Guitar amp and effects pedal built on the Waveshare ESP32-S3-Touch-AMOLED-2.06 (github.com)
要約
ESP32-S3を搭載したスタンドアロンのギターアンプ兼エフェクトペダル「CoyoPedal」が開発されました。このデバイスは、リアルタイムでNeural Amp Modeler A2キャプチャを実行し、USBオーディオインターフェースをホストとして駆動します。タッチスクリーンUIはネイティブC++にコンパイルされ、JavaScriptエンジンは使用されていません。WebAssembly版も提供されており、ブラウザ上で同様の機能を利用できます。
全文翻訳
Waveshare ESP32-S3-Touch-AMOLED-2.06で構築されたスタンドアロンのギターアンプ兼エフェクトペダル、CoyoPedalです。
ESP32-S3上でフルサイズのNeural Amp Modeler A2キャプチャをリアルタイムで実行し、クラスコンプライアントなUSBオーディオインターフェースをUSBホストとして駆動します。また、TSXで記述されネイティブC++にコンパイルされたタッチスクリーンUIを備えており、デバイス上にはJavaScriptエンジンはありません。
画面はボードの一部ですが、ファームウェアはパネルなしのESP32-S3モジュールでもビルド可能で、アンプ、エフェクト、プリセットは同じです。BOOTボタンがフットスイッチとして機能します。
ブラウザで再生 → 同じファームウェアをWebAssemblyにコンパイルしたもの: 同じUI、同じDSP、同じニューラルアンプモデルで、オーディオインターフェース経由でギターを演奏できます。試すのにボードは不要で、インストールも不要です。
フルサイズのNAM A2モデルを48 kHzで実行します。23層、8チャンネルのWaveNetは、ブロック浮動小数点演算で手書きのXtensaカーネルを使用し、両方のコアに分散され、64フレームブロックで処理されます。
独自のキャプチャをロードできます。.namファイルをmicroSDカードにコピーするか、ブラウザビルドをフォルダにポイントしてください。ペダルが解析、検証、準備を行い、デスクトップコンバーターは不要です。
アンプの周りのエフェクトチェーン: ゲート、コンプレッサー、コーラス、ドライブがその前にあり、デジタルディレイとステレオ春リバーブがその後に続きます。アンプ、コントロール、エフェクトのプリセットはペダルに保存され、名前付け用のオン・スクリーンキーボードがあります。
チューナーも同じ画面にあり、チューニング中は出力がミュートされます。
認証付きWi-Fi OTAアップデート、リモート診断、BLEディスカバリを備えたメンテナンスモードがあります。演奏中は無線は完全にオフになります。
ハードウェア
サポートされるボード
ボードエイリアス
フラッシュ
内容
制御方法
Waveshare ESP32-S3-Touch-AMOLED-2.06
amoled
32 MB
ESP32-S3R8、8 MB PSRAM、410 × 502 AMOLED、タッチ、AXP2101 PMIC、microSDスロット
タッチスクリーン; BOOT: タップでバイパス、長押し1.5秒でメンテナンス
Waveshare ESP32-S3-Touch-AMOLED-2.41 (V1)
amoled-241
16 MB
8 MB PSRAM、450 × 600 AMOLED、タッチ、microSDスロット
タッチスクリーン; BOOT: タップでバイパス、長押し1.5秒でメンテナンス
Waveshare ESP32-S3-Touch-LCD-3.5B / 3.5B-C
lcd-35b
16 MB
8 MB PSRAM、320 × 480 IPS LCD、静電容量式タッチ、AXP2101 PMIC、microSDスロット
タッチスクリーン; BOOT: タップでバイパス、長押し1.5秒でメンテナンス
ESP32-S3-DevKitC-1 N16R8、およびベアS3R8モジュール
s3-devkit
16 MB
ESP32-S3R8、8 MB PSRAM、パネルなし、PMICなし、SDスロットなし
BOOT: タップでエンゲージまたはバイパス、長押し1.5秒でメンテナンスモード
AMOLED 2.06がリファレンスボードであり、デフォルトのビルド/フラッシュターゲットです。AMOLED 2.41およびLCD 3.5B/3.5B-Cはオプションターゲットです。それらのディスプレイ寸法、UIスケーリング、電源設定、フラッシュレイアウトは自動的に選択されます。上記の画面解像度はネイティブの縦向き寸法です。ペダルUIは横向きで実行されます。LCDディスプレイ、タッチジェスチャー、OTAアップデート、および同時USB/スピーカーオーディオは、LCD 3.5B-Cハードウェアで検証されています。
画面のないボードは、同じアンプを同じDSPで同じ48 kHzで実行します(devkitで両コアの1,333 µsブロックバジェットの91%および94%を測定、デッドラインの欠落なし)。メンテナンスAPI経由で設定され、手動ではありません。
どちらの場合でもボードが持つべきもの: ESP32-S3と8 MBのPSRAM(A2モデルが配置されるため)、およびチップがホストとして駆動できるUSBポート。ベアモジュールにはPMICもバッテリーパスもなく、AMOLEDとは異なり、ホストポート自体に電力を供給しないため、インターフェースは独自の電源から供給する必要があります。
その他
部品
注釈
オーディオ
ボードのUSBポートにあるUSBオーディオクラス2インターフェース。USBホストとして48 kHzで実行されます。
ストレージ
オプションのmicroSDカード。スロットがあるボードで、独自のキャプチャ用です。
XTONE ProおよびIK Multimedia iRig HD Xでテスト済み。iRig HD 2は専用のUAC1プロファイル経由です。
インターフェースはUSBディスクリプタから検出されるため、48 kHz UAC2入出力を持つインターフェースならどれでも機能するはずです。フォーマットと制限についてはUSBオーディオを参照してください。
ペダルの使用
ホーム画面には、信号順にチェーンが表示されます。ブロックをタップしてオン/オフを切り替えるか、長押しして編集します。スライダーをドラッグして値を変更し、‹ ›を使用してコントロールをページングします。アンプブロックを長押しすると、キャプチャブラウザが開きます。そこには、ファクトリキャプチャ、インポートされたもの、SDカード固有のフォルダが表示されます。
右上隅のスイッチはペダル全体をバイパスし、Tunerはチューナーを開きます。プリセット名をタップして、プリセットを切り替え、保存、名前変更、削除、作成します。新しいプリセットは現在のサウンドから開始します。
アンプを長押ししてからCabをタップして、キャビネットIRを選択します。3つのCC0ファクトリIRが組み込まれています: V30/SM57、DV-77/SM57、Rockdriver/e606。これらはSDカードなしで機能します。ファクトリプリセット3のAmpete Heavyは、アンプのみのAmpete One C4キャプチャとV30/SM57をペアにします。
キャビネットを含むと識別されたキャプチャはCabを非表示にし、外部IRをバイパスします。アンプのみまたは不明なキャプチャは、Cabを利用可能にしたままにします。選択したIRは、キャプチャを切り替える際に記憶されます。
独自のIRの場合、48 kHzモノラルまたはステレオWAVをSDカードの/irにコピーします。サブフォルダもサポートされます。PCM16/24/32およびfloat32を受け入れます。ステレオはモノラルに平均化され、最初の1,024サンプルが使用されます(21.3 ms)。
キャビネットはアンプの後、ディレイとリバーブの前に実行されます。その選択とバイパス状態はプリセットと共に保存されます。ファクトリプリセット1と2は、プロファイルに既にキャビネットが含まれているため、これをバイパスします。
LCD 3.5B-Cは、キャッシュ常駐PSRAMワークスペースとS3のfloat32変換カーネルを使用して、1,024タップIRと6つのエフェクトすべてを実行します。ディスプレイとスピーカーを有効にした3分間のアクティブ入力実行では、設定後および起動後のスピーカーのドロップやアンダーランなしに、USBサイレンスやトリミングは記録されませんでした。短いコア0ステージオーバーランは依然として発生するため、これはすべてのブロックデッドラインを満たす保証ではありません。
IRゲインはファイル間で異なります。チェーン全体のクリッピングが発生する場合は、アンプのOutputレベルを下げてください。
カードをペダルに入れたままIRを転送することもできます。メンテナンスモードでは、npm run remote -- --host PEDAL_IP ir-upload my-cab.wav および npm run remote -- --host PEDAL_IP ir-list を実行します。アップロードはWAVとSHA256を検証し、既存のファイルを保持し、SDから読み戻して完全なファイルを検証します。認証された/v1/ir/upload、/v1/ir/download、および/v1/irエンドポイントは、メンテナンスモードでのみ操作されます。
プリセット画面からSetupを開き、AMOLED 2.06またはLCD 3.5B/3.5B-CでInternal speakerを有効にします。これはオフから始まり、プリセットとは別に保存されます。有効にすると、スピーカーはUSBインターフェース出力と並行して、処理済み信号のモノラルミックスを再生します。オフにすると、USB出力は実行されたままになります。
すべてのボードで、BOOTはフットスイッチとして機能します。短く押すとペダルがエンゲージまたはバイパスされ、長押しするとオーディオモードとメンテナンスモードが切り替わります。スイッチはホールドが1.5秒に達した瞬間に開始されるため、画面にいつ離せるかが表示されます。メンテナンスモードでは短押しは何も行いません。
画面のないボードでは、プリセット、キャプチャ、その他のコントロールは、メンテナンスモードからtools/esp32/amoled_remote.pyを使用してアクセスします。ペダルは、記憶されているプリセット、または保存されていない選択がない場合は最初のプリセットであるSilver Lining(クリーン)でエンゲージ状態で起動します。
独自のキャプチャ
サポートされるモデルは、48 kHz、8チャンネルのNAM A2(「A2-Full」)WaveNetであり、SlimmableContainerの対応するメンバーを含みます。他のアーキテクチャ、サンプルレート、レイヤー形状はエラーで拒否されます。準備済みの.nambファイルも受け入れられます。
カードをFAT形式でフォーマットし、ルートのnamフォルダの下に.namまたは.nambファイルを好きなフォルダ(最大6階層)に配置してください。ブラウザはツリーをそのまま表示し、キャプチャはそのファイル名で命名されます。ファイル名は127バイト、ファイルは2 MiBに収まる必要があります。カードを挿入してから電源を入れ、Ampブラウザからキャプチャを選択してください。キャプチャが選択される最初の時間は、ペダルが準備している間にオーディオが一時停止します。これには数十秒かかる場合があります。カードが書き込み可能である場合、ペダルは元のファイルの隣に検証済みの.s3cacheファイルを保存するため、後続のロードは高速になります。元のファイルは変更されません。完全なVoLumライブラリ