Fourier analyse en synthese

Moderators: dirkwb, Xilvo

Gebruikersavatar
Berichten: 1.605

Re: Fourier analyse en synthese

Hallo,

Ik heb het bestand nog aangepast.

Updates:

Men kan nu de tijdsduurs instellen voor de hele "compositie". In seconden, de online cloud omgeving zou ik niet meer dan 30 seconden nemen.

Code: Selecteer alles

totaltime=30
De samplerate kan ingesteld worden. Deze bepaald tevens de maximaal hoorbare frequentie in kHz. Merk op dat de random generator liniear is het oor is dit niet. Indien de samplerate hoog word gekozen zul je overwegend meer hoge tonen horen.

Code: Selecteer alles

samplerate=5
Aantal random genereerde tonen:

Code: Selecteer alles

WN=18
De maximale toonduur, dit is zo een beetje de breedte van de normaal verdeling van een toon. Op circa +/- 3 stdev.

Code: Selecteer alles

PWT=10
Muziekaal gezien: indien PWT klein is bijvoorbeeld 5 dan krijg je een geluid/muziek wat in griezelfilms gebruikt word: "staccato" noten op random tijd (schrik effecten).

Omdat het orgineel topic over muziek ging heb ik nog ingebouwd dat iedere noot random harmonischen kan hebben. Let op gebruik True en False met hoofdletters. Waarom? het spectrum word drukker net zoals fysieke instrumenten en het is gewoon leuk! ;)

Code: Selecteer alles

harm=True
harmo=5
Ik wilde nog een routine inbouwen om de random frequentie verdeling (toonhoogten) niet linear te laten verdelen. Maar daar weet ik niet zo snel een oplossing voor. Ik dacht zelf aan: de oorgevoeligheids curve voor frequenties te gebruiken.

Je kunt erg grappige composities laten generenen! De link is dezelfde als vorig bericht. Ik het nieuwe revisie op Github gezet.

https://mybinder.org/v2/gh/oooVincentoo ... aves.ipynb

Het geheugen probleem opgelost. Er zijn twee cellen met code: de eerste hoef je maar een keer uit te voeren de maakt de grafiek aan en reserveerd eenmalig geheugen. De andere bevat de code voor "muziek" en Fourier transformatie, deze kun je herhaaldelijk runnen om nieuwe "muziek" te maken. Let op de online cloud versie heeft wel beperkingen. Erg hoge samplerates en tijdsduren niet geadviseerd. Zoals bekend denk ik: de cloud versie duurt even om te laden dus geduld hebben!
Puntjes Fourier.jpg

Gebruikersavatar
Berichten: 7.463

Re: Fourier analyse en synthese

Dank voor de aanpassingen. Helaas weet ik niets van Python, en heb ik daar ook nog nooit mee gewerkt. Kun je hier los wat geluidsbestandjes met bijpassende grafiekjes plaatsen die je met je programma gemaakt hebt. Dan kan iedere lezer zich een indruk vormen hoe dat klinkt.

Gebruikersavatar
Berichten: 1.605

Re: Fourier analyse en synthese

Eventjes moeten puzzelen wat te presenteren. Na sukkelen wat te maken, dan hoe en uiteindelijk tot onderstaande gekomen.
Twee geluidfragmenten van 10 seconden. De maximale nootduur is 0.5 seconden. Het cumulatieve spectrum wordt bepaald op ieder tijdstip. Men kan zien dat
  • Korte noten hebben een breed frequentie spectrum hebben.
  • Lange noten een smal frequentie spectrum.
  • Naarmate de tijd vordert word het spectrum onduidelijker.
Zonder harmonische:


Met harmonische:


Gisterenavond veel te lang lopen sukkelen fixeren y-as amplitude van spectrum. Ik had de relatieve amplitude genomen dan werden de pieken kleiner in de tijd. Een nachtje “slapen” helpt.

Gebruikersavatar
Berichten: 7.463

Re: Fourier analyse en synthese

Mooi gedaan! :D

Gebruikersavatar
Berichten: 1.605

Re: Fourier analyse en synthese

Ik heb nog een paar kleine tweaks gedaan. Een compositie laten maken van 90 seconden. De tijdduur van de noten heb ik met een iets geavanceerdere randomizer gemaakt (zie code). Zodat er meer korte noten zijn en op lager interval lange noten.

Het fase spectrum plaatje heb ik aangepast naar scatterplot werkt veel beter en is inzichtelijker.

In dit muziekstuk zijn er meer "percussie" korte noten. Deze dragen bij aan meer noise in het spectrum.

Het face spectrum ziet bijna uit als ruis wanneer geïntegreerd over het hele muziekstuk. Volgens mij komt dit door de korte noten, die schuiven de fase steeds een beetje op.

Muziek software zal dit misschien allemaal efficiënter doen. Maar het is voor mij leerzaam alle stappen te doorlopen. Door te doen leert men!



Voor de liefhebber de code (zelfde als oude link, update naar laatste versie):
https://mybinder.org/v2/gh/oooVincentoo ... aves.ipynb

Gebruikersavatar
Berichten: 7.463

Re: Fourier analyse en synthese

Bravo! Zo klonken de eerste historische muzikale experimenten met granulaire synthese ook.

Als je er nog lol in hebt: wat ook interessante geluiden geeft is om een bestaand geluid (bijvoorbeeld een stukje zang) te nemen, dat in heel korte stukjes te knippen, en die stukje in een andere volgorde dan weer af te spelen.

Gebruikersavatar
Berichten: 1.605

Re: Fourier analyse en synthese

Ik had nog een lelijke fout ontdekt. Het spectrum in oude video’s is omgekeerd. Hoge frequenties zijn eigenlijk de lage frequenties.

Eigenlijk had ik dat eerder moeten zien. Want uiteindelijk zullen de lage frequenties meer uitwaaieren in het spectrum (daar deze onnauwkeuriger bepaald worden). Niet gezien dat de oude video’s het andersom was!
Erg leerzaam topic. Lekker bezig zijn met theorie en iets maken met de handen.

Ik heb nog een upgrade gemaakt dat het spectrum binnen kleine tijdspanne (rode spectrum) te zien is. Daar zijn de individuele noten en harmonische goed te herkennen in tegenstelling tot cumulatieve spectrum (blauwe spectrum). Het concept fase is nu ook beter voor mij te begrijpen nog niet helemaal echter.

Deze video maakt gebruik van tonale interpretatie. De frequencies pieken komen op discrete plaatsen voor.

Hier is een correcte file.



Python / Jupyter notebook:
https://mybinder.org/v2/gh/oooVincentoo ... aves.ipynb

Gebruikersavatar
Berichten: 7.463

Re: Fourier analyse en synthese

Het faseplaatje is als bekend lastig te interpreteren, maar toch zie ik daarin kronkelende haarlijnen. Wat stelt dat voor...?

Gebruikersavatar
Berichten: 1.605

Re: Fourier analyse en synthese

In het rode gebied in de grafiek tijd grafiek (1.3 seconden in dit geval de gemiddelde nootduur) word als een soort lopend gemiddeld het spectrum en de fase bepaald. Dus de rode grafieken zijn het spectrum gedurende korte tijd (1.3 seconden) meelopend in de tijd. De blauwe grafieken zijn cumulatief van 0 tot de betreffende tijd.

Dit komt van jouw originele post. Daar ging het over het totale spectrum hele muziek stuk versus spectrum kleiner interval. Gezien die info leek mij de visualisatie op deze manier het duidelijkste.

Inderdaad fase is ook voor mij nog steeds moeilijk intuïtief te begrijpen. Bepaald de plaats in de tijd zou ik zeggen.

Dat is het probleem als men er dieper op induikt: dan veronderstel je dat andere het begrijpen. Het ziet simpel uit in vergelijking met alle fancy videos op youtube, maar er schuilt stiekem meer achter. Dat heb ik ook vaker op het werk!

Zelfde video:

Gebruikersavatar
Berichten: 7.463

Re: Fourier analyse en synthese

Ah juist - dat zijn de rode lijntjes.

Gebruikersavatar
Moderator
Berichten: 9.974

Re: Fourier analyse en synthese

De fase is niet moeilijk te begrijpen maar faseplaatjes zijn niet of nauwelijks op het oog te interpreteren.
Stel, je telt "alle" frequenties tussen 990 en 1010 Hz op om een puls als deze te krijgen
Fo1.jpg
Zie mijn bericht
viewtopic.php?p=1149068#p1149068

Wil je de puls centreren op t=0, dan moeten daar alle frequenties in fase zijn. Het faseplaatje is simpel, alle frequenties (van 990 tm 1010) hebben gelijke fase, stel die nul.
Verschuif de puls nu naar t=0,05 s. Voor 1000 Hz is dat precies 50 periodes, de (gereduceerde) fase is weer nul.
Voor 1001 Hz is het 50,05 periode, de gereduceerde fase wordt 0,05*2*π

Zet je die fases uit voor de frequenties tussen 990 en 1010 Hz dan krijg je fases van -π tot π

Dat is dan nog (net) één rechte lijn in het faseplot.

Verschuif je de puls veel verder, dan krijg je visueel een aantal punten waar je op het oog vrijwel geen verband meer in kunt zien.

Overigens mooie en fascinerende resultaten, Vincent!

Gebruikersavatar
Berichten: 1.605

Re: Fourier analyse en synthese

Dankjewel Xilvo,

Mooie uitleg, over de fase!

Ik vind het altijd leuk tegen het creatieve/intuïtieve aan te zitten met uitwerkingen. Indien ik mij niet creatief/intuïtief kan uitdrukken moet ik weer in de boeken duiken: de theorie. Zo gaat het leer cirkeltje bij mij rond en ondertussen veel fouten maken!

Reageer