fazendo Plugins de áudio Parte 1: Introdução
Bem-vindo! Nesta série de tutoriais, aprenderemos como criar plug-ins de áudio que são executados como VST, VST3, AU, RTAS, AAX ou como um aplicativo independente.
plugins de áudio são programas que são carregados em um software host (como Ableton Live, Logic ou REAPER). Eles processam dados de áudio e/ou MIDI e podem ter uma interface gráfica do Usuário. Aqui estão três exemplos (u-he Zebra, Sonalksis FreeG e D16 Decimort):
como você pode ver, a GUI geralmente contém alguns controles (sendo o botão o mais comum) que mudam a forma como o plug-in processa os dados recebidos. Um plugin tem predefinições (na captura de tela, elas são chamadas de Combo e emulador) que armazenam todas as posições dos botões e outros valores.
começaremos com um simples plugin de distorção. Depois disso, criaremos este plugin de sintetizador subtrativo passo a passo:
usaremos C++ e a biblioteca WDL-ol. É baseado em Cocko WDL (pronuncia-se whittle). Basicamente, faz muito trabalho para nós, o mais importante:
- projetos Xcode / Visual Studio prontos
- crie formatos VST, AudioUnit, VST3 e RTAS de uma base de código: basta escolher o formato do plugin e clicar em Executar!
- crie executáveis de 32/64 bits
- faça seu plug-in funcionar como um aplicativo Win/Mac autônomo
- a maioria dos controles GUI usados em plug-ins de áudio
ele também oferece a maioria dos controles GUI usados em plug-ins de áudio e alguns algoritmos de áudio comumente usados, como, por exemplo, reamostragem. Este tópico do fórum tem capturas de tela de muitos plugins que foram feitos usando o WDL.
os diferentes formatos de plug-in fazem mais ou menos o mesmo, então normalmente haveria muita cópia & colar no seu código. Como programador, você quer ficar seco, então, mais cedo ou mais tarde, você escreveria uma camada de abstração sobre os diferentes formatos. Este trabalho já foi feito na forma de IPlug, que faz parte do WDL. Estas são as partes irritantes do desenvolvimento de plug-ins de áudio, então agora podemos nos concentrar nas coisas divertidas, como:
- como o plugin processa áudio/MIDI de entrada
- como o plugin se parece
- como ele se integra com o host (automação, predefinições, etc.)
outra coisa boa sobre o WDL é sua licença permissiva: você pode usá-lo livremente para aplicativos comerciais. Veja os links acima para detalhes.
como vamos fazer isso
a perseguição é melhor do que a captura.
na programação, o resultado é gratificante, mas a jornada é onde aprendemos. Nesta série tutorial, eu não vou apenas dar-lhe longas listas de códigos com a solução perfeita. Vamos começar com algo que funciona e melhorá-lo assim que enfrentarmos problemas.
a desvantagem é que você escreverá um código que mais tarde substituirá por algo melhor. Como programador, você provavelmente está acostumado com isso. A primeira vantagem: não será tão esmagadora porque abordaremos a solução passo a passo em vez de apenas pular lá. A segunda vantagem é que podemos aprender lições de programação valiosas ao longo do caminho.
Esta série não se trata de calcular matemática complexa manualmente. Trata-se de criar um software incrível que você pode dar aos seus amigos produtores de música para que eles possam fazer uma linha de baixo Mais Gorda.
o que você precisará
- um Mac executando Xcode 4 ou posterior ou um sistema Windows com Visual C++ 2010 ou posterior. Vou usar um Mac, mas você também pode usar quase todas as informações no Windows.
- alguma compreensão de C++ (sintaxe, ponteiros, OOP básico, memória). Você pode ter ouvido falar que c++ é muito difícil, mas não vamos usar muito do material avançado.
- alguns conhecimentos sobre áudio (digital) em geral: O que significa amplitude e frequência, o que um filtro faz, como o áudio é armazenado a uma taxa de amostragem e profundidade de bits. Se você já gravou ou produziu música antes, provavelmente está bem definido.
- interesse para processamento de sinal Digital e programação GUI: esses serão os dois principais tópicos desta série. Se você não tem nenhum conhecimento prévio DSP em tudo, você pode ter que ler sobre alguns tópicos em algum momento. Vou tentar fornecer mais links de tipo de leitura sempre que for esse o caso.
recursos úteis
Aqui estão alguns links que podem ser úteis mais tarde:
- Stack Overflow: pesquise coisas como avisos obscuros do compilador e descubra o que eles significam.
- guia DSP: livro livre Muito bom, cobre provavelmente mais do que usaremos. Consulte-o se em algum lugar no caminho você não entender um conceito DSP.
parece emocionante? Da próxima vez, vamos configurar tudo o que precisamos para começar!