deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

Açık kaynak ESP32-S3 pedal, tam boyutlu Neural Amp Modeler capture'ları gerçek zamanlı çalıştırıyor

Coyopedal, bir ESP32-S3 üzerinde 23 katmanlı Neural Amp Modeler WaveNet'lerini 48 kHz'de çalıştırıyor, USB audio interface barındırıyor ve aynı firmware'i tarayıcıda test için WebAssembly'ye derliyor.

Açık kaynak ESP32-S3 pedal, tam boyutlu Neural Amp Modeler capture'ları gerçek zamanlı çalıştırıyor

İki çekirdeğe sıkıştırılmış bir WaveNet

Amfi modeli, 48 kHz'de işlenen 23 katmanlı, sekiz kanallı bir WaveNet. Bunun sığması için yazar Xtensa kernel'lerini elle yazdı ve ağı block floating point ile çalıştırarak her 64 karelik işleme bloğunu çipin iki çekirdeğine paylaştırdı. Depoda aktarılan ölçümler, yükün bir DevKitC-1'in iki çekirdeğinde blok başına 1.333 µs'lük bütçenin %91'i ve %94'ü olduğunu, kaçırılan süre olmadığını gösteriyor. Desteklenen donanım, modelin tutulduğu yer olduğu için 8 MB PSRAM'e sahip bir ESP32-S3 ve çipin host modunda sürebileceği bir USB portu gerektiriyor.

USB audio ve efekt zinciri

Yerleşik bir codec yerine pedal, 48 kHz'de bir USB Audio Class 2 interface'i host olarak barındırıyor. XTONE Pro ve IK Multimedia'ın iRig HD X ile test edildi; eski iRig HD 2 ise ayrı bir UAC1 profiliyle destekleniyor. Interface'ler USB descriptor'larından tanındığı için depoya göre herhangi bir 48 kHz UAC2 cihazı çalışmalı. Amfinin çevresinde önce gate, compressor, chorus ve drive, sonra dijital delay ve stereo spring reverb bulunuyor. Amfi, kontroller ve efektleri kapsayan presetler cihazda tutuluyor; isimlendirme için ekran klavyesi var ve tuner, ekranı, ayarlama sırasında çıkış susturularak paylaşıyor.

Tek firmware, üç form faktörü

Dokunmatik arayüz TSX ile yazıldı ama native C++'a derleniyor; yani cihazda JavaScript runtime yok. Aynı firmware ayrıca ekransız bir çıplak ESP32-S3 modülü için de derleniyor; burada BOOT düğmesi footswitch görevi görüyor ve ayarlara bir bakım API'si üzerinden erişiliyor. WebAssembly'ye de derleniyor: depodan bağlantısı verilen barındırılan tarayıcı demosu, aynı arayüzü, DSP'yi ve modeli bir audio interface üzerinden sunuyor ve SD kartın yerine yerel bir klasör istiyor. Chrome ve Edge o klasöre geri yazabiliyor; Safari ve Firefox yalnızca okumaya izin veriyor, dolayısıyla yazmalar tarayıcının kendi deposunda kalıyor.

Capture'larınızı kendiniz getirin

Çalan kişiler .nam dosyalarını — veya hazırlanmış .namb dosyalarını — kökünde bir nam klasörü bulunan, FAT biçimli bir microSD karta kopyalayabilir; klasör yapısı altı seviye derinliğe kadar olabilir, dosya adları en fazla 127 bayt, dosyalar en fazla 2 MiB olabilir. Pedal bunları cihaz üzerinde ayrıştırır, doğrular ve hazırlar; masaüstü dönüştürme adımı yoktur. İlk yükleme sesi duraklatır ve onlarca saniye sürebilir; ardından doğrulanmış bir .s3cache dosyası orijinalin yanına kaydedilir, böylece sonraki yüklemeler hızlı olur. Orijinal dosya asla değiştirilmez. Yalnızca 48 kHz, sekiz kanallı A2-Full WaveNet'ler kabul edilir — bir SlimmumContainer'ın eşleşen üyesi dahil — diğer mimariler, örnekleme hızları ve katman biçimleri bir hatayla reddedilir. Tüm VoLum capture kütüphanesi tek bir npm script'iyle karta kopyalanabiliyor.

Bakım ve güncellemeler

BOOT düğmesini 1,5 saniye basılı tutmak audio ve bakım modu arasında geçiş yapar; bakım modu kimlik doğrulamalı Wi-Fi OTA güncellemeleri, uzaktan teşhis ve BLE keşfini etkinleştirir; radyolar çalma sırasında tamamen kapalı kalır. Wi-Fi bilgileri derleme sırasında isteğe bağlıdır ve bunlar olmadan yapılan bir derleme, hiç radyosu olmayan bir pedal üretir. Kaynaktan derlemek Node.js 22.13 veya daha yenisini, font rasterizasyonu için Pillow ve fontTools içeren Python 3'ü, host testleri için bir C++20 derleyicisi ve CMake'i, web derlemesi için de Emscripten SDK'yı gerektirir; projenin Gea CLI'si, ESP-IDF 6.0.2 dahil kalan araç zincirini kurar.

Neden önemli

Nöral amfi modelleme çoğunlukla sinyal zincirinde bir bilgisayar anlamına geliyordu; sahnede çalanlar NAM plugin'leri çalıştırıyordu. Tam bir A2 capture'ını sıradan bir çift çekirdekli mikrodenetleyicide — her iki çekirdekte de tek haneli yüzdeye kalan payla — çalıştırmak, elle yazılmış kernel'lerin ve block floating point'in ucuz silikoni ne kadar uzatabildiğini gösteriyor. Paylaşılan kod tabanı en az bunun kadar dikkat çekici: tek bir proje ekranlı bir pedal, ekransız bir modül ve bir tarayıcı demosu üretiyor, böylece herkes donanım satın almadan önce modellemeyi deneyebiliyor. Audio dışındaki gömülü geliştiriciler içinse, 23 katmanlı bir sinir ağının, kernel'ler belirli çip için yazıldığında katı gerçek zamanlı süreleri karşılayabileceğinin somut bir kanıtı.

  • #esp32
  • #embedded
  • #neural-amp-modeler
  • #guitar-audio
  • #wasm
  • #open-source

İlgili yazılar