WaveWizard

Bedoel je met "gewoon" terug-routen dat in Clavia een delay-free feedback-loop mogelijk is?
Zo ja, staat dat in de manual of heb je dat zelf vastgesteld? Dan hoor ik graag hoe.

(Ik stel de vraag alleen maar even, omdat in jouw eigen patch https://www.synthforum.nl/forums/attachment.php?attachmentid=95170&d=1394267139 een delay wordt gebruikt die is ingesteld op de kortste range (5ms) met de timer-waarde op minimaal (0,01 ms). Korter is niet mogelijk en 0,01 ms is groter dan nul, en daarmee is de loop niet delay-free.)
 
Laatst gewijzigd:
Met het terug routen bedoel ik feedback, zonder delay module.
Omdat dit in een digitaal domein plaats vind zal dit niet (sample) delay free gebeuren.
Het fijne is dat je zonder extra implementatie kan terug routen. Dus schijnbaar analoog.
Hoewel fijn, dit geeft natuurlijk een vertekend digitaal beeld. Wat gebeurt er 'under the hood'?

werkend met Beap modules voor MAX/MSP geeft schijnbaar analoog en terug routen problemen:
https://github.com/stretta/BEAP/wiki/BEAP-Modular---Overview-and-Install
https://www.youtube.com/watch?v=A7EMG7Tnots

En ook met EuroMax:
http://www.behance.net/gallery/7842013/Euromax-for-MaxMSP
 
Gezien vanuit modulair, vraagt het natuurlijk om een "umdenken", en dat lijkt eerst hopeloos ingewikkeld en onhandig, en je moet echt gaan nadenken en op een papiertje een formule uitwerken. Daar doe je een paar minuten over en het is wat minder direct, want je hoort nog niks. Maar hoe zou je zoiets modulair doen? Eerst 50 zaagtandgeneratoren van de plank halen? Dan 50 random-modules pakken waarmee vervolgens 50 kabels gelegd worden naar de frequentie-inputs van de toongeneratoren en dan nog eens 50 kabels naar delaylijnen en nog weer eens 50 kabels naar mixers? En stel dat je uiteindelijk vindt dat 50 zaagtanden nog niet genoeg zijn of juist teveel? Moet je nog weer meer kabels leggen of weghalen. Terwijl je datzelfde met de code-benadering doet door slechts een ander getal in te typen achter N, het aantal toongeneratoren..
Is dit niet puur het 'gemak' wat je beschrijft, gegeven door het feit dat je dankzij die tool kan kiezen tussen Vorm en Restvorm bij het starten/designen van je patch?

Zoals je de thread geloof ik al startte, met noise+filtering e.d. kan je alle geluiden maken (heel kort dd bocht). Dat komt op me over, als een Restvorm manier van werken.. in beeldhouwen, het uithakken van een figuur bijna zo groot als het blok, gaat sneller dan het van scratch opbouwen, boetseren en in laagjes opbouwen van zoveel materiaal.. het vergt tevens andere aanpak/planning/desing. De vergelijking gaat natuurlijk snel mank, aangezien we niet beeldhouwen.

Ookal start je met 50 zaagtanden, ook jij bent er niet meteen.. evenals degene die alles los moet patchen, die zal langer bezig zijn om op het (zelfde) punt aan te komen als waar jij bent. Echter, als diegene die de moeite heeft genomen werkelijk alles x50 te patchen, die zou dan gok ik, beloond worden met een meer tweakbare patch. In opboetseren, diegene kan makkelijk nog een andere neus op "plakken".. de beeldhouwer, die restvorm werkt, heeft pech als de neus eraf is.. die zal het hele blok moeten bijschaven of andere maatregelen moeten nemen. Maargoed, de vergelijking gaat ook hier snel mank.. maar ik kan de benadering wel volgen zo. Zie jij dit ook zo?

Iig ik vind de benadering vanaf noise geweldig, het is inderdaad zo.. als je met 1x noise begint, en een delayed Copy daarvan precies op elkaar zet zonder delay... dan is het stil, en elk verschil wat je aanbrengt in de kopie, wat het ook is > wordt hoorbaar. Ookal lijkt dat in eerste instantie niet op restvorm werken (omdat het eerst stil is), imo is dat het toch ookal hoor je bij elke wijziging die je aanbrengt iets meer, het is toch eigenlijk 't zelfde als het beeld wat steeds meer vorm krijgt naarmate je uithakt.. zit ik nog warm? (of is 't geraaskal / spinsels :) )
 
Laatst gewijzigd:
Is dit niet puur het 'gemak' wat je beschrijft, gegeven door het feit dat je dankzij die tool kan kiezen tussen Vorm en Restvorm bij het starten/designen van je patch?

Zoals je de thread geloof ik al startte, met noise+filtering e.d. kan je alle geluiden maken (heel kort dd bocht). Dat komt op me over, als een Restvorm manier van werken.. in beeldhouwen, het uithakken van een figuur bijna zo groot als het blok, gaat sneller dan het van scratch opbouwen, boetseren en in laagjes opbouwen van zoveel materiaal.. het vergt tevens andere aanpak/planning/desing. De vergelijking gaat natuurlijk snel mank, aangezien we niet beeldhouwen.

Net zoals bij modulair is ook binnen de code-aanpak van software als WaveWizard (maar ook CSound, Matlab, SuperCollider) de manier van werken (Vorm of Restvorm) vrij te kiezen; je kunt ze naast en door elkaar gebruiken. Daarin zit niet echt een onderscheid tussen beide systemen.

Veel wezenlijker verschil is dat modulair "instantaan" werkt; geluid wordt in modulair beschouwd als een stream en werken aan geluid als een game: je maakt klankveranderingen door real time interactie. Ik denk dat juist daarin de grote charme van modulair schuilt, maar tevens de belangrijkste beperking: de tijd is in modulair precies wat we ervan gewend zijn, nl. een asymmetrische dimensie (d.w.z. je kunt maar één kant op: richting toekomst). Er is in modulair alleen maar het nu. Verleden en toekomst bestaan niet meer of nog niet. In modulair is geluidmanipulatie zo ongeveer als sleutelen aan een rijdende auto.

Maar als je de tijd kunt stil zetten of zelfs achteruit kunt laten lopen, m.a.w. als je van de tijd een "random access" parameter maakt, voeg je een nieuwe, uiterst krachtige dimensie toe aan het creatieve proces, zoals al eeuwen bekend is in elke cultuur die een notenschrift heeft. Daardoor krijgen heel andere - aanzienlijk complexere - muzikale structuren een kans, ongeveer zoals complexere levensvormen in de evolutie tengevolge van het ontstaan van DNA. De tijd als "random access" parameter is dan ook het basis-idee achter MIDI-sequence en muzieknotatie software (bijv. Cubase): elke MIDI-event wordt toegankelijk gemaakt voor manipulatie buiten real time.

Datzelfde gebeurt ook in code-geörienteerde software zoals WaveWizard. De geluidssporen van WaveWizard zijn, net als bij Cubase, "random access": op elk tijdstip tijdens een design sessie is elk geluidsfragment bereikbaar/editeerbaar/procesbaar. Daardoor verschaft code-software een "compositie-model" op signaalniveau: het signaal is in elk (discreet) tijdstip expliciet.

Voor alle ontwerp-processen, niet alleen in geluid, maar bijvoorbeeld ook Computer Graphics, geeft de code-aanpak naast de meeste efficiëntie ook de meeste vrijheid en expressie-kracht (denk bijv. aan de scripting-taal Python in Blender). Ook Kyma kent trouwens een scripting taal.

Echter, als diegene die de moeite heeft genomen werkelijk alles x50 te patchen, die zou dan gok ik, beloond worden met een meer tweakbare patch.

Dat zou je misschien geneigd zijn te denken ja, maar toch is de mate van tweakbaarheid in het geval van de "code-benadering", zoals WaveWizard, exact even groot als in het geval van een patch met 50 modules, want alle tweakbare parameters kun je, als dat nodig is, voor elke individuele zaagtandgenerator, voorafgaand aan een lus, apart specificeren in een array. Volgend op die arrayparameter-specificatie zet je dan de hoofdlus, die 50 of 100 of hoe vaak dan ook wordt doorlopen, waarbij in elke iteratie (lus-doorgang) de zaagtandgenerator wordt aangeroepen met z'n eigen, unieke array-instellingen. Ook in dat geval is de code-benadering veel korter en overzichtelijker en zelfs veel sneller en gemakkelijker te tweaken dan modulair: in plaats van met de muis elke module aan te klikken en getalwaarden in te stellen, kun je bij code snel een boel getallen in de array-lijst aanpassen.

Een goed voorbeeld daarvan is de implementatie in WaveWizard van een MIDI-sequencer. Naast een commando voor het openen van het Midi-bestand bestaat de sequencer in principe slechts uit twee regels tekst (FOR...NEXT) die een lus-commando specificeren. Binnen die lus neem je dan bijv. code voor een toongenerator en een filter op. In de parameters van generator en filter, zoals frequentie, amplitude, cut off etc. specificeer je de array-namen die automatisch zijn aangemaakt tijdens het openen van het Midi-bestand, waarbij nootbegintijdstip, nootlengte, volume etc. zijn opgeslagen. Bij elke lus-iteratie wordt dan één enkele noot doorgerekend. Voor meer details van Midi-sequencing met WaveWizard zie Hoofdstuk 6 van de NLT-module Sound Design (http://betavak-nlt.nl/downloads/v123/v123_Sound_Design_ll_ev_24092010.pdf/).


attachment.php
 

Attachments

  • Fig_42.jpg
    Fig_42.jpg
    40 KB · Bekeken: 145
[Net zoals bij modulair is ook binnen de code-aanpak van software als WaveWizard (maar ook CSound, Matlab, SuperCollider) de manier van werken (Vorm of Restvorm) vrij te kiezen; je kunt ze naast en door elkaar gebruiken. Daarin zit niet echt een onderscheid tussen beide systemen.

Veel wezenlijker verschil is dat modulair "instantaan" werkt; geluid wordt in modulair beschouwd als een stream en werken aan geluid als een game: je maakt klankveranderingen door real time interactie. Ik denk dat juist daarin de grote charme van modulair schuilt, maar tevens de belangrijkste beperking: de tijd is in modulair precies wat we ervan gewend zijn, nl. een asymmetrische dimensie (d.w.z. je kunt maar één kant op: richting toekomst). Er is in modulair alleen maar het nu. Verleden en toekomst bestaan niet meer of nog niet. In modulair is geluidmanipulatie zo ongeveer als sleutelen aan een rijdende auto.]

Nu, werkend met de Pacarana, noem ik code: abstract modulair.

Zoals je al eerder schreef, code is ook in blokjes.

Met analoog modulair is het het 'nu' moment.
D.m.v. control signals en/of midi kan alleen de 'toekomst' worden bepaald.
 
Ik vermoed - met enige ervaring Capybara (versie 1999) - dat jij met Pacarana veel meer armslag gaat krijgen dan met Clavia NM. Ben benieuwd. Heeft Pacarana ook een scripting-taal (was dat niet Smalltalk?)
 
De Pacarana brengt mij enorm veel. Na eerst een wenperiode(software, architectuur en concept) weet deze bak met 4 processors mij oneindig te boeien. En ja, Smalltalk kan nog steeds. Ook de combi Pacarana=NMG2, of een akoestisch instrument, is geweldig. :okdan:
 
Feedforward- en feedback delaylijn, All Pass

Feedforward- en feedback delaylijn, All Pass

Ter samenvatting nog even de twee echo-effecten (feedforward en feedback) vergeleken en uitgedrukt in WaveWizard-code:
Code:
*********************************
echo-feedforward en echo feedback
*********************************

[B]Out[n] = In[n] + a*In[n-N] [/B]    - feedforward; 
                               - eenmalig echo-effect (bv. muur, 50Hz brom verwijderen); 
                               - a kan elk getal zijn;


[B]Out[n] = In[n] + a*Out[n-N] [/B]   - feedback;
                               - repeterende echo (bv. tussen 2 muren, toongenerator)   
                               -   |a| < 1.


Met de combinatie van feedforward en feedback kun je ook een All Pass filter maken, dat o.v.a. gebruikt wordt in een van de oudste galm-algoritmen, nl de Schroeder-galm die een cascade van All Pass filters is:

Code:
***************
All Pass filter
***************

[B]Out[n] = -a*In[n] + In[n-N] + a*Out[n-N] [/B]        |a| < 1.
 
Laatst gewijzigd:
Hier een Claviaanse All Pass voor je met een schakeling voor 1 kam van Schroeders

Delay is òfwel kam, òfwel all pass. Schroeder-galm is all pass, dus wat bedoel je met "kam van Schroeders"?

De link:
Deze patch is dus een van de velen op het gebied van kaatsing in dit boek.
In het VA gedeelte(boven) een random triggered melodie.
In het FX gedeelte(beneden) de AllPass.
Doordat Delay Clock 2 wordt terug gerouteerd is het een 1 kamfilter

In de patch: Mix2-1B1 zie ik de Attenuators verschillend ingesteld (nl. 88.3 en 93.0). Hoe kan dat een All Pass opleveren?
 
"Een 1 kam filter vanuit de All Pass" is onmogelijk. Een All pass-filter kan niet leiden tot een kamfilter - ook niet in een cascade-schakeling. "Kam" en "all-pass" sluiten elkaar uit (zoals "krom" en "recht").

De amplitudekarakteristiek van een kamfilter heeft òfwel een "bogen gewelf" (bij feedforward, zie https://www.synthforum.nl/forums/showpost.php?p=1735931&postcount=547) òfwel een "piek-gewelf" (bij feedback).

De amplitudekarakteristiek van een all pass-filter is een horizontale rechte (alle frequenties worden versterkt met factor 1, dus ze zijn in amplitude identiek aan die van de input).

Het Clavia-circuit kan de All Pass-eigenschap niet hebben, want de waarden van de twee Attenuators zijn ongelijk (vgl All Pass formule in #568 ).
 
Hier de "partituur" (sonogram). Elke sinustoon (noot) wordt weergegeven als een kort, horizontaal streepje. De tijd loopt van links naar rechts, net zoals in het notenschrift; de frequentie van beneden naar boven, ook zoals in het notenschrift, maar een stijgende of dalende melodie wordt niet afgebeeld als een rechte lijn, maar als een kromme. Dat komt omdat een sonogram gemaakt wordt m.b.v. de FFT die een lineaire set frequenties berekent. Aangezien de frequenties van de tonen van een toonladder een exponentiële reeks vormen, worden ze op de FFT-set krom afgebeeld.

attachment.php
 

Attachments

  • sonogram sinusfluijes.jpg
    sonogram sinusfluijes.jpg
    55,5 KB · Bekeken: 146
Mn vorige pch was bedoeld om met de NMG2 te illustreren:

[Met het terug routen bedoel ik feedback, zonder delay module.
Omdat dit in een digitaal domein plaats vind zal dit niet (sample) delay free gebeuren.
Het fijne is dat je zonder extra implementatie kan terug routen. Dus schijnbaar analoog.
Hoewel fijn, dit geeft natuurlijk een vertekend digitaal beeld. Wat gebeurt er 'under the hood'?

werkend met Beap modules voor MAX/MSP geeft schijnbaar analoog en terug routen problemen]
 
ik ga, wanneer ik wat tijd heb, eens proberen deze in een hardware versie te bouwen...

:mega:

Ter samenvatting nog even de twee echo-effecten (feedforward en feedback) vergeleken en uitgedrukt in WaveWizard-code:
Code:
*********************************
echo-feedforward en echo feedback
*********************************

[B]Out[n] = In[n] + a*In[n-N] [/B]    - feedforward; 
                               - eenmalig echo-effect (bv. muur, 50Hz brom verwijderen); 
                               - a kan elk getal zijn;


[B]Out[n] = In[n] + a*Out[n-N] [/B]   - feedback;
                               - repeterende echo (bv. tussen 2 muren, toongenerator)   
                               -   |a| < 1.
Met de combinatie van feedforward en feedback kun je ook een All Pass filter maken, dat o.v.a. gebruikt wordt in een van de oudste galm-algoritmen, nl de Schroeder-galm die een cascade van All Pass filters is:

Code:
***************
All Pass filter
***************

[B]Out[n] = -a*In[n] + In[n-N] + a*Out[n-N] [/B]        |a| < 1.
 
Tijdvariant All Pass

Tijdvariant All Pass

Je kunt een soort phaser effect creëren door de parameters van het All Pass systeem tijdvariant te maken.

De formule van het All Pass luidde:

Code:
S2[n] = -a*S1[n] + S1[n-N] + a*S2[n-N]

Daarin zijn a en N de parameters. Met a regel je de decaytijd en met N de lengte van de delaylijn, dus de reflectietijd.
Stel, je wilt a sinusvormig laten variëren op een lage frequentie. Dan vermenigvuldig je a met de sinusfunctie, je krijgt dan:

a*sin(w*n)
Daarin is:
w = 2*pi*f*Ts de hoekfrequentie en f de frequentie in Hz;
Ts = 1/Fs is de unit sample delay.

En stel dat je de delaylijn steeds langer wilt maken, dan moet N steeds groter worden. Dat kun je doen door steeds bij N een tijdafhankelijk klein getal op te tellen. Aangezien het symbool n in WaveWizard-formules altijd de (discrete) tijd voorstelt, kun je de toename van N bijvoorbeeld schrijven als: N+0,001*n.
Kortom, vervang in de formule boven als volgt:

Code:
a   wordt  [COLOR="Red"] a*sin(w*n) [/COLOR]  
N   wordt  [COLOR="Blue"] (N+0,001*n)[/COLOR]

Copy/Paste die vervangingen in de formule, dan komt er:
Code:
S2[n] = -[COLOR="Red"]a*sin(w*n)[/COLOR]*S1[n] + S1[n-[COLOR="Blue"](N+0,001*n)[/COLOR]] + [COLOR="Red"]a*sin(w*n)[/COLOR]*S2[n-[COLOR="Blue"](N+0,001*n)[/COLOR]]

Hiermee heb je een tijdvariant all pass systeem. Wat daarmee in 't verschiet ligt is een tijdvariant Schoeder-galm-effect.
De meeste galm-effecten zijn nog steeds niet tijdvariant, terwijl een echte, met mensen gevulde concertzaal wel tijdvariant is, omdat de reflectie-eigenschappen voortdurend veranderen t.g.v. opstijgende lucht. Zo'n concertzaal of kerk is eigenlijk één grote, decorrelerende chorus-bak. Daar zitten ook knopjes aan, waar de toneelmeester of de koster aan kan draaien: ramen verder open of dicht doen, waardoor 't meer of minder gaat tochten.8~
 
:eureka:
Wordt dat dan een volledig analoog circuit?


analoog en digitaal, denk ik zo.....
( het complete filtergedeelte analoog, en de delay digitaal)

:mega:
 
Back
Top