Hvornår(?) bliver data i DAW konverteret til lyd?

Mac & PC, lydkort, Logic Pro, Cubase, Pro Tools, Ableton Live og andet software.
Nyt svar
Medlemsavatar
Christoffer I. N.
Lydmaskinist
Indlæg: 35560
Sted: Hørsholm

Hvornår(?) bliver data i DAW konverteret til lyd?

Indlæg af Christoffer I. N. »

Jeg har programmeret assembler kode på elektronik-skolen, og dét er hvad jeg ved om programmering. Så beklager de muligvis åbenlyse fejlantagelser i det følgende. Gør os ikke-programmør-nørder klogere ved at svare. :)


Kom til at tænke over det spørgsmål den anden dag, først i forbindelse med software modulars som Cherry Audio Voltage, Softube Modular, Reaktor (Blocks) m.m., men så gik det op for mig, at det vel gør sig gældende for alle instrumenter, og alle insert effekter.
Min undring er:
Bliver output af ALLE plugins konverteret til audio, for derefter at blive konverteret tilbage til data i næste plugin?
Ja, vi har en samplerate og en bitdybde, her nok mere specifikt en intern bitdybde i plugin og DAW/Sequencer, så på den måde er det lyd vi hører allerede digitalt/"data", men kan plugins lave de funktioner de nu gør, en farvelade compressor eller en totalt clean digital EQ på den her "audio data", eller skal det konverteres?

Medlemsavatar
Smittefar
Forum Donator
Indlæg: 5191
Sted: Søborg

Indlæg af Smittefar »

Det er data / WAV signaler hele vejen igennem ind til det rammer DA konverteren.

Plugins manipulerer WAV signaler

Sent from my ONEPLUS A5010 using Tapatalk
Find mig på: Youtube | Facebook | Hjemmeside - eller i mit band Jump

Medlemsavatar
david mondrup
Lydmaskinist
Indlæg: 12759
Sted: Århus

Indlæg af david mondrup »

Christoffer I. N. skrev:Bliver output af ALLE plugins konverteret til audio, for derefter at blive konverteret tilbage til data i næste plugin?
Min lægmands-forståelse af det er, at der ikke skelnes mellem audio og data før det rammer DA converteren, og skal laves til noget der kan forståes af en forstærker/højttalermembran. Indtil da er det hele blot 1er og 0er.
David Mondrup
www.monsdrum.com Engelsholm Højskole
For at værne om ytringsfriheden, råber jeg røvhul efter naboen (Peter Poulsen)

Medlemsavatar
Holger
Audio Alchemist
Indlæg: 37674
Sted: Fyn

Indlæg af Holger »

Hvis vi taler et optaget signal er det vel typisk a la

Analogt signal > ADC (24 bit Integer PCM) > 32 eller 64 bit Floating point PCM > DAC (24 bit Integer PCM) > Analogt signal

Min tekniske forståelse for hvordan man rent praktisk-matematisk manipulerer med PCM i DAW'en/plug-ins kan ligge på et meget lille sted. Tror ikke det er så svært at forstå, måske der findes en god artikel om det et sted?

Medlemsavatar
Kvaksalver
Forum Donator
Indlæg: 141
Sted: 8000C

Indlæg af Kvaksalver »

david mondrup skrev:
Christoffer I. N. skrev:Bliver output af ALLE plugins konverteret til audio, for derefter at blive konverteret tilbage til data i næste plugin?
Min lægmands-forståelse af det er, at der ikke skelnes mellem audio og data før det rammer DA converteren, og skal laves til noget der kan forståes af en forstærker/højttalermembran. Indtil da er det hele blot 1er og 0er.
David har ret! Alt mellem A/D- og D/A-konvertere, er 0 og 1...

Medlemsavatar
DUBTEMPLE
Forum Donator
Indlæg: 8693
Sted: DK/SE

Indlæg af DUBTEMPLE »

Jeg tror godt de er klar over at det er data, det var nok mere formatet internt der blev spurgt ind til, det er jo antageligt ikke wav, men nok et mere råt format,.. som jeg husker det har en software audio-engine sin helt egen struktur og bit-bredde, der feks kan være 32-bit, selv om der på bundlinien leveres i 24-bit til sample/hold og DAC
/Dub

Medlemsavatar
Holger
Audio Alchemist
Indlæg: 37674
Sted: Fyn

Indlæg af Holger »

Er det ikke bare floating point PCM? Som skrevet længere oppe i min post. Tror ikke der er noget specielt proprietært over det.

Medlemsavatar
DUBTEMPLE
Forum Donator
Indlæg: 8693
Sted: DK/SE

Indlæg af DUBTEMPLE »

Holger skrev:Er det ikke bare floating point PCM? Som skrevet længere oppe i min post. Tror ikke der er noget specielt proprietært over det.
Tjooo, PCM, eller noget der minder om,.. måske

Det jeg ikke kan lide, er, at når jeg laver en søgning kan jeg ikke få linket PCM sammen intern audio-engine eller DAW

Der er jo ellers beskrivelser nok

https://www.techwalla.com/articles/what-is-pcm-audio

Er selv nysgerrig
/Dub

Medlemsavatar
Holger
Audio Alchemist
Indlæg: 37674
Sted: Fyn

Indlæg af Holger »

Right, lad os få svesken på disken.

Medlemsavatar
scofield
Medlem
Indlæg: 223

Indlæg af scofield »

Holger skrev:Er det ikke bare floating point PCM? Som skrevet længere oppe i min post. Tror ikke der er noget specielt proprietært over det.
Jo, det er Pulse Code Modulation, og en wav-fil indeholder en variant heraf, Linear PCM.

Om data er lyd eller ej afhænger vel af hvordan man ser på dem. I princippet er det bare en sekvens af en masse tal, som lige så godt kunne være et billede eller noget tredje.

Det springende punkt mht at manipulere med data er at lyden i digital form er diskret repræsenteret i modsætning til de fysiske lydbølger vi kan lytte til der er kontinuerlige. Denne forskel er afgørende for teorien omkring hvordan man manipulerer lyddata.

Medlemsavatar
DUBTEMPLE
Forum Donator
Indlæg: 8693
Sted: DK/SE

Indlæg af DUBTEMPLE »

Det er puls-code-modulation ,... i bredeste forstand

Men det er jo ALLE de mange former for stream osv

Der må være afvigelser i hvordan "ordene" staves helt præcist

Jeg kan ikke tro andet end der er et helt specielt navn for den måde man organiserer den rå lyd-data i en DAW

Adat, i2s, og Spdif, osv, er vel også PCM alle sammen, men ikke ens,..

En søgning linker ikke umiddrlbart PCM og DAW sammen
/Dub

Medlemsavatar
scofield
Medlem
Indlæg: 223

Indlæg af scofield »

ADAT, I2S, etc. handler alt sammen om formatering, dvs der er tale om en protokol, så man ved hvordan data skal fortolkes. PCM hentyder til hvordan data bliver samplet. Så du har ret det er PCM alt sammen, fordi det er samplet på samme måde.

Hvis du søger på hvordan lyd representeres i en computer (og dermed også en DAW) passer det med PCM.

Medlemsavatar
Christoffer I. N.
Lydmaskinist
Indlæg: 35560
Sted: Hørsholm

Indlæg af Christoffer I. N. »

Kan nogen så prøve at simplificere hvordan man påvirker signalet? [Joachip, Preben, jeg kigger på jer.... :-D ]
Jeg ved nogle skilter med at de bruger JUCE, eller i "gamle dage" stødte jeg på SynthEdit.
Arbejder man udfra et program som allerede indeholder de informationer man skal bruge? - Jeg forestiller mig det er som at lave ensembles i Reaktor med blokke m.m.
Hvad med programmørerne hos Universal Audio, Brainworx eller Waves, som går efter at lave farvelade eller vintage ting? Er det det samme, man bruger forskellige software miljøer, så man ikke skal programmere sig frem til den dybe tallerken hver gang?

https://juce.com/
https://www.synthedit.com/

Medlemsavatar
Holger
Audio Alchemist
Indlæg: 37674
Sted: Fyn

Indlæg af Holger »

Så vidt jeg forstår findes der en lang række eksisterende biblioteker og mere eller mindre færdige kodestumper man kan trække på.

Hvad man så bruger af DSP-teknik til at manipulere PCM’en kommer an på formålet, men fx Fast Fourier, Z-plan, osv. Dvs. Teknikkerne har forskellige styrker og svagheder i forhold til tid kontra frekvens, mv.

Det meste er vel sagtens programmeret i C++.

Kunne være sjovt at lære.

Medlemsavatar
DUBTEMPLE
Forum Donator
Indlæg: 8693
Sted: DK/SE

Indlæg af DUBTEMPLE »

Ja, det meste er C++, kunne være sjovt, tænker tit på hvad baggrund de folk har, men en solid basis i analog-teknik er vist at foretrække selv om man arbejder med digital signal behandling

Det du siger med "kasser" er rigtigt, også på firma-plan, Waves farvestrålende signatur-serier er et godt eksempel, "ryst posen med "klodser" og lav en ny kulørt forplade"

Jeg syntes den før omtalte sveske stadig har lidt svært ved at finde vej til bordet :-)
/Dub

Medlemsavatar
Smittefar
Forum Donator
Indlæg: 5191
Sted: Søborg

Indlæg af Smittefar »

Jeg kunne egentlig godt forestille mig at rigtig meget af det var lavet i Matlab, og så eksporteret til eksekverbar kode. Matlab gør det noget nemmere at opstille de matematiske modeller uden nødvendigvis at skulle holde styr på alle C++ libraries til løsning af differentialligninger og matrixsystemer.

Jeg ved, at Fractal Audios produkters firmwares bliver udviklet i Matlab og ported derfra. Jeg antager bare, at ret mange andre også bruger det.
Find mig på: Youtube | Facebook | Hjemmeside - eller i mit band Jump

Medlemsavatar
Joachip
Forum Donator
Indlæg: 2641
Sted: Vesterbro

Indlæg af Joachip »

Den analoge lyd der kommer ind i lydkortet, rammer først et stejlt lowpass filter i indgangen som skal fjerne alt over det halve af sampleraten. D.v.s hvis man f.eks. kører 48000 Hz samplerate, vil filteret typisk være omkring 23500 Hz eller noget i den retning (nyquist). Derefter rammer det selve AD converteren, som så måler på spændingen 48000 gange i sekundet og omsætter det til en række tal som smides i input bufferen. Herfra er det tal:

Lyden der kommer ind fra driveren ankommer i enten 16 eller 24 bit, d.v.s. heltal med fortegn. For 16 bit er det f.eks. fra -32768 til +32767. For 24-bit er det nogen større tal (men stadigvæk heltal).

Driveren giver så de her tal videre i klumper af 128 eller 256 samples af gangen (inputbufferstørrelsen) til OS'ets lyd-arkitektur som (måske også gør andre ting som jeg vil ignorere her, og derefter) sender det videre til ens DAW.

De fleste DAWer laver så de her rækker af hele tal om til floating point mellem -1.0 og +1.0.

DAW'en ser så hvilke plugins der er smidt på, og så fortæller den det første plugin hvilken samplerate der køres, hvor mange kanaler bufferen er på, og hvor mange samples bufferen er, og så beder den ellers den her plugin om at gøre hvad den nu engang gør. Når den er færdig, gør DAW'en så det samme med næste plugin i kæden.

Herefter er der typisk en masse routing, aux busser, submix busser m.m. hvor der blandes signaler, justeres niveauer m.m. og til sidst bliver master mixdown signalet så konverteret tilbage til heltal mellem f.eks. -32768 til +32767 og sendt tilbage til OS'ets lydarkitektur, som så sender den her buffer til lyddriveren.

Lyddriveren sætter derefter spændingen på udgangen til det næste tal i bufferen 48000 gange i sekundet, og så smides der et lowpass filter på ved f.eks. 23500 Hz for at fjerne aliasing (igen pga nyquist).

PS: Der er andre måder at lave AD/DA convertere på, men resultatet burde meget gerne blive omtrent det samme, sålænge de er designet nogenlunde korrekt.
Jeg laver også gratis plugins: www.robotplanet.dk/audio_plugins

Medlemsavatar
Joachip
Forum Donator
Indlæg: 2641
Sted: Vesterbro

Indlæg af Joachip »

Christoffer I. N. skrev:Bliver output af ALLE plugins konverteret til audio, for derefter at blive konverteret tilbage til data i næste plugin?
Ja, vi har en samplerate og en bitdybde, her nok mere specifikt en intern bitdybde i plugin og DAW/Sequencer, så på den måde er det lyd vi hører allerede digitalt/"data", men kan plugins lave de funktioner de nu gør, en farvelade compressor eller en totalt clean digital EQ på den her "audio data", eller skal det konverteres?
Og for at uddybe lidt mere specifikt omkring dit spørgsmål: Plugins får simpelthen lyden som et array (en liste) af floating point tal mellem -1.0 og +1.0. Jo større buffer-størrelse, jo flere tal af gangen bliver givet til de her plugins.

Nogen plugins arbejder så med 32 bit floating point præcision, andre starter med at konvertere hvert enkelt tal op til 64 bit præcision og arbejde i det indtil de lægger resultaterne tilbage ned i listen som 32-bit værdier, og når hele bufferen så er blevet processeret, bliver den givet tilbage til ens DAW.

Dette er typisk den eneste form for konvertering der foregår. Og tabet er så småt, at det ikke er noget man skal bekymre sig om. D.v.s. hvis man satte 300 "gør ingenting"-plugins efter hinanden, vil der ikke ske noget tab af kvalitet.
Jeg laver også gratis plugins: www.robotplanet.dk/audio_plugins

Medlemsavatar
Christoffer I. N.
Lydmaskinist
Indlæg: 35560
Sted: Hørsholm

Indlæg af Christoffer I. N. »

Tak!

Er der nogen nem/forståelig måde at forklare på, hvordan man laver en compressor/EQ, og hvordan den påvirker floating point signalet? Du er nok allerede lidt inde på det i dit seneste svar, men jeg tror det kunne være interessant (eller bare nørdet.... :-D ) at vide mere om. :)


Joachip: Har du bredt kendskab til AD/DA convertere? Har en elektronik-idé jeg synes kunne være sjov... :)

Medlemsavatar
Joachip
Forum Donator
Indlæg: 2641
Sted: Vesterbro

Indlæg af Joachip »

Jeg er mere software- end hardware mand, så jeg tror hurtigt du vil ramme enden af min forståelse for convertere. Men jeg kender folk der har væsentligt mere indgående kendskab til dén del.

EQ bliver meget nørdet at forklare. Lowpass filter er lettere. Men en kompressor er til gengæld noget jeg godt kan forklare relativt enkelt hvordan man laver, selvom selve dét at skrive koden altid viser sig at være overraskende drilsk selvom opgaven virker simpel.

Kompressor:
Først skal man forstå hvad man kan gøre med de her tal mellem -1.0 og +1.0.

Hvis man ganger dem med 2 så bliver amplituden dobbelt så kraftig. Højttalermelbranen skal f.eks. bevæge sig 2mm ind og ud i stedet for 1mm. Hvis man i stedet for ganger med 0.5 (altså dividerer med to) så bliver signalet naturligvis halvt så kraftigt, og membranen bevæger sig så kun 0.5mm. Så hvis vi kalder den her faktor for vores "volumeknap", så er det et spørgsmål om at skrue op når der er stille og skrue ned når der kommer noget højt.

Men man skal ikke skrue helt vildt højt op og nede fra sample til sample, for hvis man skruer på en volumeknap vildt meget 48000 gange i sekundet, så lyder det grimt.

Så det jeg typisk har gjort, er at lave en værdi som langsomt og gradvist følger med i hvor højt input-signalet er. Hvis du er elektronikmand, så er den nemmeste måde at forklare det på nok faktisk, at jeg har simuleret hvad en ensretter gør: Først tager jeg en kopi af inputtet og smider fortegnet væk, svarende til den her klassiske diodebro af 4 dioder. D.v.s. -1 bliver til +1, 0 bliver til 0, og +1 bliver til +1. Derefter glatter jeg skidtet ud, ved at lave et simpelt lowpass filter, som svarer præcis til at sætte en kodensator efter ensretter-dioderne. På den måde får jeg en "spænding" (d.v.s. et positivt tal) der viser hvor højt signalet er. Og så er det bare at skrue kontra på vores virtuelle "volumeknap".

Lowpass filter, 6 dB/okt:
Den mest simple og halvstupide måde at lave sådan et på, er at følge den her simple opskrift for hver ny sample-værdi der kommer ind:
* Tag 5% af den nyeste input-værdi og læg det sammen med 95% af den sidste output-værdi vi havde. Brug dette som den nyeste output-værdi. Gentag for hver ny indkommende sample. Ændrer man så på forholdet til f.eks. 10% vs. 90% så flyttes filterfrekvensen op. Hvis man i stedet prøver med 2% vs. 98% så får man en dybere filterfrekvens.
Jeg laver også gratis plugins: www.robotplanet.dk/audio_plugins

Medlemsavatar
Christoffer I. N.
Lydmaskinist
Indlæg: 35560
Sted: Hørsholm

Indlæg af Christoffer I. N. »

Fedt. Ja det bliver jo hurtigt komplekst at forholde sig til.
Ang. "audio rate modulation" som du beskriver med at skrue op og ned meget hurtigt, det virker som et felt software-folkene først for nyligt('ish) har fundet ud af at gøre på en god måde. Kunne det forestilles at man oversampler signalet for at få et bedre resultat?


Eksempelvis kan man komme op over 10kHz i Polyverse Gatekeeper, med nærmest den kurve man ønsker. Jo højere frekvens jo mindre forskel er der dog på hvordan kurverne lyder. Den funktion bruger jeg nogle gange. Kommer man tilpas højt op virker smoothing parameteret nærmest bare som en tænd-sluk knap, og det er fair nok. Volume modulation muligt fra flere minutter og op til 10kHz er fedt at have adgang til i samme plugin.
https://polyversemusic.com/products/gatekeeper/

Medlemsavatar
Joachip
Forum Donator
Indlæg: 2641
Sted: Vesterbro

Indlæg af Joachip »

For en kompressor gælder det nærmere om IKKE at skrue op og ned så hurtigt at det giver audio rate modulation. Det samme gælder sådan set for analoge kompressorer.

Nogen af dem kan indstilles til at have så hurtig attack og release, at de faktisk når at skrue op og ned for hver svingning (specielt i bassen), hvilket kan lyde som en form for blød distortion.
Christoffer I. N. skrev:Eksempelvis kan man komme op over 10kHz i Polyverse Gatekeeper, med nærmest den kurve man ønsker. Jo højere frekvens jo mindre forskel er der dog på hvordan kurverne lyder. Den funktion bruger jeg nogle gange. Kommer man tilpas højt op virker smoothing parameteret nærmest bare som en tænd-sluk knap, og det er fair nok. Volume modulation muligt fra flere minutter og op til 10kHz er fedt at have adgang til i samme plugin.
https://polyversemusic.com/products/gatekeeper/
Mange plugins opfører sig lidt wonky i den øverste oktav eller mere under nyquistfrekvensen. Det er også derfor jeg kører 96 kHz. Så bliver de der problemer flyttet en oktav højere op og (næsten) ud af det hørbare område. Det svarer nærmest også til at køre 2x oversampling på samtlige plugins.
Jeg laver også gratis plugins: www.robotplanet.dk/audio_plugins

Medlemsavatar
Christoffer I. N.
Lydmaskinist
Indlæg: 35560
Sted: Hørsholm

Indlæg af Christoffer I. N. »

Ang. audio rate modulation, og det jeg skrev omkring at det først for nyligt er kommet på plads i software. Jeg tænker på hvordan det eksempelvis nu lyder godt at bruge en vilkårlig lyd eller CV kilde til at modulate et vilkårligt andet parameter i en synth som eksempelvis U-He Bazille.
Måske er det en fejlantagelse, men jeg bilder mig ind, at når man ikke har set den slags features i software de sidste 10 år, så må det have været for svært at lave tidligere. Software synth designere har vel alle dage kendt til analogt lyddesign og de muligheder det giver..

https://u-he.com/products/bazille/

Medlemsavatar
Joachip
Forum Donator
Indlæg: 2641
Sted: Vesterbro

Indlæg af Joachip »

Modulation ved audio-rate kan hurtigt blive meget dyrt i CPU, hvis man vil modulere nogen underlige ting. For så kan der være en masse settings, som man normalt kun beregner hver gang brugeren drejer på en knob som pludselig skal beregnes om for hver sample. Det koster CPU.
Jeg laver også gratis plugins: www.robotplanet.dk/audio_plugins

Medlemsavatar
Christoffer I. N.
Lydmaskinist
Indlæg: 35560
Sted: Hørsholm

Indlæg af Christoffer I. N. »

Ah ja, det er en god grund.

Nyt svar