Hagamos un poco de matemáticas:
16 tracks * 44 ksample/s *2 channels *16 bit = 22.528 Mbps
Esta es la velocidad mínima que necesita para la interfaz SPI, si desea transmitir todos los datos a través de un único puerto serie. Se puede hacer con un reloj adecuado, pero necesita una tarjeta SD rápida ( vea aquí la velocidad ).
Luego está el microcontrolador: debe agregar 16 pistas y reproducirlas a través de un DAC, de modo que tenga 44 * 2 ksamples para cada pista, o
$$ 44 \ cdot 10 ^ {3} \ cdot 2 \ cdot 16 = 1408 \ cdot 10 ^ {3} $$
Las sumas de 16 bits para cada muestra (probablemente con algún escalado para evitar el desbordamiento) dan como resultado operaciones de aproximadamente 1.4 M / seg, que pueden ser manejadas por un buen microcontrolador de 32 bits. Probablemente un Cortex-M3, o mejor M4 (pero M3 probablemente esté mejor documentado) puede funcionar para usted.
Acabo de ver este que se puede sincronizar hasta 204 MHz, tiene 4 interfaces SPI , hasta 40 MB / s, y también tiene una unidad de punto flotante que puede ayudar en el proceso de acumulación (pero puede ser demasiado lento). También puede usar la estructura de doble núcleo para manejar por separado el procesamiento y la salida.
Pero para el DAC, creo que deberías elegir un convertidor externo, diseñado específicamente para audio (lo que significa probablemente 16 bits).
Actualizar
No está tan claro cómo vas a gestionar las 16 pistas diferentes en la SD:
- ¿Qué hay de las pistas de precarga en la memoria interna de la MCU?
Verifique la interfaz I 2 S , que es un 4- Protocolo serial de cable especialmente diseñado para aplicaciones de audio.
Pregunta importante:
Dijo que también desea grabar pistas y guardarlas en la tarjeta SD: ¿desea hacer eso al mismo tiempo? Necesita el controlador para codificar el audio en WAV y almacenarlo, y el ancho de banda de escritura de la tarjeta SD es inferior.
La función de bucle NECESITARÁ algo de memoria intermedia (también puede usar la memoria interna) porque el bucle requiere operación en tiempo real, y la tarjeta SD introducirá demasiada latencia. Es posible que necesite una memoria RAM externa, y también puede pensar en almacenar algunos datos allí para reducir los retrasos.