Actualmente estoy trabajando en un proyecto personal: crear una biblioteca para la síntesis de audio en tiempo real en Flash. En resumen: herramientas para conectar wavegenerators, filtros, mezcladores, etc. entre sí y suministrar la tarjeta de sonido con datos brutos (en tiempo real). Algo como max/msp o Reaktor.¿Alguien tiene algún consejo sobre la programación de síntesis de audio en tiempo real?
Ya tengo algunas cosas útiles, pero me pregunto si la configuración básica que escribí es correcta. No quiero tener problemas después que me obliguen a cambiar el núcleo de mi aplicación (aunque eso siempre puede suceder).
Básicamente, lo que hago ahora es comenzar al final de la cadena, en el lugar donde los datos de sonido (en bruto) salen '(a la tarjeta de sonido). Para hacer eso, necesito escribir trozos de bytes (ByteArrays) en un objeto, y para obtener ese fragmento pido cualquier módulo que esté conectado a mi módulo 'Sound Out' para darme su parte. Ese módulo hace la misma solicitud al módulo que está conectado a su entrada, y eso sigue sucediendo hasta que se alcanza el inicio de la cadena.
¿Es este el enfoque correcto? Puedo imaginarme encontrándome con problemas si hay un feedbackloop, o si hay otro módulo sin salida: si tuviera que conectar un espectrumanalyzer en algún lugar, sería un callejón sin salida en la cadena (un módulo sin salidas, solo una entrada). En mi configuración actual, dicho módulo no funcionaría porque solo comencé a calcular desde el módulo de salida de sonido.
¿Alguien tiene experiencia con la programación de algo como esto? Estaría muy interesado en algunas ideas sobre el enfoque correcto. (Para mayor claridad: no estoy buscando implementaciones Flash específicas, y es por eso que no etiqueté esta pregunta en flash o actionscript)