Tome, por ejemplo, el VSTi Triforce, por Tweakbench. Cuando se carga en cualquier host VST en el mercado, permite al host enviar una señal (presumiblemente MIDI) al VSTi. El VSTi procesará esa señal y emitirá audio sintetizado creado por un instrumento de software dentro del VSTi.¿Cómo me relacionaría programáticamente con los complementos de VST (i) para sintetizar audio?
Por ejemplo, al enviar un A4 (nota MIDI, creo) al VSTi causará que se sintetice el A por encima del medio C. Envía los datos de audio al host VST, que luego podría reproducirlos en mi altavoces o guárdelo en .wav o en algún otro formato de archivo de audio.
Digamos que tengo Trifuerza, y estoy tratando de escribir un programa en mi idioma de su elección que podría interactuar con el VSTi mediante el envío de una nota A4 que se sintetizan y guardarlo automáticamente en un archivo en el sistema de ?
Eventualmente, me gustaría poder analizar todo un archivo MIDI de una pista (usando bibliotecas establecidas y estables ya disponibles para este propósito) y enviarlo al VSTi para "renderizarlo"/sintetizarlo en un audio archivo.
¿Cómo voy a hacer esto, y en qué idioma debo buscar para construir la estructura de núcleo?
En última instancia, se utilizará en un proyecto basado en Ruby, por lo que cualquier sugerencia a los recursos específicos de Ruby sería agradable también.
Sin embargo, estoy tratando de entender básicamente cómo funciona la API de un VSTi. (Me he dado cuenta de que esta pregunta está muy relacionada con la cuestión de construir un host VST en primer lugar, aunque solo pueda guardar las salidas VST en un archivo y no reproducirlas, y con un alcance considerablemente menor)
Gracias de antemano por cualquier ayuda =)
Para cualquiera que encuentre esta pregunta en el futuro, la biblioteca JUCE C++ (http://www.juce.com/) podría ser un buen punto de partida para construir un sistema como este; tiene clases para MIDI, audio, alojamiento de complementos y escritura de complementos, y está bien probado y ampliamente utilizado. – btown