WaveWizard

@Waveguide, een pch, nog niet volmaakt, maar je kan in ieder geval mn denklijn zien.
Mn volgende stap is om de filters beter te kunnen sturen. Dus niet het control signaal van de EG te gebruiken. Met deze wil ik de Control Sequencer(map sequencers, de laatste) aansturen en als control sig voor de filters gebruiken. Deze tunen voor de harmonischen. Een soort waveguide dus :)

@VCOVCA, over in dit geval filter vergelijking tussen code van WaveWizzard en modulaire synthese. Nu al kan ik vertellen dat code makkelijker en sneller werkt, grijns.
Maar niet als boer met kiespijn, want modulair is mn ding maar wil ook verder dan dit kijken. Deze pch zou zonder deze draad nooit, door mij, gemaakt zijn:)
Vooral blij met de VCA EG aansturing.
 

Attachments

  • Diy BPF2.pch2
    4,1 KB · Bekeken: 207
Met Control Seq maar nog 'ongestemd'. Ook de Compaire to Level modules worden nu door de Control Seq gemoduleerd. Dus met het tunen, moeten deze ook bijgesteld worden.
Plaatje toegevoegd voor niet G2Demo users.

In vorige post schreef ik dat code sneller werkt. Als onderzoekstool bedoelde ik.
Waar ik benieuwd naar ben WaveGuide, componeer je en met welk programma?
 

Attachments

  • Diy BPF2B.pch2
    4,3 KB · Bekeken: 190
  • Roland Kuit BPF 2B.jpg
    Roland Kuit BPF 2B.jpg
    127,9 KB · Bekeken: 201
Laatst gewijzigd:
WaveGuide7 toch enigzins verwarrend hoor als je weet dat men 'een extreem kort geluidje' ook een puls noemt (toneburst).
Jij bedoeld dus blijkbaar een puls van een pulsgolf ?
Welke frequentie en pulsbreedte moet die hebben (m.a.w. welk spektrum aan boventonen is voor dat kort geluidje vereist) ?
Post anders een wav a.u.b.
Waarom is de lengte Q-factor afhankelijk ?

Voor zulke metingen gebruik ik zelf meestal witte ruis ofwel een sinusgolf-sweep, maar jou oplossing oogt allicht veel makkelijker (bvb. om de vocoder-module door te meten), dus 'I'll give it a try'.
(die vocoder-module is niet in de demoversie werkzaam blijkbaar)


Inderdaad gebruiken we het begrip 'puls' in twee verschillende betekenissen:

(1) "witte" puls: "één enkel, los sample-getal".
Dit is de puls waar we het hier over hebben. Als je in de DSP-literatuur de term 'pulsrepons' of 'impulse response' tegenkomt, dan wordt daarmee altijd bedoeld: het "antwoord" dat een filter geeft als je op de input één enkele, eenmalige, losse sample zet (een andere bron van verwarring is dat woord 'sample' dat ook 2 betekenissen heeft: in de muziek is een sample een geluidsfragment, in DSP is een sample altijd "één enkel, los getal". Ik gebruik het woord altijd in de DSP-betekenis.)
Deze puls heeft een heel bijzonder spectrum: dat is namelijk constant. De grafiek van het spectrum van een puls is een volkomen strakke, horizontale lijn: alle frequenties zijn exact even sterk (en liggen oneindig dicht op elkaar). Er bestaat maar één ander signaal met zo'n constant spectrum en dat is witte ruis. Witte ruis heet juist "wit", naar analogie van het constante spectrum van wit licht: alle kleuren (frequenties) zijn er even sterk in aanwezig. Daarom kun je ook de klank van die "ene enkele, losse sample" wit noemen.

In onderstaande code wordt een puls op spoor S1 aangemaakt, waarvan de amplitude gelijk is aan 8000. Dat het spectrum inderdaad constant is blijkt als je er de FFT van berekent.
Dat gebeurt als volgt (je kunt onderstaand codeblok in z'n geheel met de muis selecteren en met Ctrl c / Ctrl v droppen in Commandovenster, en dan op Start-button klikken, wis eerst het Grafiekvenster) :
Code:
Wis buffers
  Wis buffer (F1...F32, S1, S2, S3)    S1  |  S2  |  S3
S1[0] = 8000
FFT
  Input Buffer (ook 16-bits bufs)    S1[0]
  Output Buffer reele deel           F3[0]
  Output Buffer imaginaire deel      F4[0]
  Output Buffer Amplitude spectrum   F1[0]
  Output Buffer Fase spectrum        F2[0]
  Venstergrootte (in bits)           10
  Hann window? ('j' of 'n')          n
  Grafiek aanpassen? ('j' of 'n')    j
  Grafiek Hoogste Freq               22050
  Grafiek Laagste Freq               0
  Log-weergave ('j' of 'n')          n
 
Teken grafiek van F-buffers F1

Je ziet dat het spectrum van een puls inderdaad een horizontale rechte is.

Nu die tweede betekenis van het begrip 'puls':

(2) "gekleurde puls"
Een klop op de deur, een tik met een hamer, alle percussieve geluiden noemen we pulsen, of puls-achtige geluiden. Dat zijn die 'tonebursts' van jou. Al deze klanken bestaan ALTIJD uit meerdere samples op een rij en die hebben NOOIT een strak, constant spectrum. Er zitten altijd bergen, pieken, dalen en afgronden in. Het timbre is dan ook niet "wit" maar "gekleurd". Vandaar: gekleurde pulsen.

Kijk je nu naar de pulsrespons van een filter, dan zie je dat die ALTIJD langer is dan "één enkele, losse sample". Je kunt zelfs zeggen dat dit de definitie is van een filter: het voegt aan dat ene sample-getal op de input altijd een of meerdere, meestal zelfs oneindig veel (steeds zachter wordende) samples toe. Je kunt uberhaupt geen filterwerking maken zonder dat het geluid van een puls erdoor wordt uitgebreid tot een rijtje van meerdere samples. Met andere woorden: filteren = reflecties toevoegen!! Er bestaat simpelweg geen andere manier om een filter te construeren!!!!!

Nu terug naar de code van hierboven. Voeg je nu onder de regel:

S1[0] = 8000

nog de volgende regel toe:

S1[1] = 8000

dan heb je twee pulsen, ofwel twee samples, vlak achter elkaar. Dat MOET dus een gekleurde puls zijn. Klik weer op Start-button (eerst scherm wissen!). Je zult zien dat het spectrum geen horizontale, rechte lijn meer is, maar van links naar rechts, met het toenemen van de frequentie, in een fraaie bocht (cosinus!), naar nul gaat. Het spectrum is dus niet wit meer en de puls klinkt dan ook ietsje doffer.
Dit is overigens de pulsrespons van een filter dat we hier op SF inmiddels al vaak zijn tegengekomen, namelijk het simpele laagdoorlaatfiltertje in de feedback-delaylijn van Karplus-Strong!

Zet nu eens een min-teken voor die tweede puls, dus:

S1[1] = -8000

Je hebt nu dus wederom twee pulsen vlak pal naast elkaar, maar nu is de eerst positief en de tweede negatief. Wat voor effect heeft dat op het spectrum? Je ziet nu de frequentiekarakteristiek gespiegeld, we hebben nu de pulsrespons van een HOOGdoorlaatfilter.

Als je dat in Karplus-Strong zou gebuiken, krijg je het zeer onnatuurlijke effect dat niet de lage tonen, maar de hoge het langst doorklinken. Dit is al eens opgemerkt door Sander02 (https://www.synthforum.nl/forums/showthread.php?p=1464953#post1464953).
Waarom is de lengte Q-factor afhankelijk ?
De Q-factor kun je op twee manieren interpreteren, nl. in termen van frequentie en in termen van tijd.

(1) frequentie:
Hoe hoger de Q-waarde, des te smaller en scherper bandbreedte van de resonantiepiek van een filter.

(2) tijd:
Hoe hoger de Q-waarde van een filter, des te langer de pulsrespons.
Hieronder een codevoorbeeld van een Butterworth banddoorlaatfilter.
Experimenteer met de waarde van 'Bandbreedte (Hz)'.
Naarmate je die waarde kleiner maakt, zie je op spoor S2 de lengte van de pulsresponsie toenemen.
Luister hoe de klank, met het toenemen van de pulsresponslengte, geleidelijk over gaat van een "klak"-geluid naar een fluittoontje.
Code:
Wis buffer (F1...F32, S1, S2, S3)    S1  |  S2  |  S3
S1[0] = 8000
Butterworth Banddoorlaat
  Input                    S1[0]
  Output                   S2[0]
  Centrumfrequentie (Hz)   1200
  Bandbreedte (Hz)         500
  Duur (ook 'sec')         5 sec
  Flanksteilheid (< 50)    4
  Volume (0...100)         1
  Additief ('j' of 'n')    n
 
Met Control Seq maar nog 'ongestemd'. Ook de Compaire to Level modules worden nu door de Control Seq gemoduleerd. Dus met het tunen, moeten deze ook bijgesteld worden.
Plaatje toegevoegd voor niet G2Demo users.

In vorige post schreef ik dat code sneller werkt. Als onderzoekstool bedoelde ik.
Waar ik benieuwd naar ben WaveGuide, componeer je en met welk programma?


Roland, ik heb je zojuist patches gedownload, maar nog niet kunnen beluisteren. Ik hoop daar morgenmiddag aan toe te komen.

I'll be back...:walker:
 
Hoi Roland, ik heb je patches beluisterd. Het is een heel stuk complexer geworden, zeg! Die sequencer vind ik erg leuk; je kunt op die manier een aantal toontesten achter elkaar laten horen. Overigens kun je datzelfde met WaveWizard doen door betreffende instructies simpelweg in een lus te plaatsen. Dat gebeurt d.m.v. code die je in elke programmeertaal zoals Basic of C(++) tegenkomt: FOR...TO...NEXT.

Maar wat is er nu precies veranderd in de klank? Die bandbreedte waaiert nog steeds uit met het toenemen van de frequentie. Ik heb er nog eens over nagedacht en mijn conclusie is: als je echt een antwoord wilt kunnen geven op de vraag of het mogelijk is om met Clavia een banddoorlaatfilter te bouwen dat even steile flanken heeft als een Butterworthfilter, dan zou je het over een heel andere boeg moeten gooien. Ik zou twee kleine patches maken waarin het HP en het LP filter afzonderlijk aan de tand worden gevoeld met verschillende constante waarden van de cutoff. Je krijgt dan een beeld van zowel de karakteristiek van de afzonderlijke filters als ook van de aansturing van de cutoff-parameter. Verder zou ik als input geen zaag nemen, want daarmee test je het filter slechts op een aantal afzonderlijke frequenties (nl. die van de boventonen) en je wilt natuurlijk de volledige frequentierepsons van het filter weten. Er zijn dan drie mogelijkheden, waarvan we er in vorige posts al twee hebben besproken:

(1) witte ruis
Ook de ongefilterde ruis zou hoorbaar gemaakt moeten, zodat kan worden gechecked of die wel echt helemaal wit is. Dat kan met de spectrum analyzer van WaveWizard.

(2) een sinus waarvan de frequentie geleidelijk toeneemt van 0 tot 22 kHz. Dit is het bekende "doorfluiten" dat audiocollage hierboven al noemde ("sinus-sweep", https://www.synthforum.nl/forums/showpost.php?p=1475741&postcount=39). De sweep moet denk ik toch gauw zo'n 10-20 sec duren.

(3) puls
Ik heb in de manual van Clavia nog geen mogelijkheid ontdekt om een zuivere digitale puls te maken (hoe je die in WaveWizard maakt, zie post #43 https://www.synthforum.nl/forums/showpost.php?p=1476124&postcount=43). In Clavia moet je het doen met een pulsgolfgenerator met duty-cycle 1%. Je zou dit signaal eerst apart moeten uitsturen en het spectrum ervan bepalen. Daarmee kan vervolgens de filterkarakteristiek worden gecorrigeerd, maar dat is nodeloos ingewikkeld. Wellicht zie jij nog andere mogelijkheden om Clavia ertoe te bewegen een enkel los sampeltje op te wekken, gevolgd door stilte. Zo moeilijk moet dat toch niet zijn, zou je zeggen.

Hiermee krijg je een veel beter idee van de eigenschappen van de Clavia-filters en de manier waarop de aansturing van filterparameters is geregeld. Op basis daarvan kun je dan misschien een patch met de gewenste steile flanken gaan bouwen. Maar ik heb zo'n voorgevoel dat dat heel, heel moeilijk gaat worden....

Waar ik benieuwd naar ben WaveGuide, componeer je en met welk programma?

Ja ik componeer wel eens wat. Niet alleen noten op papier, maar ook sequencing en compositie-algoritmen; de laatste tijd doe ik veel geluidseffecten. Het programma dat ik gebruik heet eh ... kan even niet op de naam komen.... O ja: WaveWizard!

Hier een voorbeeldje. Het bijgaande plaatje is een sonogram dat op de voorpagina van NLT-module Sound Design prijkt. De klank die erbij hoort vind je hieronder in VoorplaatSoundDesign.mp3. Het is wel leuk om tijdens het afspelen naar het sonogram te kijken, waarin, net zoals bij de notenbalk, de tijd horizontaal en de frequentie (toonhoogte) verticaal loopt. Je hoort en ziet zowel de bandbreedte als de centrumfrequentie toe- en afnemen. Ik kies dit voorbeeld juist weer om de kracht van het Butterworth bandfilter te demonstreren en het gemak waarmee je in WaveWizard zowel de bandbreedte als de centrumfrequentie onafhankelijk van elkaar door verschillende tijdfuncties kunt aansturen: twee regeltjes tekst...
 

Attachments

  • VoorplaatSoundDesign.mp3
    2,1 MB · Bekeken: 192
  • NLT-module Sound Design.jpg
    NLT-module Sound Design.jpg
    47,8 KB · Bekeken: 193
Hieronder de witte ruis van de NM G2 met daarachter diezelfde ruis gefilterd met een LPF op -36 dB.
Hoe je deze wav nu op die grafiek-preset van wavewizard dient te tonen is me nog niet duidelijk (na enkele pogingen).
(Ik doe dat dan met CoolEdit zoals vele andere van deze dingen en daaruit blijkt die 36 dB ook correct te zijn.)
Tweede file is die puls (één enkel getal of sample) als wav file.

Verder vind ik die DSP-terminologie steeds flink verwarring zaaiend, zoals :
'filteren = reflecties toevoegen! (ja wadda... alle natuurwetten weer effe rap weggegooid, vandaar zoveel interesse voor dsp wss.)
Kunnen dsp-freaks dan echt geen 'nieuwe bewoordingen' vinden bvb. :
'terugkoppelen = reflecties toevoegen!'

[EDIT]Ooops vergeten... die cutoff staat op 1050 Hz)[/EDIT]
 

Attachments

  • W Noise & 36 dB NMG2 LPF.wav
    838,8 KB · Bekeken: 195
  • WaveWizard Puls.wav
    56 bytes · Bekeken: 197
Laatst gewijzigd:
Bedankt, ga zeker even dit bekijken.
Klinkt geweldig die 2 regeltjes txt!
Heb hier een puls tikje voor je. Kan ook uit de keyboard module gehaald worden.
Mischien vind je dit wel grappige filters:
https://www.synthforum.nl/forums/showthread.php?t=150483
onderaan. G2stuff+audio examples.
 

Attachments

  • Pulsje.pch2
    961 bytes · Bekeken: 184
Hieronder de witte ruis van de NM G2 met daarachter diezelfde ruis gefilterd met een LPF op -36 dB.
Hoe je deze wav nu op die grafiek-preset van wavewizard dient te tonen is me nog niet duidelijk (na enkele pogingen).
(Ik doe dat dan met CoolEdit zoals vele andere van deze dingen en daaruit blijkt die 36 dB ook correct te zijn.)
Tweede file is die puls (één enkel getal of sample) als wav file.

Verder vind ik die DSP-terminologie steeds flink verwarring zaaiend, zoals :
'filteren = reflecties toevoegen! (ja wadda... alle natuurwetten weer effe rap weggegooid, vandaar zoveel interesse voor dsp wss.)
Kunnen dsp-freaks dan echt geen 'nieuwe bewoordingen' vinden bvb. :
'terugkoppelen = reflecties toevoegen!'

[EDIT]Ooops vergeten... die cutoff staat op 1050 Hz)[/EDIT]


Hieronder de witte ruis van de NM G2 met daarachter diezelfde ruis gefilterd met een LPF op -36 dB.
Als je ruis gebruikt als filter-input heb je natuurlijk niets aan Preset Amplitudekarakteristiek.txt (https://www.synthforum.nl/forums/attachment.php?attachmentid=77473&d=1329214291). Die werkt alleen voor pulsresponsies.
Wil je de frequentiekarakteristiek bepalen van een filter dat is aangestuurd met witte ruis, dan kun je gebruik maken van de 'Gem'- button van de Spectrum Aanalyzer (menu Analyse->Scoop en spectrum). Daardoor wordt ook het "lange-termijn"-spectrum afgebeeld als een oranje grafiek. Hoe langer het fragment duurt, des te strakker die grafiek wordt. Dat de grafiek in bijgaan plaatje een beetje rafelig is, komt omdat het ruisfragment nog geen 3 seconde duurt.
De data van dit spectrum zijn ook weer numeriek toegankelijk en bewerkbaar. Als je het Scoop/SpectrumAnalyzer venster sluit, verschijnt de locatie ervan in Memo als volgt:
Code:
laatste spectrum: buf 30, vanaf adres 0
Maxima S1:        buf 30, vanaf adres 1024
Maxima S2:        buf 30, vanaf adres 2048
Maxima S3:        buf 30, vanaf adres 3072
Gemiddelden S1:   buf 30, vanaf adres 4096
Gemiddelden S2:   buf 30, vanaf adres 5120
Gemiddelden S3:   buf 30, vanaf adres 6144
Daar kun je in een preset gebruik van maken. Bijvoorbeeld om de grafiek zichtbaar te maken met andere grafische instellingen. Je kunt met WaveWizard signalen op zeer veel verschillende manieren afbeelden: als continue lijn of als losse samples, verschillende pendiktes, kleuren, vergrotingen, dB-schaal, FreqLog-schaal, 3-dimensionaal etc. De grafische instellingen gebeuren op een apart formulier dat je kunt openen door toets 'i' of via menu 'Plaatjesmaker->instellingen van de 16 afbeeldingen'.
Je kunt het laatste spectrumbeeld van Scoop-Spectrum Analyzer daarmee dus op allerlei manieren apart vorm geven.
In de volgende versie van WaveWizard kun je de grafische mogelijkheden helemaal aansturen via presets. Dat is in huidige versie nog heel beperkt mogelijk en niet helemaal foutloos.
Hoe je deze wav nu op die grafiek-preset van wavewizard dient te tonen is me nog niet duidelijk (na enkele pogingen).
Als je de 6 stappen volgt van post #36 (https://www.synthforum.nl/forums/showpost.php?p=1475588&postcount=36) moet 't gewoon goed gaan. Maar pas even op bij stap 4 (Open het wav-bestand van pulsrespons): WaveWizard leest alleen ongecomprimeerde wav-bestanden!
Als je een gecomprimeerde wav probeert te openen, krijg je een foutmelding in Memo (grijze vak links boven).
Uitstekende gratis converter: http://www.nch.com.au/switch.
(Ik doe dat dan met CoolEdit zoals vele andere van deze dingen en daaruit blijkt die 36 dB ook correct te zijn.)
Tweede file is die puls (één enkel getal of sample) als wav file.
CoolEdit is cool. Maar voor DSP dien je ook over de numerieke vorm van de geluidssamples te beschikken. Alle digitale geluidsbewerking is immers getalbewerking. Je moet simpelweg de uitkomsten van die berekeningen altijd kunnen checken en bestuderen. Daarom heb je in WaveWizard ook altijd directe lees- en schrijftoegang tot de getalwaarden van de samples. In post #43 zag je daar al een code-voorbeeld voor. Als je bijvoorbeeld wilt weten wat de waarde is van de duizendste sample van een geluid op spoor S2, dan kun je in het Commando-venster typen: 'Print S2[1000]' en op Start klikken. In Memo verschijnt dan bijv.: S2[1000] = -17223.

Tweede file is die puls (één enkel getal of sample) als wav file.
Als ik jouw bestand 'WaveWizard Puls.wav' open in WaveWizard krijg ik een fragment van 62000 samples (16-bits Mono) dat begint met stilte en eindigt met een ruis-blob. De eerste sample heeft waarde nul (dat blijkt als je typt: Print S1[0]). Dat is dus in elk geval niet de puls. Waarschijnlijk is er iets mis gegaan. Daarom iets meer over het opslaan van wav-bestanden. Als je in WaveWizard een wav opslaat met menufunctie Bestand->Opslaan .WAV, dan verschijnt, naast natuurlijk het gebruikelijke bestandselectie-formulier, in Memo een mededeling die er bijvoorbeeld zo uitziet:
Code:
 WAV opslaan stereo:  Samp[0][] en Samp[1].
   SampleStart =  0
   SampleEind  =  5733
   Duur in Ts =  5733
   Duur in sec =  0,13
Dat betekent dat de eerste 5734 samples van sporen S1 en S2 zullen worden opgeslagen. Dat is een fragmentje van 130 milliseconde. Je weet dus precies welk fragment van de sporen S1 en S2 zullen worden opgeslagen. Je kunt op cancel drukken als je ziet dat niet het juiste fragment is geselecteerd of als het fragment te kort of te lang is. Je kunt het begin- en eindpunt (de waarden van SampleStart en SampleEind) aanwijzen met resp. een linker en rechter muisklik ergens in de golfvorm van S1 of S2. Gebruik de Zoom- functie om eventueel tot op 1 sample nauwkeurig het geluidsfragment dat je wilt opslaan aan te wijzen. Na elke klik in de golfvorm zie je in de twee kleine paneeltjes boven het Grafiekvenster de numerieke waarde van het tijdstip; met een selectie-button kun je dat uitdrukken in seconden, milliseconden of "aantal samples".
Na die selectie kun je eventueel opnieuw menufunctie Bestand->Opslaan .WAV aanklikken en het fragment opslaan.
Let op dat je ook de extensie .wav moet intypen! (beschamend ja... in de eerstvolgende update zal dat niet meer nodig zijn.)
Overigens worden die linker- en rechter muisklik opgeslagen in twee systeemvariabelen: 'links' en 'rechts'. Die kun je in het Commandovenster gebruiken voor allerlei processen. Als je typt:
Code:
Print rechts - links
dan verschijnt in Memo de lengte van het geluidsfragment dat je met een linker- en rechter muisklik hebt aangewezen. Die uitkomst geeft het aantal samples weer van het fragment. Wil je weten hoe lang dat duurt in seconden, dan kun je typen:
Code:
Print (rechts - links) / Fs
Daarin betekent Fs de Sampling Frequentie (default 44100 Hz).
Dit is een handige functie als je instructies maakt om een fragment te verplaatsen, te mixen of filteren.

Verder vind ik die DSP-terminologie steeds flink verwarring zaaiend, zoals :
'filteren = reflecties toevoegen! (ja wadda... alle natuurwetten weer effe rap weggegooid, vandaar zoveel interesse voor dsp wss.)
Kunnen dsp-freaks dan echt geen 'nieuwe bewoordingen' vinden bvb. :
'terugkoppelen = reflecties toevoegen!'
In DSP worden geen natuurwetten weggegooid. Integendeel, een van de fascinerende dingen van de digitale signaalverwerking is juist dat je ook met de computer niet aan de natuurwetten ontkomt. Je kunt het beter omdraaien en zeggen: DSP laat zien wat de essentie, de kern is van de natuurprocessen die in zowel analoge als mechanische en akoestische filters plaatsvinden. Een echo tegen een muur veroorzaakt samen met het directe geluid een filtereffect ( = frequentie-afhankelijke versterking). Hóe gebeurt dat dan? Doordat een reflectie wordt toegevoegd.
Filteren is altijd reflecties toevoegen, of je nou spreekt van akoestisch, electronisch, mechanisch of digitaal.

Er worden twee verschillende filtertypen onderscheiden. Als je zegt: 'terugkoppelen = reflecties toevoegen!' dan heb je zeker gelijk. Maar er bestaat ook nog een andere mogelijkheid: 'MEEkoppelen = reflecties toevoegen!'

(1) FIR-filters
Dit zijn de MEE-koppelfilters: feedforward-filters. Hiermee voeg je een of meer 'eenmalige' reflecties toe aan een geluid. Bijvoorbeeld een echo tegen een bosrand is een enkele, eenmalige reflectie. De pulsrespons van dit type filter is eindig. Vandaar de naam: Finite Impulse Response (FIR). Een voorbeeld van een FIR filter noemde ik al in een vorige post: het laagdoorlaat-filter in Karplus.

(2) IIR-filters:
Dit zijn de terug-koppelfilters: feedback-filters. Hiermee voeg je oneindig veel reflecties toe aan een geluid. Bijvoorbeeld de heen en weer gaande echo's in een trappenhuis of onder een viadukt. De pulsrespons van dit type filter is dan ook oneindig. Vandaar de naam: Infinite Impulse Response (IIR).
De delayfeedback-lijn van Karplus-Strong is een mooi voorbeeld van een IIR-filter. Een ander voorbeeld zijn de zeer flexibele en krachtige Butterworth-filters. De vering in een auto is een mechanisch voorbeeld van een IIR-filter. Het spraakkanaal (mond-en keelholte) is ook een akoestisch IIR-filter, net als dat trappenhuis en dat viadukt.
 

Attachments

  • GemSpectrum.jpg
    GemSpectrum.jpg
    48,4 KB · Bekeken: 189
Laatst gewijzigd:
Als ik jouw bestand 'WaveWizard Puls.wav' open in WaveWizard krijg ik een fragment van 62000 samples (16-bits Mono) dat begint met stilte en eindigt met een ruis-blob.
:? De file zelf is amper 56 bytes, dus is het duidelijk dat er iets mis gaat in WaveWizard (62000 samples 16-bits Mono zou een wav-filesize van 124000 bytes minimum geven). Als ik ze in CoolEdit open, krijg ik in het spektrum-analyze venster een compleet rechte lijn (zoals deze wat jij zegt te verwachten valt). Zie figuur.
De 'WaveWizard Puls.wav'-file heb ik wel met WaveWizard aangemaakt en nadien in CoolEdit dat lege S1 spoor weggehaald (enkel spoor S2 in mono blijft dus over).
In DSP worden geen natuurwetten weggegooid. Integendeel, een van de fascinerende dingen van de digitale signaalverwerking is juist dat je ook met de computer niet aan de natuurwetten ontkomt. Je kunt het beter omdraaien en zeggen: DSP laat zien wat de essentie, de kern is van de natuurprocessen die in zowel analoge als mechanische en akoestische filters plaatsvinden.
Daar ben ik blij om. (Dan zijn onze misverstanden toch meer gelegen aan de verwoordingen.)
Filteren is altijd reflecties toevoegen, of je nou spreekt van akoestisch, electronisch, mechanisch of digitaal.
Hmmm daar gaat ie weer... maar ik begrijp je.
Zelf zou ik formuleren : 'bij het toevoegen van reflecties ontstaat er altijd een filtering'. (Eerst de oorzaak dan pas het gevolg => Filteren.)
Verder toch weer bedankt voor de uitleg over die FIR-IIR-filters.
 

Attachments

  • WaveWizard Puls.jpg
    WaveWizard Puls.jpg
    41,1 KB · Bekeken: 186
:? De file zelf is amper 56 bytes, dus is het duidelijk dat er iets mis gaat in WaveWizard (62000 samples 16-bits Mono zou een wav-filesize van 124000 bytes minimum geven). Als ik ze in CoolEdit open, krijg ik in het spektrum-analyze venster een compleet rechte lijn (zoals deze wat jij zegt te verwachten valt). Zie figuur.
De 'WaveWizard Puls.wav'-file heb ik wel met WaveWizard aangemaakt en nadien in CoolEdit dat lege S1 spoor weggehaald (enkel spoor S2 in mono blijft dus over).
Daar ben ik blij om. (Dan zijn onze misverstanden toch meer gelegen aan de verwoordingen.)


Ik heb er even naar gekeken en moet tot mijn schrik constateren dat je gelijk hebt!! :o::o:

Het opslaan gaat wel goed, maar bij openen gaat er iets mis. WaveWizard krijgt de hik van zulke korte geluidjes. Nooit eerder geconstateerd....ga daar volgende week induiken.

Heb even uitgeprobeerd: een wav van 50 milliseconde of langer geeft geen problemen. Dus daar is wel mee te werken, zou ik zeggen. En als je het dan ook nog stereo laat kunnen we in elk geval verder.

Bedankt!:okdan: :halleluja
 

Attachments

  • twintigste_sec.wav
    8,6 KB · Bekeken: 207
Heb even uitgeprobeerd: een wav van 50 milliseconde of langer geeft geen problemen. Dus daar is wel mee te werken, zou ik zeggen. En als je het dan ook nog stereo laat kunnen we in elk geval verder.
Die 'twintigste_sec.wav' file geeft bij mij toch een iets minder rechte karakteristiek. Zie figuur.
Eerlijk gezegd verraste het me zelf ook dat die vorige file zo'n mooi recht resultaat gaf.

In elk geval de NM G2 hardware heeft audio inputs dus daar moet verder mee kunnen gewerkt worden. Ik dien dan wel wat kabels te gaan versteken dus geduld daarvoor...
Ben wel benieuwd hoe de NM G2 op die puls gaat reageren.
(P.s. En vergeet Roland niet want anders is onze vriend niet meer te stoppen ;-)
 

Attachments

  • Wavewizard puls.jpg
    Wavewizard puls.jpg
    61,7 KB · Bekeken: 185
Die 'twintigste_sec.wav' file geeft bij mij toch een iets minder rechte karakteristiek. Zie figuur.
Eerlijk gezegd verraste het me zelf ook dat die vorige file zo'n mooi recht resultaat gaf.


Waarom verrast je dat? Dat eerste spectrum was toch het spectrum van een puls? Je hebt dan een constant spectrum, dus een horizontale, rechte lijn. (https://www.synthforum.nl/forums/showpost.php?p=1476476&postcount=45)

Het (CoolEdit)spectrum in jouw bijlage gaat over die twintigste_sec.wav. Bij dat geluidje staan op spoor S1 en S2 twee zeer korte sinustoonfragmentjes met frequenties van resp 440 Hz en 330 Hz. Daarom zie je in het CoolEdit spectrum twee stompe pieken bij die frequenties. Dat is volkomen correct: hoe langer de sinustoontjes duren des te scherper die pieken zullen zijn. Het worden zuivere spectraalLIJNEN als ze OFWEL oneindig lang duren OFWEL een periode hebben die gelijk is aan het tijdvenster van de FFT.

Hieronder zie je dat WaveWizard tot datzelfde resultaat komt, al worden in de grafiek de pieken naar 0 dB getrokken.

1. start WaveWizard
2. open twintigste_sec.wav.
3. open PresetSpectrumTwintigsteSec.txt
4. klik op Start

(Misschien vind je de grafieken van CoolEdit er gelikter uitzien, met die fraai gekleurde lijnen en vlakken. Dat kan met WaveWizard ook, zelfs nog veel flexibeler, want je kunt zelf de kleuren, pendikten, keuze voor lineaire of logaritmische weergave etc bepalen en grafieken over elkaar heen leggen. Maar dan moet je je wel gaan verdiepen in de grafische mogelijkheden, want zoals al gezegd, de grafische functies zijn in de huidige versie alleen via handbediening en nog niet vanuit presets aanstuurbaar. Daarom meer over grafieken bij de upgrade.)

(P.s. En vergeet Roland niet want anders is onze vriend niet meer te stoppen ;-)
Ik had Roland in een PB gevraagd om die extra patchversie met pulsaansturing, waarvoor dank. Volgende week meer daarover.
 

Attachments

  • PresetSpectrumTwintigsteSec.txt
    672 bytes · Bekeken: 215
  • SpectrumTwintigsteSec.jpg
    SpectrumTwintigsteSec.jpg
    45 KB · Bekeken: 190
Waarom verrast je dat? Dat eerste spectrum was toch het spectrum van een puls? Je hebt dan een constant spectrum, dus een horizontale, rechte lijn. (https://www.synthforum.nl/forums/showpost.php?p=1476476&postcount=45)
Golfvormen bestaan normaal uit sinussen. In dat rechthoekig spektrum is daar werkelijk niets meer van te zien. (Dus zouden ze massaal aanwezig moeten zijn aan eenzelfde volume...) Ben benieuwd welke geluidskaarten en installaties met zoiets overweg kunnen ?
 
De meest bizarre sinus-mix

De meest bizarre sinus-mix

Golfvormen bestaan normaal uit sinussen. In dat rechthoekig spektrum is daar werkelijk niets meer van te zien. (Dus zouden ze massaal aanwezig moeten zijn aan eenzelfde volume...) Ben benieuwd welke geluidskaarten en installaties met zoiets overweg kunnen ?


Golfvormen kun je je inderdaad voorstellen als opgebouwd uit sinussen. Stel dat je een golfvorm hebt zó dat al die sinussen exact even grote amplitudes hebben, dan ziet het spectrum eruit als een horizontale, rechte lijn. Er bestaat maar één golfvorm die zo'n horizontaal spectrum heeft, en dat is de puls (post #43).

't is eigenlijk te dol voor woorden dat een mix van oneindig veel sinusgolven met gelijke amplitudes, die oneindig lang vóór de Oerknal zijn begonnen te klinken en daarmee doorgaan tot oneindig lang na het einde der tijden, sinusgolven met oneindig veel verschillende frequenties die oneindig dicht op elkaar gepakt liggen, dat een dergelijke bizarre sinus-mix klinkt als een ultrakort tik-geluidje: de puls! Maar toch is het zo...

Wel is het belangrijk om onderscheid te maken tussen een puls in de continue tijd ("analoog") en een puls in de discrete tijd ("digitaal"). Alleen continue tijdsignalen hebben een oneindig frequentiebereik. Discrete signalen hebben een beperkt frequentiebereik, nl. tot aan de Nyquistfrequentie (= helft van sampling frequentie). Daarboven spiegelt en herhaalt zich dat fundamentele frequentie-interval. Dat geldt natuurlijk ook voor de discrete puls. De spectrumgrafiek die je in CoolEdit of WaveWizard ziet loopt dan ook slechts tot aan Nyquist frequentie (in beide gevallen 22050 Hz).

Dat een pulstoon, zoals elke golf, is opgebouwd uit een mix van sinussen wordt gedemonstreerd in onderstaande Preset_Pulstonen.txt. Er worden op spoor S1, S2 en S3 drie pulstonen gezet, opgebouwd uit resp. 32, 128 en 512 sinussen met gelijke amplitudes.
Bekijk de spectra met de spectrum analyzer (menu Analyse --> Scoop en Spectrum).
Klik in het de scoop/ spectrum venster op de button 'Max'.
Klik op Play.
Selecteer de sporen één voor één.
 

Attachments

  • Preset_Pulstonen.txt
    1,1 KB · Bekeken: 193
  • Pulsgolven.jpg
    Pulsgolven.jpg
    32,2 KB · Bekeken: 173
...
Dat een pulstoon, zoals elke golf, is opgebouwd uit een mix van sinussen wordt gedemonstreerd in onderstaande Preset_Pulstonen.txt. Er worden op spoor S1, S2 en S3 drie pulstonen gezet, opgebouwd uit resp. 32, 128 en 512 sinussen met gelijke amplitudes.
Bekijk de spectra met de spectrum analyzer (menu Analyse --> Scoop en Spectrum).
Klik in het de scoop/ spectrum venster op de button 'Max'.
Klik op Play.
Selecteer de sporen één voor één.
Hé boeiend maar ... die sinussen hebben die een lineaire frequentieverhouding (x1, x2, x3 etc... zo te zien wel) ?
(1024 x 32 = 32768 is toch al buiten het audio spektrum) ?
 
Hé boeiend maar ... die sinussen hebben die een lineaire frequentieverhouding (x1, x2, x3 etc... zo te zien wel) ?
(1024 x 32 = 32768 is toch al buiten het audio spektrum) ?

Ja, die sinussen hebben een lineaire frequentieverhouding, d.w.z. dat de frequenties van de boventonen veelvouden zijn van die van de grondtoon. Die grondtoonfrequentie geef je op als eerste parameter van Toongenerator, nl Fs/1024:

Code:
Toongenerator
  Frequentie (Hz of TOETS)   Fs/1024 Hz
  Amplitude                  32000
  Golfvorm                   puls
  Spoor: S?[?]               S3[0]
  Duur                       15 sec
  Aantal harmonischen        512

De sampling frequentie Fs is gelijk aan 44100 Hz, dus de grondtoonfrequentie hier is Fs/1024 = 44100/1024 = 43,0664 Hz.
Bij de derde pulstoon worden 512 harmonischen (boventonen) opgewekt. Door die lineaire frequentieverhoudingen is de frequentie van de 512-de boventoon gelijk aan 512*(Fs/1024) = 0,5*Fs = 22050 Hz. Dat is dus precies de Nyquistfrequentie (= halve sampling frequentie, zie #57).

Je kunt de spectra van de drie signalen op S1, S2, en S3 niet alleen zichtbaar maken via het venster van de Scoop/Spectrum Analyzer, maar ook zelf berekenen door de FFT rechtstreeks toe te passen. Je kunt ze dan afbeelden in één grafiek en dus gemakkelijker met elkaar vergelijken. Dat is wat in bijgevoegde preset gebeurt.
 

Attachments

  • Preset_Pulstonen_Spectra.txt
    2,3 KB · Bekeken: 187
Glitch Man Coloratura

Glitch Man Coloratura

In draad https://www.synthforum.nl/forums/showpost.php?p=1479657&postcount=15 heb ik een MP3 gepost van knip-, plak- en glitch-werk met WaveWizard. Het effect wordt toegepast op een weerbericht: "Doel was om de man een aanval te bezorgen van een of andere bizarre spraakziekte, zodat hij steeds moeilijker en op gegeven moment helemaal niet meer uit z'n woorden komt."

Er zijn hier drie vormen van het effect:

1. simpel knip- en plakwerk: "drdrdrdrdroog"

2. meer algoritmisch: "ha-ha-ha-ha-ha-ha-ha-ha-hard"
Hier wordt een enkele lettergreep (foneem) 20 maal herhaald met afnemend aantal samples (waardoor toonhoogte stijgt), en met toenemend volume, zodat een nogal aggressief raspend geluid ontstaat.

3. coloratura: "no-o-o-o-o-o-o-o-j-j-j-j-j-..."
Ik vroeg me af of de weerman zich zou kunnen ontpoppen tot een soort electronische Deutekom en een castraat-alt coloratuur zingen die geleidelijk overgaat in een onverstaanbare rochel. De coloratuur begint met het woord "noorlijke". In de manier waarop de nieuwslezer dat woord uitspreekt (nl. bijna als "noojjdelijk") zit een mooie formantverandering die goed naar voren komt door granulaire time-stretching. Hier moet de hakkel uiteraard worden geminimaliseerd, en daarom is de grain-vorm van de fragmenten een Hann-venster (zie http://muziekexact.nl/NLT/Granulaire_Synthese.pdf).
Door de lengte van de grains afwisselend langer en korter te maken ontstaat een vibrato. Dat op zich is natuurlijk niet bijster interessant: het vibrato moet abrupt kunnen overslaan in een soort jodel en daarna nog verder te ontaarden. Dit effect is te bereiken door het aantal samples van de fragmenten te laten toe- en afnemen d.m.v. zeer laagfrequente FM-synthese. Zowel de amplitude van dit stuursignaal als de carrierfrequentie nemen per fragment toe d.m.v. machtsfuncties.
In code is die aansturing van de fragmentlengte d.m.v. FM-synthese, inclusief speciale Amp EG slechts 1 regel:
Code:
  Frag = Frag0 + 2,3*(k^0,5)*sin(c*k^1,4 + 8*sin(3*c*k))

Met WaveWizard kun je dus naast eenvoudig knip- en plakwerk ook een glitchingmechanisme maken met willekeurig complexe stuursignalen, die een duidelijk aanwijsbare, functionele rol spelen binnen de synthese.
 

Attachments

  • Preset_Glitsen.txt
    5,1 KB · Bekeken: 179
Back
Top