Making Audio Plugins Part 1: Introduction
Benvenuto! In questa serie di tutorial impareremo come creare plugin audio che funzionano come VST, VST3, AU, RTAS, AAX o come applicazione standalone.
I plugin audio sono programmi che vengono caricati in un software host (come Ableton Live, Logic o REAPER). Elaborano dati audio e / o MIDI e possono avere un’interfaccia utente grafica. Ecco tre esempi (U-He Zebra, Sonalksis FreeG e D16 Decimort):
Come puoi vedere, la GUI di solito contiene alcuni controlli (la manopola è la più comune) che cambiano il modo in cui il plugin elabora i dati in entrata. Un plugin ha preset (nello screenshot sono chiamati Combo ed Emulatore) che memorizzano tutte le posizioni delle manopole e altri valori.
Inizieremo con un semplice plugin di distorsione. Dopo di che, creeremo questo plugin sintetizzatore sottrattivo passo dopo passo:
Useremo C++ e la libreria WDL-OL. Si basa su Cockos WDL (pronunciato whittle). Fondamentalmente fa un sacco di lavoro per noi, soprattutto:
- Progetti Xcode / Visual Studio già pronti
- Crea i formati VST, AudioUnit, VST3 e RTAS da una base di codice: basta scegliere il formato del plugin e fare clic su esegui!
- Crea eseguibili a 32/64 bit
- Fai funzionare il tuo plugin come applicazione Win/Mac autonoma
- La maggior parte dei controlli GUI utilizzati nei plugin audio
Ti dà anche la maggior parte dei controlli GUI utilizzati nei plugin audio e alcuni algoritmi audio comunemente usati come ad esempio il ricampionamento. Questo thread del forum ha screenshot di molti plugin che sono stati fatti usando WDL.
I diversi formati di plugin fanno tutti più o meno lo stesso, quindi normalmente ci sarebbe un sacco di copia & incolla nel tuo codice. Come programmatore vuoi rimanere ASCIUTTO, quindi prima o poi scriverai un livello di astrazione sui diversi formati. Questo lavoro è già stato fatto sotto forma di IPlug, che fa parte di WDL. Queste sono le parti fastidiose dello sviluppo di plugin audio, quindi ora possiamo concentrarci sulle cose divertenti, come ad esempio:
- Come il plugin elabora l’audio/MIDI in entrata
- Come appare il plugin
- Come si integra con l’host (automazione, preset, ecc.)
Un’altra cosa buona di WDL è la sua licenza permissiva: è possibile utilizzarlo liberamente per applicazioni commerciali. Vedi i link qui sopra per i dettagli.
Come faremo
La caccia è migliore della cattura.
Nella programmazione, il risultato è gratificante, ma il viaggio è dove impariamo. In questa serie di tutorial, non ti darò solo elenchi di codici lunghi con la soluzione perfetta. Inizieremo con qualcosa che funziona e migliorarlo non appena affrontiamo problemi.
Lo svantaggio è che scriverai codice che sostituirai in seguito con qualcosa di meglio. Come programmatore, probabilmente sei abituato a questo. Il primo vantaggio: non sarà così travolgente perché ci avvicineremo alla soluzione passo dopo passo invece di saltare lì. Il secondo vantaggio è che potremmo imparare lezioni di programmazione apprezzabili lungo la strada.
Questa serie non riguarda il calcolo della matematica complessa a mano. Si tratta di creare un software fantastico che puoi dare ai tuoi amici produttori musicali in modo che possano creare una linea di basso più grassa.
Cosa ti serve
- Un Mac con Xcode 4 o versione successiva o un sistema Windows con Visual C++ 2010 o versione successiva. Userò un Mac, ma è possibile utilizzare quasi tutte le informazioni su Windows pure.
- Una certa comprensione del C++ (Sintassi, puntatori, OOP di base, Memoria). Potresti aver sentito che il C++ è molto difficile, ma non useremo troppa roba avanzata.
- Alcune conoscenze sull’audio (digitale) in generale: Cosa significa ampiezza e frequenza, cosa fa un filtro, come l’audio viene memorizzato a una frequenza di campionamento e profondità di bit. Se hai registrato o prodotto musica prima, probabilmente sei ben impostato.
- Interesse per l’elaborazione del segnale digitale e la programmazione GUI: Questi saranno i due temi principali di questa serie. Se non si dispone di alcuna conoscenza DSP precedente a tutti, potrebbe essere necessario leggere su alcuni argomenti ad un certo punto. Cercherò di fornire ulteriori collegamenti di tipo di lettura ogni volta che è il caso.
Risorse utili
Ecco alcuni link che potrebbero essere utili in seguito:
- Stack Overflow: cerca cose come avvisi oscuri del compilatore e scopri cosa significano.
- Guida DSP: ottimo libro gratuito, copre probabilmente più di quanto useremo. Fare riferimento ad esso se da qualche parte sulla strada non si capisce un concetto DSP.
Sembra eccitante? La prossima volta organizzeremo tutto ciò di cui abbiamo bisogno per iniziare!