Ladění zvuku v reálném čase

Ladění zvuku v reálném čase — vizuální nástroj pro embedded audio

Vizuální nástroj pro embedded audio

Vyladit zvuk chytrého reproduktoru znamenalo přepsat konfigurační hlavičku v C, přeložit firmware, nahrát, poslechnout — a znovu. Pro globálního výrobce polovodičů jsme postavili nástroj, který audio inženýrům dává posuvníky místo rekompilace: parametry se mění na běžící desce v reálném čase a hotové nastavení se vygeneruje rovnou jako produkční kód.

Audio řetězec se skládá vizuálně z uzlů — ekvalizéry, zvýraznění basů a výšek, virtualizace prostoru, řízení hlasitosti. Každý uzel má vlastnosti s živými grafy frekvenčních odezev a spektrální analyzátor ukazuje výsledek při přehrávání. Zásadní je spojení s reálným hardwarem: nástroj se připojí k běžící desce přes debugger a změny parametrů slyšíte okamžitě, bez překladu a nahrávání firmwaru. Když je zvuk správně, jedno tlačítko vygeneruje konfigurační kód připravený do produkčního firmwaru. Součástí je i simulátor pro práci bez desky.

/// Desktopová aplikace/// Embedded/// Audio

Technologie

Aplikaci jsme postavili na Oidis Frameworku v TypeScriptu jako desktopový nástroj s vestavěným Node.js — grafy vykresluje ECharts, projekty se ukládají v JSONP formátu. Komunikaci s deskou zajišťuje vrstva nad debugovacím rozhraním s přímým čtením a zápisem parametrů v paměti firmwaru. Generátor kódu je šablonový a rozšiřitelný o nové typy uzlů. Simulátor balí nativní audio knihovnu jako Node.js addon.

Zadání

Ladění zvuku je ze své podstaty iterativní — ucho rozhoduje. Jenže každá iterace přes úpravu kódu a rekompilaci trvá minuty a rozbíjí soustředění. Výrobce čipů potřeboval pro svou audio knihovnu nástroj, který iteraci zkrátí na pohyb posuvníku, a přitom na konci vydá spolehlivý produkční kód — ne ruční přepis hodnot z poznámek.

Řešení

Postavili jsme desktopovou aplikaci na webových technologiích s vizuálním editorem audio řetězců. Živé ladění řeší komunikační vrstva přes debugovací rozhraní: nástroj čte a zapisuje parametry přímo v paměti běžícího firmwaru, do kterého se integruje malý platformně nezávislý ovladač. Generátor kódu převádí vizuální graf na C/C++ hlavičky pro konkrétní platformu. Nativní simulátor audio knihovny umožňuje ladit offline, bez připojené desky. Aplikace se distribuuje jako samostatný instalátor a její ukázková integrace je součástí oficiálního SDK výrobce.

Klíčové funkce

  • vizuální skládání audio řetězce z uzlů (EQ, basy, výšky, virtualizace, hlasitost)
  • ladění parametrů na běžící desce v reálném čase, bez rekompilace
  • živé grafy frekvenčních odezev a spektrální analyzátor
  • generování produkčního C/C++ kódu z vizuálního návrhu
  • offline simulátor audio knihovny pro práci bez hardwaru
  • projekty s undo/redo a průvodce pro nové uživatele
  • podpora řady mikrokontrolérových platforem výrobce

Výsledky a přínosy

  • iterace ladění z minut na sekundy — posuvník místo rekompilace
  • vygenerovaný kód místo ručního přepisu hodnot — méně chyb v integraci
  • ukázková integrace zařazena do oficiálního SDK výrobce
  • víceleté produkční nasazení s průběžnými verzemi

Další projekty a reference

Zobrazit všechny projekty →