Posibles técnicas de síntesis de órganos de armonio/reed

Estoy trabajando en un proyecto para hacer un sintetizador para RaspberryPi capaz de tocar Harmonium/Reed Organ usando un teclado MIDI externo. Lo estoy haciendo en Python 2.7 usando Numpy. Hasta ahora, he completado la primera fase de mi proyecto, que incluye la creación de una interfaz de usuario y un script de síntesis principal, la interfaz con el teclado y el mapeo de notas con teclas. En mi segunda fase, planeo moverlo a RaspberryPi desde la PC y mejorar la calidad del sonido.

Para sintetizar el sonido de Harmonium en la primera fase, grabé muestras de Harmonium e hice una transformada de Fourier en ellas y extraje las frecuencias dominantes de ellas y luego escribí la función de síntesis agregando ondas sinusoidales de esas frecuencias. Sin embargo, el sonido generado está bien para la prueba, pero no está a la par con el sonido original de Harmonium, lo cual es inevitable para la versión final del proyecto. Por lo tanto, solicito que me sugieran las técnicas para generar el sonido de armonio. ¿También es posible generar con osciladores, filtros, etc., que está disponible en Helm Synthesizer ? y si es así, ¿cómo sintonizarlos para generar una onda de armonio perfecta? Por favor ayúdenme ya que soy principiante en este campo.

¡Gracias!

¡Bienvenido a Music.SE! Buena pregunta, pero es casi seguro que obtendrá mejores respuestas en SoundDesign.SE.

Respuestas (2)

Simplemente producir las mismas frecuencias no le dará las relaciones de fase del sonido. Esto se vuelve mucho peor cuando realiza la "transformada de Fourier" (que es una herramienta de análisis teórico para la cual existe un algoritmo rápido dadas condiciones discretizadas que en la práctica nunca se cumplen): las relaciones de fase y frecuencias reales se distribuyen en varios "contenedores de frecuencia" y dan como resultado patrones de fase que son difíciles de resintetizar.

Sin relaciones de fase confiables, no obtiene más que calidad de "sonido ambiental", y los intervalos de frecuencia determinarán qué tan lejos aterrizará.

Para una síntesis algo amistosa, desea basar su solución en el armonio impulsado por un oscilador primario (lengüeta de oscilación libre) y circuitos resonantes. Los circuitos resonantes generalmente se pueden modelar de manera algo tosca utilizando el análisis LPC, y las señales residuales estarán más cerca de la excitación del oscilador primario que con lo que comienza. Probablemente terminará reproduciendo formas de onda para ellos e interpolando entre varias formas de onda dependientes de la presión (el órgano con su operación de presión única, suponiendo una excelente distribución del viento, es más fácil de modelar aquí).

Si esto fuera material trivial y tarifa estándar, la industria de la música se vería diferente.

Para su proyecto, podría tener sentido olvidarse de cualquier intento de síntesis y simplemente reproducir material muestreado con envolventes básicas.

También he estado trabajando en un armonio electrónico y, después de experimentar con la síntesis, estoy de acuerdo con el usuario 44435 en que tiene sentido reproducir material muestreado. Estoy usando Javascript AudioContext. Cada uno de los 42 sonidos de lengüeta de mi armonio se graban como archivos mp3 individuales y se decodifican y almacenan en un búfer usando createBufferSource y decodeAudioData. Las notas musicales están entonces disponibles para tocarlas instantáneamente, solas o en combinación. Tengo un tubo de drenaje largo y flexible que compré en Home Depot por $20 y lo usaré con un soplador a distancia para proporcionar una presión de aire constante al armonio para muestrear diez segundos de sonido para cada tecla.