Otázka:
Čip / deska pro přehrávání a míchání zvukových vzorků s nízkou latencí?
Horselover Fat
2012-06-25 00:25:56 UTC
view on stackexchange narkive permalink

Obecně bych chtěl vybudovat vestavěný systém, který je schopen přehrávat více vysoce kvalitních zvukových vzorků současně s velmi nízkou latencí (např. od spouštění ke zvuku). Může se jednat o více než 4 000 jednotlivých samplů využívajících 2 GB úložného prostoru a současně může hrát 50 z těchto samplů. Konkrétně chci vybudovat vnitřky nástroje digitálního klavíru založeného na vzorcích.

Jaká je nejjednodušší (tj. snadná implementace) kombinace čipu a desky, které by toho bylo možno dosáhnout (včetně způsobu ukládání vzorků)?

Chtěl bych poukázat na to, že ti má na svém ukázkovém programu mnoho DSP, takže můžete požádat o jeden na základě specifikací, a pokud nesplňuje vaše potřeby, nedošlo k žádnému poškození.
Jeden odpovědět:
Thorn
2012-06-25 00:50:56 UTC
view on stackexchange narkive permalink

Zní to jako STM32F4 (nebo možná jiný MCU Cortex-M4F) s vhodným kodekem I2S. Běží na 168 MHz a má rozhraní SDIO pro karty microSD, rozhraní I2S, instrukce DSP, DMA, FSMC pro připojení externí RAM a flash atd. Určitě nemá dostatek interní RAM pro uložení 50 vzorků najednou, ačkoli , takže pravděpodobně budete potřebovat externí RAM. Pokud nepotřebujete dělat hodně DSP v reálném čase, měl by mít dostatek energie k provedení práce.

Deska STM32F4Discovery má zvukový kodek I2S, ale ne slot microSD (nebo jakýkoli druh externí paměti) na desce.

Pokud se však ukáže, že Cortex-M4 nestačí, pravděpodobně budete muset začít hledat nějaký „seriózní“ hardware, jako například:

  • FPGA s řídícím CPU a hardwarovým mixováním a I2S enginy,

  • nebo „skutečný“ DSP od TI nebo AD (pravděpodobně nejdražší řešení, pokud jde o vývojové nástroje),

  • nebo možná ARM CPU, jako je ARM9, ARM11 nebo Cortex-A, jak je uvedeno v Beagleboard, Raspberry Pi atd., Z nichž některá mají rozšíření DSP nebo samostatná jádra DSP.

Existuje také problém s načítáním vzorků do paměti RAM z hlavního úložiště. Pokud vaše požadavky na latenci zahrnují načtení všech 50 vzorků pokaždé, můžete mít potíže. Pokud je lze předem načíst, mnohem lépe. Ve skutečnosti vám může dokonce uniknout streamování vzorků přímo z flash úložiště, pokud je (a sběrnice) dostatečně rychlá, ale budete si muset dávat pozor na chvění. Než se rozhodnete pro návrhová rozhodnutí, musíte provést pečlivé výpočty, které zohlední váš načasovací rozpočet a latenci / výkon v každé fázi vašeho systému.

Vzorky lze určitě předem načíst, takže by to neměl být problém. Mít rezervní energii pro další funkce, jako je reverb atd., By bylo ve skutečnosti poněkud užitečné, takže si myslím, že i přes další výdaje může být cestou výkonnější doporučení. Díky za tuto podrobnou odpověď.
Je možné streamovat vzorky z SD karty. Pokud jsou jednotlivé vzorky malé, můžete je ve skutečnosti vytáhnout pouze z paměťového média do systémové paměti RAM, když jsou potřeba.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...