göra Ljudinsticksprogram Del 1: Introduktion
Välkommen! I den här handledningsserien kommer vi att lära oss hur man skapar ljudpluggar som körs som VST, VST3, AU, RTAS, AAX eller som en fristående applikation.
Ljudinsticksprogram är program som laddas i en värdprogramvara (som Ableton Live, Logic eller REAPER). De bearbetar ljud-och / eller MIDI-data och kan ha ett grafiskt användargränssnitt. Här är tre exempel (U-he Zebra, Sonalksis FreeG och D16 Decimort):
som du kan se innehåller GUI vanligtvis några kontroller (ratten är den vanligaste) som ändrar hur plugin bearbetar inkommande data. Ett plugin har förinställningar (i skärmdumpen kallas de Combo och Emulator) som lagrar alla knopppositioner och andra värden.
vi börjar med en enkel distorsion plugin. Därefter skapar vi detta subtraktiva synthesizer-plugin steg för steg:
vi kommer att använda C++ och WDL-ol-biblioteket. Den är baserad på Cockos WDL (uttalad whittle). Det gör i princip mycket arbete för oss, viktigast av allt:
- färdiga Xcode / Visual Studio-projekt
- skapa VST -, AudioUnit -, VST3-och RTAS-format från en kodbas: välj bara plugin-formatet och klicka på Kör!
- skapa 32/64-bitars körbara
- gör din plugin körs som en fristående Win/Mac-program
- de flesta GUI kontroller som används i ljud plugins
det ger dig också de flesta GUI kontroller som används i ljud plugins, och några vanliga ljud algoritmer som till exempel sampling. Denna forumtråd har skärmdumpar av många plugins som gjordes med WDL.
de olika plugin-formaten gör alla mer eller mindre samma, så normalt skulle det finnas mycket kopia & klistra in i din kod. Som programmerare vill du hålla dig torr, så förr eller senare skulle du skriva ett abstraktionslager över de olika formaten. Detta arbete har redan gjorts i form av IPlug, som ingår i WDL. Det här är de irriterande delarna av ljudpluginutveckling, så vi kan nu fokusera på de roliga sakerna, till exempel:
- hur plugin bearbetar inkommande ljud / MIDI
- hur plugin ser ut
- hur det integreras med värden (automatisering, förinställningar etc.)
en annan bra sak med WDL är dess tillåtna licens: Du kan använda den fritt för kommersiella applikationer. Se länkarna ovan för mer information.
hur vi ska göra detta
jakten är bättre än fångsten.
i programmering är resultatet givande, men resan är där vi lär oss. I den här handledningsserien kommer jag inte bara att ge dig långa kodlistor med den perfekta lösningen. Vi börjar med något som fungerar och förbättrar det så snart vi står inför problem.
nackdelen är att du kommer att skriva kod som du senare kommer att ersätta med något bättre. Som programmerare är du förmodligen van vid det. Den första fördelen: Det blir inte så överväldigande eftersom vi kommer att närma oss lösningen steg för steg istället för att bara hoppa där. Den andra fördelen är att vi kan lära oss värdefulla programmeringslektioner på vägen.
denna serie handlar inte om att beräkna komplex matematik för hand. Det handlar om att skapa fantastisk programvara som du kan ge till dina musikproducentvänner så att de kan göra en fetare baslinje.
vad du behöver
- en Mac som kör Xcode 4 eller senare eller ett Windows-system med Visual C++ 2010 eller senare. Jag använder en Mac, men du kan använda nästan all information på Windows också.
- viss förståelse för C++ (Syntax, pekare, grundläggande OOP, minne). Du kanske har hört att C++ är väldigt svårt, men vi kommer inte att använda för mycket av de avancerade sakerna.
- viss kunskap om (digitalt) ljud i allmänhet: Vad amplitud och frekvens betyder, vad ett filter gör, hur ljud lagras med en samplingsfrekvens och bitdjup. Om du har spelat in eller producerat musik tidigare är du förmodligen väl inställd.
- intresse för Digital signalbehandling och GUI-programmering: de kommer att vara de två huvudämnena i denna serie. Om du inte har någon tidigare DSP-kunskap alls kan du behöva läsa om några ämnen vid någon tidpunkt. Jag ska försöka ge ytterligare läsning typ länkar när så är fallet.
användbara resurser
här är några länkar som kan vara till hjälp senare:
- Stack Overflow: Sök efter saker som obskyra kompilatorvarningar och ta reda på vad de menar.
- DSP Guide: mycket bra gratis bok, täcker förmodligen mer än vi kommer att använda. Hänvisa till det om någonstans på vägen du inte förstår ett DSP-koncept.
låter spännande? Nästa gång sätter vi upp allt vi behöver för att komma igång!