¿Qué se necesita saber para construir un sintetizador de software?
19
Para alguien que tiene cierta experiencia en el desarrollo de software, ama sus sintetizadores y conoce los [muy] básicos de la representación de audio digital, ¿cuáles son los primeros pasos que debe seguir para programar un sintetizador de música, DSP-sabio?
Obtenga Real Sound Synthesis para aplicaciones interactivas y descargue Synthesis Toolkit . Eso le dará introducciones prácticas y código fuente de calidad para la mayoría de los métodos de síntesis digital en uso. Luego, elija el método que le resulte más interesante y comience a modificar el código STK correspondiente para hacer lo que desee. Luego intente construir algo similar desde cero.
Desde una perspectiva de filtro / efectos digitales, otro buen punto de partida es echar un vistazo a Fausto . Ni siquiera tiene que aprender su lenguaje de procesamiento de señal de diagrama de bloques, solo puede usar los ejemplos para volcar el código de plantilla VST, LADSPA, etc. como una forma rápida de hacer que algo se ejecute [que luego puede modificar].
Dicho esto, es aún más fácil comenzar con la reproducción de sonido, que es básicamente lo mismo, pero sin preocuparse por la operación en tiempo real o la interactividad. Simplemente guarde los archivos wav en el disco. Es una excelente manera de experimentar con nuevas técnicas antes de pasar por la molestia de hacer que se ejecuten rápidamente.
Respuesta perfecta: abarca una cantidad muy equilibrada de asuntos. ¡Gracias!
vemv
6
Leería un libro introductorio sobre DSP más algunos libros sobre el tema de la música por computadora (Amazon y otras librerías enumeran varios). También hay una gran cantidad de material de curso de Stanford sobre DSP y síntesis de sonido. Los libros sobre el sistema auditivo humano y la psicoacústica también podrían ser útiles.
Primero debe decidir qué tipo de sintetizador desea construir: aditivo, FM, basado en muestras, etc. También debe decidir si desea emular algún tipo de sintetizador analógico existente o simplemente diseñar el suyo propio.
El resto es bastante fácil: solo necesita implementar los diversos bloques de construcción del sintetizador (por ejemplo, osciladores, filtros, generadores de ruido, formadores de envolventes, etc.) en el software y luego implementar una forma de "conectarlos" juntos y controlar sus parámetros.
Estoy bastante sorprendido de que nadie haya mencionado SynthMaker todavía. Es ridículamente fácil de usar, y aunque hace que sea difícil ir a un nivel bajo (asegúrese de usar el modo de desarrollador ), puede aprender mucho sobre la arquitectura de sintetizador y también sobre DSP general. Y en realidad puedes hacer uso de las cosas construidas con él, de hecho, lo uso para construir casi todos mis complementos.
Como desarrollador de software, siempre he sido reacio a los asistentes, pero apuesto a que DSP es un mundo profundo, por lo que SynthMaker podría ser útil. Además, un par de compañeros han tenido una buena experiencia con él :)
vemv
Yo mismo iba a mencionar SynthMaker. Es un gran programa.
Matt M.
4
Como algunos de los otros contribuyentes han mencionado, un buen manual sobre DSP es imprescindible. Este es un gran libro> http://www.dspguide.com/ y el autor ha proporcionado amablemente una descarga completa y gratuita en PDF. Otro libro de curso de tecnología musical común que ofrece buenas vistas de alto nivel de varias técnicas de síntesis es> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823 . También reiteraría lo que sugirió el contribuyente anterior, Synthmaker, que es un entorno de desarrollo visual muy conveniente para desarrollar complementos VST. Finalmente, si solo quieres experimentar sin profundizar en ello, puedes intentar usar Csound, que es un lenguaje de programación diseñado específicamente para la síntesis de sonido.
Solo quiero intervenir ya que la mayoría de las respuestas se centran en los problemas de DSP. Si no utiliza un sistema de diseño de bloques como SynthMaker, pasará mucho tiempo de desarrollo tratando con la gestión de voz. Si estaba escribiendo un complemento de instrumento VSTi desde cero, la curva de aprendizaje es mucho más larga que para los complementos de efectos. Tendrá que administrar cada objeto de nota, decidir qué sucede cuando hay 20 notas si su DSP es lo suficientemente rápido para 16 voces, responder a pitch bend, portamento, modulación, etc. Esta no es una tarea fácil y es por eso que Recomendamos comenzar con Buzz o SynthMaker, y rodar el suyo cuando finalmente se encuentre con una pared.
Leería un libro introductorio sobre DSP más algunos libros sobre el tema de la música por computadora (Amazon y otras librerías enumeran varios). También hay una gran cantidad de material de curso de Stanford sobre DSP y síntesis de sonido. Los libros sobre el sistema auditivo humano y la psicoacústica también podrían ser útiles.
fuente
Primero debe decidir qué tipo de sintetizador desea construir: aditivo, FM, basado en muestras, etc. También debe decidir si desea emular algún tipo de sintetizador analógico existente o simplemente diseñar el suyo propio.
El resto es bastante fácil: solo necesita implementar los diversos bloques de construcción del sintetizador (por ejemplo, osciladores, filtros, generadores de ruido, formadores de envolventes, etc.) en el software y luego implementar una forma de "conectarlos" juntos y controlar sus parámetros.
Vea el libro de Hal Chamberlin, Aplicaciones musicales de microprocesadores , que es una buena introducción a muchos de los conceptos básicos.
fuente
Estoy bastante sorprendido de que nadie haya mencionado SynthMaker todavía. Es ridículamente fácil de usar, y aunque hace que sea difícil ir a un nivel bajo (asegúrese de usar el modo de desarrollador ), puede aprender mucho sobre la arquitectura de sintetizador y también sobre DSP general. Y en realidad puedes hacer uso de las cosas construidas con él, de hecho, lo uso para construir casi todos mis complementos.
fuente
Como algunos de los otros contribuyentes han mencionado, un buen manual sobre DSP es imprescindible. Este es un gran libro> http://www.dspguide.com/ y el autor ha proporcionado amablemente una descarga completa y gratuita en PDF. Otro libro de curso de tecnología musical común que ofrece buenas vistas de alto nivel de varias técnicas de síntesis es> http://www.amazon.com/Computer-Music-Tutorial-Curtis-Roads/dp/0262680823 . También reiteraría lo que sugirió el contribuyente anterior, Synthmaker, que es un entorno de desarrollo visual muy conveniente para desarrollar complementos VST. Finalmente, si solo quieres experimentar sin profundizar en ello, puedes intentar usar Csound, que es un lenguaje de programación diseñado específicamente para la síntesis de sonido.
fuente
Solo quiero intervenir ya que la mayoría de las respuestas se centran en los problemas de DSP. Si no utiliza un sistema de diseño de bloques como SynthMaker, pasará mucho tiempo de desarrollo tratando con la gestión de voz. Si estaba escribiendo un complemento de instrumento VSTi desde cero, la curva de aprendizaje es mucho más larga que para los complementos de efectos. Tendrá que administrar cada objeto de nota, decidir qué sucede cuando hay 20 notas si su DSP es lo suficientemente rápido para 16 voces, responder a pitch bend, portamento, modulación, etc. Esta no es una tarea fácil y es por eso que Recomendamos comenzar con Buzz o SynthMaker, y rodar el suyo cuando finalmente se encuentre con una pared.
fuente