Physical Modelling

Hmmm, beste Pepertje,

Ik zoek diezelfde leerschool in Reaktor te kunnen begrijpen en toepassen.
Op de eerste pagina van die 'H4 Sound Design' staat reeds :
>Naast figuren vind je in dit hoofdstuk zo'n 30 kortere en langere geluidsvoorbeelden. Zonder die voorbeelden zul
>je de tekst waarschijnlijk totaal onbegrijpelijk vinden! Dus, zodra je een voorbeeld tegenkomt, luister er dan
>direct even naar vóórdat je verder leest. Zorg daarom dat je bij het doorwerken van de tekst de computer of een
>MP3-speler bij de hand hebt!
Verder levert een zoektocht met het woord 'Reaktor' door beide handleidingen niets op dus heb ik
beiden voorlopig even links gelegd. (Mogelijk ten onrechte).

Ik heb nog een stapel boeken die ik zou kunnen doornemen, (bvb. Loadbang van Johannes Kriedler :
Programming Electronic Music in Pure Data). Toch met vraag en antwoord kan men veel sneller
specifiek op weg geraken. Dus a.u.b. laat die kans nog even bestaan.

Mogelijk moet ik toch maar een apparte Topic starten ?
 
Mijn antwoorden in de kleur DarkOrchid :o:
>Zo kort dat je het niet meer als afzonderlijke stukjes delay hoort, maar als 1 golfvorm, een soort van oscillator dus.
Één periode van een (willekeurige) golfvorm dus. Ja, de tijd die het duurt voor het ruistikje om 1 keer door de feedbacklus te gaan is 1 periode

>De delaytijd wordt bepaald door de midinoten (simpele formule: de delaytijd in ms. is 1000 / (frequentie in Hz)
De tijdsduur van één periode in ms dus. Ja

>Je begint met een kort tikje ruis, dit gaat de delay in, dat gaat een filter in (of gewoon een versterkertje MAARR nooit het signaal luider maken alleen zachter!!!) en wordt vervolgens terug gevoerd naar de delay.
>Het signaal sterft dan langzaam uit, afhankelijk van het volume waarmee je het signaal terugvoert de delay in.
Kort tikje ruis => enkele milliseconden dus => m.a.w. een héél korte sample in de delay. Ja, meestal een paar miliseconden
Deze delay gaat oscilleren doordat er een feedback wordt aangelegd (vanachter het opvolgende filter).
De feedbackregeling dient te verzwakken (verminderen) en dus langzaam uit te sterven. Exact

>Probleem hierbij: lage noten zijn veel langer dan hoge (ga maar na)
Een periode duurt inderdaad langer bij een golfvorm met lagere frequentie (lage noot).
Dat is wat je bedoeld ? Precies, als de frequentie 2x zo hoog wordt wordt de delay evenredig 2x zo kort. (ter info, een octaaf is een verdubbeling van de frequentie, van C1 naar C2 halveert dus de uitsterftijd - dat speelt niet lekker)

Nu ???
>ik kon een filter gebruiken dat het signaal nauwelijks verzwakt en ook niet versterkt. De uitsterftijd is zo lang, dat ik het bijna als normale oscillator kon gebruiken.
Die filter wordt hier dan enkel gebruikt om de feedback naar die delay te proportioneren, niet ? Hierbij verandert de klankleur wel, maar blijft het volume precies gelijk. De toon sterft dan niet uit waardoor je hem als gewone oscillator op een adsr kan aansluiten - in het geval van afzwakken van het signaal sterft de toon dus wel langzaam uit) - Dit is mijn idee, het kan ook anders!

Welk type filter moet ik me daarbij dan voorstellen, LPF, HPF, BPF ?
Is dit niet gewoon een regelbare terugkoppeling, daar enkel het volume behandeld wordt ? Ja, begin er eens met dat te realiseren in reaktor

???
>Het signaal uit de feedback-lus gaat dan ook door een tweede filter en daarna door een ADSR envelope, zodat het eerste ruistikje wegvalt en het min of meer als een gestreken snaarinstrument gaat klinken.
Dit lijkt me dan een type filter uit de eerder vernoemde reeks LPF enzo, die gemoduleerd wordt met
een ADSR envelope (zoals een amplifier... Filter-envelope, Amplifier-envelope, enzo). De twee filters zijn gelijk, alleen zit de eerste in het feedback mechanisme, de tweede erna. De tweede is eigenlijk een doodnormaal multimode filter. Dit heb ik gedaan omdat beide een heel andere invloed hebben op de klankkleur.
(...en daarna door een ADSR envelope => een audio signaal door de ADSR ???) Wordt gemoduleerd door...

>Iedere nieuwe noot maakt eerst de delay weer leeg.
En vult deze direct terug op met een nieuw héél korte sample van die ruis, niet ?
(Sample & Hold principe eigenlijk). Dat leegmaken doe je omdat anders het volume groter dan "1" wordt en de feedback lus gaat oversturen. Was een kleine tip

>Hopelijk kan je er wat mee, wel hier het resultaat posten natuurlijk!
Daarvoor is dit alles mij nog niet duidelijk genoeg. Met mijn interpretatie erbij,
hoop ik dat je (of wie nog) begrijpt hoe ik tegen dit gedoe aankijk.
De boel alzo completeren tot een volledig begrip.
Ik zou zeggen begin eens met een delay+feedback en dan de delaytijd koppelen aan je midi keyboard. Dat bouw je steeds verder uit tot het werkt :)
 
Ik zou zeggen begin eens met een delay+feedback en dan de delaytijd koppelen aan je midi keyboard. Dat bouw je steeds verder uit tot het werkt
Ja,... ik zit nog met de vraag hoe die enkelvoudige periode uit die ruis
telkens in die delay te proppen (dat lijkt me stilaan iets van 'if you can't fix it
with a hammer you've got an electrical problem' ... geweldig vind ik die)

de delaytijd koppelen aan je midi keyboard
De midi-noot-on/off commando's bedoel je waarschijnlijk ? Geen probleem.
(velocity ?)
 
1) Dat is nu net de truc met de delay lijnen. Delay uit gaat weer naar delay in. Essentieel om dit te snappen! Probeer het eens. Zie ook het minischemaatje van mijn post eerder in deze draad.

2) Nee, de toonhoogte omzetten naar Herz, dan 1000/freq (als je de delaytijd in ms. moet opgeven.) Ook essentieel voor het principe :P - Ik ken de reaktor delays niet, maar hij moet zo simpel mogelijk zijn: geluid in, een input om de delay tijd op te geven en een audio uit. (dus géén optie om feedback in te stellen, deze maak je juist zelf! zie 1) )
 
>toonhoogte omzetten naar Herz ... :?
Is er hier iemand die dit nog begrijpt ?

Sorry loveyourjunos maar je gebruikt hier allerlei termen te
pas en te onpas door elkaar. Ik snap er geen jota meer van :
>toonhoogte omzetten naar Herz...
Hertz zal je bedoelen en Hertz is de eenheid van frequentie.
De toonhoogte wordt meestal aangegeven met een zekere frequentie.

Verder heeft kennis opdoen voor mij niets met trucjes te maken,
maar juist begrijpen hoe het werkt en alzo alle trucjes doorzien.
M.a.w. voor trucjes ga je naar een circus.

Ik ga het hierbij laten tenzij iemand anders het dan toch minder
verward of meer onderlegd uit kan leggen.
 
Reaktor heeft een aparte module om toonhoogte (lees: midi noot nummer) om te zetten naar Herz. Uit mijn hoofd zit hij bij de event processing modules, het is een module met een P ingang en een F uitgang. Of bouw er zelf een; 8.1757989156 * (2 ^ (midi noot nummer/12)). Dit geeft de frequentie in Herz van de midi noot die gespeeld wordt (dat wat de midi-in module doorgeeft).
 
>toonhoogte omzetten naar Herz ...
Is er hier iemand die dit nog begrijpt ?

hoi, ik vermoed dat je een beetje te rap van stapel loopt en iets probeert te begrijpen zonder dat je de theoretische achtergrond hebt. Daarom misschien je frustratie. Het is idd. geen gemakkelijke materie.

De essentie van dit cicruit is gewoon een stukje noise (een noise oscillator met daarop een Hold envelope -een zeer klein tijdvenster dat je bronsignaal doorlaat- die net een paar milliseconden noise doorlaat) dat in een feedbacklus gestoken wordt. Het probleem met feedback is dat als je er niets aan doet, dat het oneindig blijft doorlussen. Daarom wordt er een lowpass filter in de feedback lus gezet om te voorkomen dat hij oneindig blijft doorgaan. De toon die je gecreeerd hebt dijt langzaam uit, omdat een filter je feedback signaal voortdurend verzwakt.

Als je een stukje noise in een delay lijn steekt (met een delay van een paar milliseconden - laten we zeggen tussen de 3 en 50 milliseconden, begint deze te resoneren. Logisch, want het is een feedback lus. Hoe lager de delay (hoe minder milliseconden), hoe hoger de resonantie, hoe sneller de opeenvolgende delays op elkaar volgen. Dit is de toonhoogte van dit circuit. (edit: Om de snelheid van delays te "matchen" aan een bepaalde toonhoogte-frequentie is een zekere formule nodig. Maar ik vermoed dat dit voorlopig je probleem niet is.)

Probeer eens volgend Reaktor ensemble en speel wat met de parameters. Probeer vervolgens de parameters te begrijpen. Dan zie je dat idd. de delay de toonhoogte bepaalt. En hoe langer je noise in het circuit voedt (de hold envelope) hoe meer je de indruk hebt dat de aanslag (velocity) zwaarder is. Enz.

Het probleem met dit circuit is dat de delay lijn niet leeg gemaakt wordt door elke Midi noot. Maar dit is voor een andere keer en moet ik zelf eerst uitzoeken :)

Ik zou je graag meer uitleggen, maar heb geen tijd meer....

Het Reaktor ensemble is bijgevoegd in bijlage.
 

Attachments

  • Karplus3.zip
    2 KB · Bekeken: 89
Laatst gewijzigd:
Hier reeds een screenshotje.
Nog geen geluid... (werd blijkbaar met een oudere Reaktor versie gemaakt).
Wordt vervolgd.
 

Attachments

  • Karplus.png
    Karplus.png
    36,8 KB · Bekeken: 70
hoi, ik vermoed dat je een beetje te rap van stapel loopt en iets probeert te begrijpen zonder dat je de theoretische achtergrond hebt. Daarom misschien je frustratie. Het is idd. geen gemakkelijke materie.

De essentie van dit cicruit is gewoon een stukje noise (een noise oscillator met daarop een Hold envelope -een zeer klein tijdvenster dat je bronsignaal doorlaat- die net een paar milliseconden noise doorlaat) dat in een feedbacklus gestoken wordt. Het probleem met feedback is dat als je er niets aan doet, dat het oneindig blijft doorlussen. Daarom wordt er een lowpass filter in de feedback lus gezet om te voorkomen dat hij oneindig blijft doorgaan. De toon die je gecreeerd hebt dijt langzaam uit, omdat een filter je feedback signaal voortdurend verzwakt.

Als je een stukje noise in een delay lijn steekt (met een delay van een paar milliseconden - laten we zeggen tussen de 3 en 50 milliseconden, begint deze te resoneren. Logisch, want het is een feedback lus. Hoe lager de delay (hoe minder milliseconden), hoe hoger de resonantie, hoe sneller de opeenvolgende delays op elkaar volgen. Dit is de toonhoogte van dit circuit. (edit: Om de snelheid van delays te "matchen" aan een bepaalde toonhoogte-frequentie is een zekere formule nodig. Maar ik vermoed dat dit voorlopig je probleem niet is.)

Probeer eens volgend Reaktor ensemble en speel wat met de parameters. Probeer vervolgens de parameters te begrijpen. Dan zie je dat idd. de delay de toonhoogte bepaalt. En hoe langer je noise in het circuit voedt (de hold envelope) hoe meer je de indruk hebt dat de aanslag (velocity) zwaarder is. Enz.
Dat is een heldere uitleg :okdan:

Het probleem met dit circuit is dat de delay lijn niet leeg gemaakt wordt door elke Midi noot
Misschien met een note-off event richting de feedback? Of zou dat klikkerig/happerig gaan klinken?
 
Kleine correctie en en vervolg.

>vermoed ... iets probeert te begrijpen zonder dat je de theoretische achtergrond hebt.
Zo is dat.
Ik ben opgeleid aan de school van Morton Subotnic en leerde met allerlei
hardware synthesizers te werken. Zo kijk ik ook naar die software : welke
module is dit, welke dat enz. Maar eens ik de 'gesimuleerde modules' terug
herken, ben ik meestal mee op weg. Ieder zijn benadering. Maar toch...
>een noise oscillator met daarop een Hold envelope
Ik formuleer dat :
Een noise oscillator naar een versterkermodule die gecontroleerd wordt met een Hold envelope.
En, dat is ook wat ik nu in die Reaktor opzet zie. De functie van die 'versterkermodule' wordt
dan wel door het 'math-object' uitgevoerd. De envelope levert een signaal varierend tussen 0 en 1
(waarden 0 en 1 hier concreet).

Vervolg :
De theoretische achtergrond ben ik gelijkertijd aan het doorworstelen...

Vraagje :
Het lijkt me van (groot) belang dat het samplen van die ruis telkens begint en eindigt op een nuldoorgang.
Is dat niet sterk bepalend voor de daaropvolgend ontstane klankkleuren ?

Onderzoek :
Hoe die envelope tijdsduur zodanig corrigeren dat de ruis telkens op een nuldoorgang begint en eindigt bij het samplen ?
(als die vraag uiteraard belang heeft).
 
Snaarplukvergelijking

Snaarplukvergelijking

Snaarplukvergelijking (Karplus-Strong)
Hieronder enkele plaatjes uit Sound Design (Fig. 4.6 op pag 93 en 4.7 pag 95) van "de snaarplukvergelijking" (zoals ik Karplus-Strong maar liever noem).
In Fig. 4.6 zie je het verschil tussen een gewone delay-feedbacklus en snaarpluk.
In Fig. 4.7 wordt het snaarpluk-circuit op verschillende manieren afgebeeld om duidelijk te maken waarom de snaarplukvergelijking (4.7A) niets anders is dan een gewone delay-feedbacklus met een filtertje erin (4.7C).
In Fig. 4.8 is de amplitudekarakteristiek van het snaarpluklaagdoorlaatfiltertje (van 4.7C) te zien. In de tekst wordt verder verklaard waarom dit circuit een filterwerking heeft en ook de amplitudekarakteristiek wordt afgeleid.

attachment.php





attachment.php




ook stugheid van snaar is hoorbaar! (dispersie)
Elke echte snaar heeft een zekere stugheid. De krachten in de snaar zorgen ervoor dat de voortplantingssnelheid waarmee een golffront over de snaar heen en weer kaatst niet langer constant is! Elke hogere frequentiecomponent (trillingsmodus, boventoon) heeft weer een ietsje hogere snelheid. Daardoor wordt de aanvankelijke golfvorm langzaam maar zeker "uiteengerafeld". Dit verschijnsel doet zich ook voor bij watergolven en licht; het heet dispersie (= verspreiding). Je kunt dat uiteenrafelen van de golfvorm prima observeren met een scoop (of scoop-functie zoals in WaveWizard).
Het gevolg ervan is dat de toon niet helemaal zuiver harmonisch is en alle boventonen een tikje ontstemd raken. Dat maakt de toon veel levendiger en realistischer. Bij pianosnaren wordt de mate van dispersie bepaald door de omwinding van de snaar met dun koperdraad.
Het enige wat je moet doen om een dispersie-effect in het snaarpluk-systeem te bereiken is zorgen dat de versterkingsfactoren a en b (in de driehoekjes) niet aan elkaar gelijk zijn! (hun som mag niet groter zijn dan 1, anders ontstaat een exponentiele opslingering van de amplitude en wordt het systeem onstabiel).
(Het dispersie-effect is te verklaren door het niet-lineaire fase-gedrag van het filter als je a ongelijk maakt aan b. Dit wordt in Sound Design niet besproken).


(jugjug)
Het probleem met feedback is dat als je er niets aan doet, dat het oneindig blijft doorlussen. Daarom wordt er een lowpass filter in de feedback lus gezet om te voorkomen dat hij oneindig blijft doorgaan. De toon die je gecreeerd hebt dijt langzaam uit, omdat een filter je feedback signaal voortdurend verzwakt.


feedback-delay circuit
Aan dat "oneindig doorlussen" is niets te doen! Een feedback-delay circuit is een zg. IIR-filter (Infinite Impulse Response) en dat is slechts een ander woord voor "oneindig doorlussen".
Door in een feedback-delay circuit een versterkingsfactor te kiezen die kleiner is dan 1, dempt die responsie in principe exponentieel, d.w.z. blijft "oneindig lang" onhoorbaar doorklinken! Een versterkingsfactor groter dan 1 zorgt voor exponentiele opslingering; we spreken dan van een onstabiel systeem. Zie Sound Design Hoofdstuk 3.

laagdoorlaatfilter
Het laagdoorlaatfilter binnen het Karplus-circuit dient dan ook niet om die oneindigheid te doorbreken, maar om de klankkleur geleidelijk te veranderen (zoals loveyourjunos al opmerkte).
Het laagdoorlaatfilter dat in Karplus wordt gebruikt zal een "toon" van 0 Hz ("DC-component") altijd ongehinderd doorlaten tot in lengte van dagen, want bij 0 Hz is de filter-gain precies gelijk aan 1!

attachment.php



Delay-lijn (= kamfilter)
Een delay-lijn, of het nu een feedforward of een feedback is, is op zichzelf ook een filter, nl. een zg. kamfilter (comb filter). Bij feedforward krijg je een amplitudekarakteristiek met een aantal nulpunten (de tanden van de kam staan omlaag) en bij feedback krijg je een aantal resonanties (tanden staan omhoog). Met WaveWizard kun je die spectrale vormen ook heel gemakkelijk en op verschillende manieren afbeelden (feedforward: zie Fig. 4.10 op pag. 101) en hoorbaar maken.

Kamfilter: Zie ook SynthWiki.
 
Laatst gewijzigd:
Trouwens, alle respect voor het schrijven van die handboeken, ik ga me er zelf ook eens insmijten. Wat ik veel tegenkom in boeken is dat ze veel te lang bij de basis blijven stilstaan -of niet de essentie van de basis niet raken-, of ervan uitgaan dat je de humaniora in de zwaarste wiskunde richting hebt afgemaakt) Wij zijn maar muzikanten, hoor! Zelf heb ik nooit de stap tussen mijn basiswiskunde en het boek van Ken Steiglitz kunnen maken...Soit, ik ga ervan uit dat de grootste randdebielen moeilijke stof kunnen vatten, je moet het maar kunnen uitleggen.:okdan:

Enkel doen sommige termen heel vreemd aan als je het Engels gewoon bent (hmmm "snaarpluklaagdoorlaatfilter" heeft al genoeg zwaarte om een linguistisch congres te kelderen :kroon:)
 
Laatst gewijzigd:
Trouwens, alle respect voor het schrijven van die handboeken, ik ga me er zelf ook eens insmijten. Wat ik veel tegenkom in boeken is dat ze veel te lang bij de basis blijven stilstaan -of niet de essentie van de basis niet raken-, of ervan uitgaan dat je de humaniora in de zwaarste wiskunde richting hebt afgemaakt) Wij zijn maar muzikanten, hoor! Soit, ik ga ervan uit dat de grootste randdebielen moeilijke stof kunnen vatten, je moet het maar kunnen uitleggen.:okdan:

Enkel doen sommige termen heel vreemd aan als je het Engels gewoon bent (hmmm "snaarpluklaagdoorlaatfilter" heeft al genoeg zwaarte om een linguistisch congres te kelderen :kroon:)


Sound Design is geschikt voor iedereen die een heeeeel klein beetje wiskunde op school heeft gehad en is dus toegankelijk voor meer dan 75% van de Nederlandse bevolking....
Uit het feit dat leerlingen die amper iets van geluid weten en geen enkele ervaring hebben met synthesizers (zelfs meestal niet eens weten wat dat is!) en niettemin al na 15 lessen rijp zijn voor snaarpluk en filtertheorie, betekent ook dat de benadering die we hebben gekozen kennelijk effectief is.

Tja, ..."snaarpluklaagdoorlaatfilter"... Praat jij dan liever over een "Karplus-Strong 1st order finite impulse response low pass filter"? :)
 
WaveGuide7 ... laat ons eens mp3's horen van die echo-feedbackvergelijking en snaarplukvergelijking. :dj:

Verder terug naar de zaak graag, naar de voorbeelden van loveyourjunos en JugJug ! :kimono:

>Hoe slaag je erin om roze ruis zo tonaal te doen klinken, daar zit toch wel meer in dan enkel een filtering of niet ?
>Het lijkt me van (groot) belang dat het samplen van die ruis telkens begint en eindigt op een nuldoorgang.
>Is dat niet sterk bepalend voor de daaropvolgend ontstane klankkleuren ?

Die vragen (ja, ik weet het...) brengen de physical modelling theorie een stuk dichterbij,
naar de praktijk waar het pas nuttig wordt.

P.s. wie de praktijk niet kan volgen zie ook :
>Ondertussen is SyncModular freeware geworden. Als je met Reaktor kunt werken, kan je ook met SyncModular werken
 
Back
Top