februar 9, 2022

Making Audio Plugins Del 1: Introduktion

velkommen! I denne tutorial-serie lærer vi, hvordan man opretter lyd-plugins, der kører som VST, VST3, AU, RTA ‘ er, AAK eller som en selvstændig applikation.

Audio plugins er programmer, der er indlæst i et værtsprogram (såsom Ableton Live, Logic eller REAPER). De behandler lyd-og / eller MIDI-data og kan have en grafisk brugergrænseflade. Her er tre eksempler (U-he Sebra, Sonalksis FreeG og D16 Decimort):

nogle plugin-vinduer

som du kan se, indeholder GUI normalt nogle kontroller (knappen er den mest almindelige), der ændrer, hvordan plugin behandler indgående data. Et plugin har forudindstillinger (i skærmbilledet kaldes de Combo og Emulator), der gemmer alle knop positioner og andre værdier.

vi starter med et simpelt forvrængningsplugin. Derefter opretter vi dette subtraktive syntetiseringsplugin trin for trin:

vi bruger C++ og biblioteket. Det er baseret på Cockos VDL (udtalt hvide). Det gør dybest set en masse arbejde for os, vigtigst af alt:

  • Opret VST -, AudioUnit -, VST3-og RTAS-formater fra en kodebase: vælg bare plugin-formatet, og klik på Kør!
  • Opret 32/64-Bit eksekverbare
  • få dit plugin til at køre som et selvstændigt vinde/Mac-program
  • de fleste GUI-kontroller, der bruges i lydplugins

det giver dig også de fleste GUI-kontroller, der bruges i lydplugins, og nogle almindeligt anvendte lydalgoritmer som for eksempel resampling. Denne forum tråd har screenshots af en masse plugins, der blev gjort ved hjælp af VDL.

de forskellige plugin formater alle gøre mere eller mindre det samme, så normalt ville der være en masse kopi & indsæt i din kode. Som programmør vil du forblive tør, så før eller senere vil du skrive et abstraktionslag over de forskellige formater. Dette arbejde er allerede udført i form af IPlug, som er en del af VDL. Disse er de irriterende dele af audio plugin udvikling, så vi kan nu fokusere på de sjove ting, såsom:

  • hvordan plugin behandler indgående lyd/MIDI
  • hvordan plugin ser ud
  • hvordan det integreres med værten (automatisering, forudindstillinger osv.)

en anden god ting ved VDL er dens tilladelige licens: du kan bruge den frit til kommercielle applikationer. Se linkene ovenfor for detaljer.

hvordan vi vil gøre dette

jagten er bedre end fangsten.

i programmering er resultatet givende, men rejsen er, hvor vi lærer. I denne tutorial serie, jeg vil ikke bare give dig lange kode lister med den perfekte løsning. Vi starter med noget, der fungerer og forbedrer det, så snart vi står over for problemer.
ulempen er, at du vil skrive kode, som du senere vil erstatte med noget bedre. Som programmør er du sandsynligvis vant til det. Den første fordel: det vil ikke være så overvældende, fordi vi nærmer os løsningen trin for trin i stedet for bare at hoppe der. Den anden fordel er, at vi måske lærer værdifulde programmeringstimer undervejs.

denne serie handler ikke om at beregne kompleks matematik i hånden. Det handler om at skabe fantastiske programmer, som du kan give til dine musikproducentvenner, så de kan lave en federe bassline.

hvad du har brug for

  • en Mac, der kører kode 4 eller nyere, eller et vinduer-system med Visual C++ 2010 eller nyere. Jeg bruger en Mac, men du kan også bruge næsten alle oplysninger om vinduer.
  • en vis forståelse af C++ (syntaks, pointere, grundlæggende OOP, hukommelse). Du har måske hørt, at C++ er meget svært, men vi vil ikke bruge for meget af de avancerede ting.
  • noget viden om (digital) lyd generelt: Hvad amplitude og frekvens betyder, hvad et filter gør, hvordan lyd gemmes ved en prøvehastighed og bitdybde. Hvis du har indspillet eller produceret musik før, er du sandsynligvis godt indstillet.
  • interesse for Digital signalbehandling og GUI-programmering: det vil være de to hovedemner i denne serie. Hvis du slet ikke har nogen forudgående DSP-viden, skal du muligvis læse om et par emner på et tidspunkt. Jeg vil forsøge at give yderligere læsning type links, når det er tilfældet.

nyttige ressourcer

her er et par links, der kan være nyttige senere:

  • Stack overløb: Søg efter ting som obskure compiler advarsler og finde ud af, hvad de betyder.
  • DSP Guide: meget god gratis bog, dækker sandsynligvis mere, end vi vil bruge. Henvis til det, hvis du et eller andet sted på vejen ikke forstår et DSP-koncept.

lyder spændende? Næste gang sætter vi op alt, hvad vi har brug for for at komme i gang!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.