Creación de Complementos de Audio Parte 1: Introducción
¡Bienvenido! En esta serie de tutoriales aprenderemos a crear complementos de audio que se ejecuten como VST, VST3, AU, RTAS, AAX o como una aplicación independiente.
Los complementos de audio son programas que se cargan en un software host (como Ableton Live, Logic o REAPER). Procesan datos de audio y / o MIDI y pueden tener una interfaz gráfica de usuario. Estos son tres ejemplos (U-He Zebra, Sonalksis FreeG y D16 Decimort):
Como puede ver, la interfaz gráfica de usuario generalmente contiene algunos controles (el mando es el más común) que cambian la forma en que el complemento procesa los datos entrantes. Un plugin tiene preajustes (en la captura de pantalla se llaman Combo y Emulador) que almacenan todas las posiciones de mando y otros valores.
Comenzaremos con un plugin de distorsión simple. Después de eso, crearemos este complemento de sintetizador sustractivo paso a paso:
Usaremos C++ y la biblioteca WDL-OL. Se basa en Cockos WDL (pronunciado «tallar»). Básicamente hace mucho trabajo para nosotros, lo más importante:
- Proyectos Xcode / Visual Studio listos para usar
- Cree formatos VST, AudioUnit, VST3 y RTAS a partir de una base de código: Simplemente elija el formato de complemento y haga clic en Ejecutar!
- Crear ejecutables de 32/64 bits
- Hacer que su complemento se ejecute como una aplicación Win/Mac independiente
- La mayoría de los controles GUI utilizados en complementos de audio
También le ofrece la mayoría de los controles GUI utilizados en complementos de audio, y algunos algoritmos de audio comúnmente utilizados como, por ejemplo, el remuestreo. Este hilo del foro tiene capturas de pantalla de muchos complementos que se hicieron usando WDL.
Los diferentes formatos de plugin hacen más o menos lo mismo, por lo que normalmente habría una gran cantidad de copiar & pegar en su código. Como programador, desea mantenerse seco, por lo que tarde o temprano escribiría una capa de abstracción sobre los diferentes formatos. Este trabajo ya se ha realizado en forma de iPlug, que forma parte de la Biblioteca Digital Mundial. Estas son las partes molestas del desarrollo de complementos de audio, por lo que ahora podemos centrarnos en las cosas divertidas, como:
- Cómo procesa el plugin Audio / MIDI entrante
- Cómo se ve el plugin
- Cómo se integra con el host (automatización, ajustes preestablecidos, etc.)
Otra cosa buena de WDL es su licencia permisiva: puede usarla libremente para aplicaciones comerciales. Consulte los enlaces anteriores para obtener más detalles.
Cómo haremos esto
La persecución es mejor que la captura.
En programación, el resultado es gratificante, pero el viaje es donde aprendemos. En esta serie de tutoriales, no solo le daré listados de código largos con la solución perfecta. Comenzaremos con algo que funcione y lo mejoraremos tan pronto como enfrentemos problemas.
La desventaja es que escribirás código que luego reemplazarás con algo mejor. Como programador, probablemente estés acostumbrado a eso. La primera ventaja: No será tan abrumadora porque abordaremos la solución paso a paso en lugar de simplemente saltar allí. La segunda ventaja es que podemos aprender lecciones de programación valiosas a lo largo del camino.
Esta serie no se trata de calcular matemáticas complejas a mano. Se trata de crear un software increíble que puedes regalar a tus amigos productores de música para que puedan hacer una línea de bajo más gorda.
Lo que necesitará
- Un Mac con Xcode 4 o posterior o un sistema Windows con Visual C++ 2010 o posterior. Usaré un Mac, pero también puedes usar casi toda la información en Windows.
- Comprensión de C++ (Sintaxis, Punteros, POOP básico, Memoria). Es posible que haya escuchado que C++ es muy difícil, pero no vamos a usar demasiado de las cosas avanzadas.
- Algunos conocimientos sobre el audio (digital) en general: Qué significa amplitud y frecuencia, qué hace un filtro, cómo se almacena el audio a una frecuencia de muestreo y profundidad de bits. Si has grabado o producido música antes, probablemente estés bien preparado.
- Interés por el Procesamiento de Señales Digitales y la Programación de GUI: Estos serán los dos temas principales de esta serie. Si no tiene ningún conocimiento previo de DSP, es posible que tenga que leer algunos temas en algún momento. Trataré de proporcionar enlaces de tipo de lectura adicional siempre que sea el caso.
Recursos útiles
Aquí hay algunos enlaces que pueden ser útiles más adelante:
- Desbordamiento de pila: Busque cosas como advertencias de compiladores oscuras y descubra lo que significan.
- Guía DSP: Muy buen libro gratuito, portadas probablemente más de las que usaremos. Refiérase a él si en algún lugar del camino no entiende un concepto de DSP.
Suena interesante? ¡La próxima vez prepararemos todo lo que necesitamos para empezar!