the convolution revolution!

Origineel geplaatst door 4-Tek


Compressie is geen lineaire bewerking. Convolutie kan alleen lineaire bewerkingen nadoen. Compressie is echt niet mogelijk met convolutie. Net als oversturing van signalen. Ik kan het wiskundige bewijs voor je opzoeken maar dat is denk ik niet echt boeiend op dit forum.

mmm..kijk hier eens:

www.sintefex.com

en dan met name hier:

http://www.sintefex.com/?targ=download&src=home#general_documents

ben nog niet helemaal uitgelezen en weet dus niet of ze de klank-karakteristieken en de compressie zelf los van elkaar modellen, de eerste met convolutie en de 2e met traditionele algos...

Olaf
 
ok wat ik er nu zo snel van heb gelezen bij sintefex hebben ze een methode ontwikkeld om niet-lineaire processen te simuleren middels meerdere impulsen op verschillende amplitudes...

"Analysis and Simulation of Non-Linear Audio Processes using Finite Impulse Responses Derived at Multiple Impulse Amplitudes"

wat ze dus doen als ze een compressor "samplen" is dat voor een aantal instellingen op je compressor een reeks impulsen gestuurd en gesampled worden die van amplitude verschillen...zo bouwen ze een serie impulses op, en volgens mij interpoleren ze daar tussen in realtime zodat ze ook het non-lineaire gedrag van een compressor kunnen nabootsen

Olaf
 
ze gaan tot geloof ik 128 amplitude impuleses voor bijv 1 reverb

t.o.v. van 1 voor de yamaha en sony bakken

hoe dat interpoleren precies werkt snap ik nog niet helemaal maar moet volgens een redelijke benadering zijn
 
bij een compressor moet je bij een sintefex volgens mij 24 verschillende instellingen op je compressor samplen....dan krijg je een leuke set met samples....op zich is convolutie zo simpel als de pest, alleen je rekent je een ongeluk.... wat me nog steeds verbaasd en waar niemand een antwoord op kan geven: hoe kan het dat die winamp plugin gewoon keihard inrealtime op een P2 233Mhz draait op ca. 50% CPU terwijl altiverb zegt dat ze alleen op een G4 die plugin van hun konden laten lopen...mysterieus!
 
volgens mij doen ze beide niet meer dan een impulse response loslaten middels convolution op een audiostream..het is wel zo dat die winamp plugin een vette latency heeft...en zichzelf zo fijn veel tijd geeft voor het berekenen..msshcien dat onder VST/RTAS/directX zoiets niet een optie is?
 
ja dat zat ik me net ook te bedenken :D

het is de lage latency die je nodig hebt in bijv een vst omgeving tedraaien

me delta 1010 kan op veel lagere latcency lopen in fruity loops dan in logic

de altiverb kan ook op 2 standen latency staan (zag ik in de interface)

no latency (echt real time )
en high latency
 
zo net even die whitepaper over dynamic convolution gelezen (tja je moet toch wat op de zonnige zondagmiddag haha) .... erg interessant en ook erg verhelderend...ze hebben 9 SHARC DSP's nodig om de boel in realtime stereo te kunnen berekenen met impulse responses die lang genoeg zijn.... mmmm..en ik krijg nu ook het inzicht dat de "vinyl-keten" natuurlijk op verschillende amplitudes ook verschillende karakteristieken heeft....maar als je die allemaal gaat gebruiken moet je ook een vet intensief proces schrijven dat amplitudes van je inkomende signaal gaat analyseren en de juiste impulse response erbij moet zoeken...beetje over the top voor nu denk ik....eerst maar es gewoon 1 impulse op vinyl zien te krijgen ;)

Olaf (zondamiddag nerd)
 
Origineel geplaatst door olafmol
bij een compressor moet je bij een sintefex volgens mij 24 verschillende instellingen op je compressor samplen....dan krijg je een leuke set met samples....op zich is convolutie zo simpel als de pest, alleen je rekent je een ongeluk.... wat me nog steeds verbaasd en waar niemand een antwoord op kan geven: hoe kan het dat die winamp plugin gewoon keihard inrealtime op een P2 233Mhz draait op ca. 50% CPU terwijl altiverb zegt dat ze alleen op een G4 die plugin van hun konden laten lopen...mysterieus!

Bij een compressor moet je geen 24 instellingen samplen. Maar hij neemt bij iedere instelling 24 samples op verschillende geluidsniveaus. Daardoor kan hij de niet-lineaire eigenschappen benaderen.

Ik zal je de wiskunde toch maar besparen fuse. Maar wat ik in ieder boek over dsp tegenkom (dus lees maar na) is een bewijs dat convolutie alleen voor lineaire systemen worden gebruikt en een rijtje eigenschappen voor lineaire systemen. Een van die eigenschappen is dat een lineair systeem wanneer je de amplitude van de imput verdubbelt de amplitude van de output dat ook doet dus S(2x) = 2S(x) . Probeer maar es een compressor te maken die hier aan voldoet.

Het kan zijn dat die winamp plugin met kortere impulse responses werkt. Een andere truuk is om niet in het tijdsdomein maar in het frequentiedomein te rekenen. Je kan de Fast Fourier Transformatie van de impuse en van het signaal gewoon met elkaar vermenigvuldigen en dan met een Inverse FFT alles terugrekenen naar het tijdsdomein. Dat is wat complexer maar voor langere impulses iets sneller. Misschien dat ze dat in die winamp plugin hebben gedaan.
 
Origineel geplaatst door 4-Tek

Bij een compressor moet je geen 24 instellingen samplen. Maar hij neemt bij iedere instelling 24 samples op verschillende geluidsniveaus. Daardoor kan hij de niet-lineaire eigenschappen benaderen.

in de whitepaper hebben ze het over 128 amplitude stappen als ik me niet vergis.....hoeveel verschillende instellingen je op de compressor moet indraaien kon ik zo snel niet terugvinden....

anyway, geen zin in een welles/nietus verhaal..het blijft een interessant techniek die naast "reguliere" convolution erg interessante resultaten oplevert..

Olaf
 
Hmmm. Ik zit de thread ff opnieuw door te lezen en het is geloof ik al een flink wellus-nietus verhaal tussen mij en Fuse geworden. Sorry daarvoor. Ik zal niet ook nog es met jou beginnen olaf :)

Ik zag trouwens op de music-dsp mailinglist een paar weken geleden wat info langskomen over nog weer andere methoden om niet lineaire systemen te kunnen sampelen. Ook in combinatie met convolutie. Ik zal daar es naar kijken. Volgens mij is dat ook erg interressant voor dit soort toepassingen.
 
oe interessant..als je die info kan vinden zou ik dat wel graag willen lezen....bvd!
 
music-dsp mailinglist? Hmm.....

Maarre, wellus of nietus. Ze zijn wel met een geavanceerd systeem bezig met veul DSP's. Lijkt me wel interessant omdat het wel eens zou betekenen dat de hele reverb of zelfs FX markt onderuit gaat worden gehaald door die nieuwe technologie met het daarbij behorende prijskaartje.
Als ze het nog in een VLSI weten te bakken ben ik ook helemaal blij. :)
 
Zeker als ze inderdaad die technieken gaan gebruiken waar je tussen traploos door verschillende impuse responses kan bladeren. Dan kan je ook parameters gaan toewijzen en dus je reverbje of je andere effect aanpassen aan je eigen wensen. Dan is wat mij betreft de laatste zwakte van convolution reverbs verdwenen.

Ik heb trouwens de thread gevonden.
http://shoko.calarts.edu/~majordom/music-dsp/2002-august/msg00084.html

Ik heb er wat links gevonden naar wat theoretische wiskundige verhandelingen over niet-lineaire systemen, maar niets wat direct bruikbaar is. Ik begrijp eigenlijk de helft ervan niet :) Misschien dat jullie er iets mee kunnen.
 
tja...een echt model levert natuurlijk altijd meer parameters op dan een convolution oplossing.....dus ik denk dat ze gewoon netjes naast mekaar kunnen blijven bestaan.....er moet maar eens iemand komen die een superslimme en veel efficientere oplossing heeft voor het realtime berekenen van convolutions, want 10 SHARC's is natuurlijk belachelijk......gaat vast wel komen
 
Die slimme methodes zijn er al. Maar die zijn vrij complex. Je kan met behulp van Fast Fourier Transformaties de Tijdcomplexiteit van orde N^2 terugbrengen naar N log N. Dat is voor lange berekeningen met lange impulse responses een vrij forse winst.
 
op zich zijn lange impulses toch alleen maar belangrijk bij reverbs enzo? of vergis ik me nu? bv een impulse door een EQ gooien, dan heb je toch een minimale lengte nodig?
 
Origineel geplaatst door olafmol
op zich zijn lange impulses toch alleen maar belangrijk bij reverbs enzo? of vergis ik me nu? bv een impulse door een EQ gooien, dan heb je toch een minimale lengte nodig?

Dat lijkt mij inderdaad ook. Je hoeft bij een eq niet veel meer te samplen dan een paar keer de golflengte van de laagste frequentie die je er doorheen wilt gooien. Dus een tiende seconde is denk ik wel genoeg.
Maar ik kan me voorstellen dat dat op vrij hoge samplefrequenties gebeurt. Van een impulse response kan ik me goed voorstellen dat het wel zinvol is om die op 192 kHz te samplen zodat je bij het berekenen van de convolutie kan oversamplen. Dus dan heb je nog iets van 19.000 samples.

Ik heb me trouwens wel es zitten afvragen of je bij het samplen van reverb niet wat parameters moet kunnen instellen. Predelay kan bijvoorbeeld al door aan het begin van de impulse response nullen toe te voegen. Ik vraag me af wat er gebeurt als je de impulse response korter maakt door em omhoog te pitchen. Volgens mij wordt dan de reverbstaart korter en dichter.
 
Back
Top