Karplus-Strong synthese

beetje onzinnig om het op die nauwkeurigheid allemaal te willen doen...
synthetische klanken hoeven niet exact tot op de 1000e nauwkeurig, da's het leuke toch?
belangrijkste is dat je het soortgelijke gevoel krijgt van een snaar sound en niet de exacte sound...

Nee, inderdaad, het hoeft niet. Maar het mag wel. En daarover gaat deze draad.:doei:
 
belangrijkste is dat je het soortgelijke gevoel krijgt van een snaar sound en niet de exacte sound...
Denk dat het in eerste instantie wel belangrijk is, dat je e.e.a. goed patched.. dat je daarna de waardes veranderd, of extra dingen in het circuit toevoegd om het auditief voor jezelf te verbeteren/verslechteren, ok.

Ik denk nl. dat het bij deze techniek juist wél aankomt op de precisie voor 't beste resultaat, ter vergelijking, de supersaw heeft ook z'n kaders.. zet je de pwm te hoog of te laag, dan is het 't nét niet (meer). Bij KS verwacht ik dat het allemaal nog veel nauwer kijkt.

Mja als ik dit lees, dan gaat m'n muzikantenhart nou niet echt sneller kloppen: A discrete-time FIR filter of order N. The top part is an N-stage delay line with N+1 taps. Each unit delay is a z-1 operator in Z-transform notation

The output y of a linear time invariant system is determined by convolving its input signal x with its impulse response b

dat zijn nogal wat termen in 1 zin
 
Laatst gewijzigd:
audiocollage:
@WaveGuide7 thx, op de link hieronder vind je de Reaktor Core Manual.
Wat zegt de indextabel (vnl. vanaf Appendix F.) jou daarvan qua mogelijkheden om je KS mee te onderzoeken ?
http://www.google.be/url?sa=t&rct=j&...cFD-LFH-cOb-xw
Ik weet niet of je met Reaktor, of Max, of met een ander systeem, al dan niet gemakkelijk KS kunt maken. Maar je krijgt zo gauw de indruk dat daar heel wat bij komt kijken. Ik heb het niet zo op die modulaire systemen. Ik vond ze 20 jaar geleden, toen ik er tijdens mijn studie sonologie veel mee werkte (we gebruikten Max en natuurlijk de goede oude analoge studio "BEA5") technisch achterhaald, ook al erken ik hun hoog nostalgisch karakter. Ik heb hierboven in deze draad nog niemand gezien die KS via een modulair systeem goed aan de praat kreeg. Problemen heb ik al genoemd, en nu ik de Manual van Reaktor weer eens doorblader, zie ik die weer heel duidelijk: de specificaties van functies is in cruciale gevallen niet precies genoeg om te kunnen vertellen wat er nou echt gebeurt, op signaaltechnisch niveau.

Zo ontstaat gemakkelijk ook een verkeerd beeld van computerklankopwekking. Daarom ben ik al lang geleden afgestapt van die weg. Ik ben de route ingeslagen die in alle vakliteratuur over audio op het gebied van klankopwekking, klankanalyse en geluidseffecten wordt bewandeld. En dat is de route van software zoals Matlab. De meeste studieboeken die betrekking hebben op de technologie van alles wat we op dit forum bespreken, maken gebruik van Matlab. Zonder Matlab gaat niks meer, vandaag de dag. Dat ik mijn eigen software schrijf - zuigelingetje vergeleken bij Matlab - vinden sommigen raar. Maar ik houd toch ook niet op met adem halen alleen omdat anderen dat al doen en al eerder deden dan ik? Ik vind het spannend om te zien hoe je eigen software steeds krachtiger en compacter wordt.

In de bijlage vind je mijn formulering van KS in WaveWizard. Hier beslaat de implementatie van de feedback-delaylijn met ingebouwd 1ste-orde FIR filter slechts 1 regel tekst. Ik wil niet beweren dat WaveWizard het kan stellen zonder gebruiksaanwijzing, maar de taal die erin gesproken wordt is de wiskunde. Karplus-Strong is trouwens geen hogere wiskunde. Je kunt de formule aan elke scholier in de bovenbouw uitleggen.
Vergelijk de eenvoud van onderstaande code nou eens met de kleurige spagghetti en wirwar van kabels en kastjes waarmee modulaire systemen zoiets simpels en elementairs als Karplus maken. Hier wordt een snaarpluktoon gemaakt met een puls als beginconditie. De toonhoogte is 100 Hz en de toon duurt 10 sec.
 

Attachments

  • Karplus-Strong.txt
    282 bytes · Bekeken: 130
Vind het een bijzondere manier hoe je ertegenaan kijkt, vooral interessant hoe je (ook in eerdere topics) zoveel kan beschrijven in een functie van een filter.

Misschien als ik een aantal iteraties zie van je "bewerking" in het text-document, dat ik 'm dan beter begrijp. ik heb dat zo iig niet op school gehad en heb moeite met het interpreteren van de symbolen, zoals je ze op wiki vaak ziet.. zegt me allemaal vrij weinig zonder realiteit erbij, of tenminste een aantal iteraties zodat ik beter zie waar het heen gaat met de formule.

In de wirwar van draadjes maak ik meer op dan uit de formule, juist omdat die zo compact is.
 
[Vergelijk de eenvoud van onderstaande code nou eens met de kleurige spagghetti en wirwar van kabels en kastjes waarmee modulaire systemen zoiets simpels en elementairs als Karplus maken. Hier wordt een snaarpluktoon gemaakt met een puls als beginconditie. De toonhoogte is 100 Hz en de toon duurt 10 sec. ]

:)

Waarmee ik dus niet wil zeggen dat code voor luie mensen is.
 
... nu ik de Manual van Reaktor weer eens doorblader, zie ik die weer heel duidelijk: de specificaties van functies is in cruciale gevallen niet precies genoeg om te kunnen vertellen wat er nou echt gebeurt, op signaaltechnisch niveau.
Hmm, dat vind ikzelf eigenlijk ook : veel te beperkte uitleg. Ik wijt het dan wel eerder aan m'n gebrekkige DSP-kennis, en niet zo aan het 'niet precies' genoeg zijn (32 bit floating point precision).
Blijkbaar is dat toch ook weer een vak appart : al die DSP-elementen. In elk geval, Reaktor geeft me wel de indruk het mogelijk te maken, gezien (gehoord) de resultaten die ermee bereikt kunnen worden.

Leuk om te horen dat je ook ervaring hebt op modulaire systemen. Deze zijn n.m.i. toch niet meer te vergelijken met die moderne software, zelfs niet met hardware zoals de G2.
Maar al bij al, Matlab en al die andere software kunnen ook niet zonder een heel grote hoop transistors en baantjes hé (mini moduletjes en kabeltjes).
 
Vind het een bijzondere manier hoe je ertegenaan kijkt, vooral interessant hoe je (ook in eerdere topics) zoveel kan beschrijven in een functie van een filter.

Misschien als ik een aantal iteraties zie van je "bewerking" in het text-document, dat ik 'm dan beter begrijp. ik heb dat zo iig niet op school gehad en heb moeite met het interpreteren van de symbolen, zoals je ze op wiki vaak ziet.. zegt me allemaal vrij weinig zonder realiteit erbij, of tenminste een aantal iteraties zodat ik beter zie waar het heen gaat met de formule.

In de wirwar van draadjes maak ik meer op dan uit de formule, juist omdat die zo compact is.

Die iteratie heb ik al eens gepost in de draad over Phys Mod.
Zie https://www.synthforum.nl/forums/showpost.php?p=1198769&postcount=56

S1[] is een afkorting van digitaal Spoor 1. Dus niets anders dan een (heel lange) reeks samplegetallen.
Elke sample heeft een nummer. Dat nummer geef je aan tussen [].
Dus S1[40] = 1234 betekent dat de veertigste sample een waarde 1234 heeft.

in de iteratie is n de variabele die loopt van n0 naar n1, die je opgeeft in de twee regels daarboven.

Stel de feedback-delaylijn bevat 400 samples. Dan is M = 400.
En stel dat n = 1000. Dan vind je de waarde van sample 1000 volgens de formule, nl.:
Bewerking S1[n] = 0,5*(S1[n-M] + S1[n-M+1])

S1[1000] = 0,5*(S1[1000-400] + S1[1000-401])
S1[1000] = 0,5*(S1[600] + S1[599])

Daar verder gaand:
S1[1001] = 0,5*(S1[601] + S1[600])
S1[1002] = 0,5*(S1[602] + S1[601])
etc.

Je kunt KS dus prima uitrekenen met bijv. Excel. Waarschijnlijk hoor je dan eerder geluid dan wanneer je met spaghetti-kastjes in de weer gaat.... tot het tegendeel is bewezen :)

en begrijp me niet verkeerd: modulaire synthese is en blijft enorm expressief en inspirerend, zoals mensen als Roland vaak indrukwekkend demonstreren.
 
Laatst gewijzigd:
Vergelijk de eenvoud van onderstaande code nou eens met de kleurige spagghetti en wirwar van kabels en kastjes waarmee modulaire systemen zoiets simpels en elementairs als Karplus maken. Hier wordt een snaarpluktoon gemaakt met een puls als beginconditie. De toonhoogte is 100 Hz en de toon duurt 10 sec.

Nou dat valt ook wel weer mee... Hierbij een simpel monofoon midi instrumentje zoals je het in Max kan maken, direct te gebruiken in Live. (Overigens nog zonder de nieuw verworven kennis van het FIR filter)


-Hoe wordt de Waveguide code als je er een paar delaytjes bij wil hebben? Want dan, toegegeven, wordt het in Max al snel een rommeltje als je niet uitkijkt.
 

Attachments

  • basic-delay-lijn.png
    basic-delay-lijn.png
    14,4 KB · Bekeken: 140
loveyourjunos:
-Hoe wordt de Waveguide code als je er een paar delaytjes bij wil hebben? Want dan, toegegeven, wordt het in Max al snel een rommeltje als je niet uitkijkt.

Dat bedoel ik maar....

Een paar delaytjes? Wat had je in gedachte, feedback? feedforward? Of beide tegelijk?
Als x[n] het inputsignaal voorstelt en y[n] het outputsignaal, dan krijg je de volgende formuleringen:

feedforward-delay: y[n] = x[n] + a*x[n-M]

feedback-delay: y[n] = x[n] + b*y[n-K]

beiden tegelijk: y[n] = x[n] + a*x[n-M] + b*y[n-K]


hierin stellen K en M delaytijden voor, uitgedrukt in aantal samples, de delaytijd hangt dus mede af van de sampling frequentie.
a en b zijn versterkers als ze > 1 zijn. Anders verzwakkers.
een feedforward delay geeft een eenmalige reflectie, zoals een echo tegen een muur of een bosrand.
een feedback delay geeft een eindeloos repeterende reflectie, zoals bijv. in een trappenhuis, meestal natuurlijk met een zekere demping: b < 1.
Dit getal b is wat in jouw Max patch die potmeter feedback is. (voor jouw patch zou je dan krijgen b = 0,88.)
Een feedback-delay kan natuurlijk ook fungeren als een toongenerator, zowel gedempt (b < 1) als periodiek (b = 1).

Je ziet dat je delays heel kort en helder in code formuleert.
 
Een voorbeeld. pseudo K-S. Een lip-snaar. Als fiter een kamfilter (notch) gebruikt. Op de G2. De klank is nog niet helemaal beheersbaar/bespeelbaar, maar gaat lukken.

Leuk geluidje, Roland! Ben benieuwd waar dit naar toe gaat.

Twee vragen:
Waaruit bestaat het inputsignaal van deze pseudo KS?
Welk type notch kamfilter heb je gebruikt? (er zijn er immers 2)
 
'Aangeblazen' feedback modal filter dingetje.
Hier een plaatje van de Notch.
Hier gevoed door een zaagtand maar is eigenlijk ge-FBd met dat modal filter dingetje.

Kabeltjes vallen erg mee:)
 

Attachments

  • Roland Kuit Notch 2.jpg
    Roland Kuit Notch 2.jpg
    71,7 KB · Bekeken: 131
(...)

Kabeltjes vallen erg mee:)


Ik tel er 8 en ze hangen over displays waarin parameter-waarden worden afgebeeld. Ze verbinden 9 modules die dan gezamelijk de notch-kam berekening y[n] = x[n] + a*x[n-M] + b*y[n-M] uitvoeren, waarin slechts 2 optellingen en 2 vermenigvuldingen voorkomen....
en je moet natuurlijk het Claviaans machtig zijn om te kunnen nagaan of dit inderdaad een notch-kam is en welk van de twee types.

Maar er is een simpele en praktische oplossing om daar achter te komen. Als je die OSC bovenin de patch op 'puls' kunt zetten en die instelt op bijv. 1 Hz, en dan door het filter stuurt, krijg je de pulsresponsie (post #87). Dat is een geluidje van hooguit enekele seconden en bevat de volledige systeembeschrijving. Als je daar een bestandje van upload zijn we d'r ook.
 
:):):):):):):):):):)
(mn vrindin reageerd hier: Wie brengt jou zo aant lachen hier op het forum?)

En bedankt, ga dat met het puls straks testen. In de pch van de klank opname zit geen ruis/zaagtand.

Claviaans sprekenden:
Dat modal dingetje is een lpf met veel resonance daarna door een hpf als dc blocker en terug met FB. Geen ruis, maar een plotseling amplitude verandering (eg control signaal) geeft in dit geval de begin energie. Eg control signaal als de puls eigenlijk.
 
....en je moet natuurlijk het Claviaans machtig zijn om te kunnen nagaan of dit inderdaad een notch-kam is en welk van de twee types.
TIP : Als je de gratis Clavia-demo download kan je hier zelf ook mee werken :
http://www.clavia.se/products/nordmodular/demo.htm
(De leercurve is n.m.i. echt niet zo hoog, zeker niet voor iemand die al met modulars gewerkt heeft.)
 
Back
Top