Eigendrum is een interactieve studie naar het trillende vlak, waarbij gebruikers vormen kunnen tekenen of via wiskundige vergelijkingen kunnen definiëren om het bijbehorende geluid van een trommel te simuleren.
Technische werking: De applicatie lost een eigenwaardeprobleem numeriek op door de vorm te bedekken met een mesh van driehoeken en gebruik te maken van de finite element-methode. De nauwkeurigheid wordt getoetst aan bekende spectra van cirkels en rechthoeken.
Belangrijke aspecten:
- Slagplek: De plek waar de 'hamer' de vorm raakt, bepaalt welke modes (staande golven) worden geactiveerd.
- Vormdefinities: Naast tekenen kunnen vormen polair of parametrisch worden gedefinieerd voor meer precisie.
- Isospectrale vormen: Het project illustreert het vraagstuk van Mark Kac door twee verschillende vormen (Kac drum I en II) aan te bieden die identiek klinken.
- Modellering: Er is rekening gehouden met Rayleigh-damping voor realistisch uitsterven van geluid en de fysieke eigenschappen van de hamer.
De applicatie draait volledig client-side in de browser en de broncode is open source beschikbaar op GitHub.
Eigendrum: Teken een vorm en hoor deze als een echte trommel
Hoe het werkt
Een trommelvel dat aan de rand is vastgezet, kan alleen trillen in bepaalde vormen bij specifieke frequenties. Deze vormen en frequenties zijn de oplossingen van:
$-\nabla^2u = \lambda u$ binnen de vorm, waarbij $u = 0$ op de rand.
Elke oplossing $u$ is een mode (een staande golf), en elke $\lambda$ geeft een frequentie die proportioneel is aan $\sqrt{\lambda}$. Dit is een eigenwaardeprobleem dat voor bijna elke vorm geen directe formule heeft. Eigendrum lost dit numeriek op: de vorm wordt bedekt met een mesh van driehoeken, waarna de stijfheids- en massamatrices van finite elementen worden gebouwd om de kleinste eigenwaarden van $K\phi = \lambda M\phi$ te vinden.
Betrouwbaarheid van de berekeningen
Een aantal vormen heeft spectra die exact kunnen worden opgeschreven, en de solver wordt bij elke wijziging tegen deze getest.
- De frequenties van een cirkel zijn de nulpunten van Bessel-functies.
- De frequenties van een rechthoek zijn $\pi^2(m^2/a^2 + n^2/b^2)$.
De solver reproduceert beide met een nauwkeurigheid van beter dan een tiende van een procent. Omdat een conform finite element-methode de energie minimaliseert over een beperkte ruimte, zijn de antwoorden gegarandeerd lichte overschattingen en nooit onderschattingen.
De invloed van de slagplek
Het raken van een specifiek punt activeert elke mode in proportie tot hoeveel die mode op dat punt beweegt. Als je op een lijn slaat waar een mode stilstaat (een knooplijn), kun je die mode helemaal niet activeren. Dit is geen geprogrammeerde functie, maar een direct gevolg van het projecteren van de hamer op de modes.
Een slag is daarom nooit één enkele mode, maar een mengeling van alle modes tegelijk, bepaald door waar de hamer landt. In de interface kunnen specifieke rijen worden ingedrukt om één enkele mode alleen te horen; iets wat met een echte hamer onmogelijk is, maar de enige manier om te horen hoe één specifieke frequentie van een vorm daadwerkelijk klinkt.
Trommels vanuit vergelijkingen
Naast het handmatig tekenen van een omtrek, kan men een vorm definiëren via vergelijkingen:
- Polair: $r(t)$ geeft de straal terwijl $t$ één volledige omwenteling maakt. Bijvoorbeeld: $1 + 0.3\cos(5t)$ resulteert in een bloem met vijf lobben.
- Parametrisch: Een paar $x(t), y(t)$ kan gesloten curven bereiken die polaire coördinaten niet kunnen, zoals een nefroïde of een ei.
Dit stelt de gebruiker in staat om vormen te creëren die met de hand niet nauwkeurig te tekenen zijn, zoals elf gelijkmatige lobben of een superellipse (halfweg tussen een cirkel en een vierkant). Hierdoor wordt de vorm een variabele: door één getal aan te passen, hoort men direct wat er verandert.
Vormen die te dun zijn om eerlijk te 'meshen' (te rasteren), worden geweigerd. Een zeer dunne strook zou namelijk nog steeds cijfers teruggeven, maar deze zouden onjuist zijn.
Kun je de vorm van een trommel horen?
Mark Kac stelde deze vraag exact in 1966. In 1992 gaven Carolyn Gordon, David Webb en Scott Wolpert antwoord: nee. Zij construeerden twee verschillende vormen met identieke spectra.
Beide vormen zijn in de lijst beschikbaar als 'Kac drum I' en 'II'. Elke vorm is opgebouwd uit dezelfde zeven driehoeken, maar anders gerangschikt. Ze hebben hetzelfde oppervlak, dezelfde omtrek en elke frequentie komt overeen. Bij het schakelen tussen deze twee is de omtrek duidelijk verschillend, maar het geluid is dat niet.
Modelleringkeuzes
De frequentieverhoudingen en de modevormen zijn gebaseerd op natuurkunde en worden volledig bepaald door de omtrek. Andere factoren zijn variabel:
- Toonhoogte: Afhankelijk van grootte en spanning.
- Uitsterven (fade): Afhankelijk van het materiaal en de lucht.
Elke vorm wordt geschaald naar hetzelfde oppervlak voordat de berekening start, zodat de gebruiker de vorm hoort en niet de grootte.
Ook de hamer is gemodelleerd. De breedte is aanpasbaar via een slider; de contacttijd is vastgesteld op enkele milliseconden, omdat geen enkele echte hamer instantaan is (een instantane hamer zou elke mode even hard aansturen). Beiden bepalen hoeveel van een mode door een slag bereikt kan worden, maar geen van beiden kan de frequentie van een mode veranderen.
Voor de demping is Rayleigh-damping gebruikt, waardoor het verlies toeneemt met het kwadraat van de frequentie. De hoge boventonen sterven als eerste weg, wat verklaart waarom het geluid van een trommel donkerder wordt terwijl hij uitklinkt.
Colofon
De applicatie heeft geen build-stap of backend: de mesh, de berekening en de audio draaien volledig op de machine van de gebruiker. De getekende vorm wordt opgeslagen in de adresbalk na het #-teken, wat door browsers nooit naar een server wordt gestuurd.
De projecten is gebaseerd op:
- Kac, Can One Hear the Shape of a Drum? (1966)
- Gordon, Webb en Wolpert (1992)
- Driscoll, Eigenmodes of Isospectral Drums (1997), waarvan de coördinaten worden gebruikt voor de twee Kac-trommels.
De broncode, inclusief de solver en de tests die deze controleren tegen de closed-form spectra, is beschikbaar op GitHub: github.com/BaselAshraf81/eigendrum.
Eigendrum: Teken een vorm en hoor deze als een echte trommel
Hoe het werkt
Een trommelvel dat aan de rand is vastgezet, kan alleen trillen in bepaalde vormen bij specifieke frequenties. Deze vormen en frequenties zijn de oplossingen van:
$-\nabla^2u = \lambda u$ binnen de vorm, waarbij $u = 0$ op de rand.
Elke oplossing $u$ is een mode (een staande golf), en elke $\lambda$ geeft een frequentie die proportioneel is aan $\sqrt{\lambda}$. Dit is een eigenwaardeprobleem dat voor bijna elke vorm geen directe formule heeft. Eigendrum lost dit numeriek op: de vorm wordt bedekt met een mesh van driehoeken, waarna de stijfheids- en massamatrices van finite elementen worden gebouwd om de kleinste eigenwaarden van $K\phi = \lambda M\phi$ te vinden.
Betrouwbaarheid van de berekeningen
Een aantal vormen heeft spectra die exact kunnen worden opgeschreven, en de solver wordt bij elke wijziging tegen deze getest.
- De frequenties van een cirkel zijn de nulpunten van Bessel-functies.
- De frequenties van een rechthoek zijn $\pi^2(m^2/a^2 + n^2/b^2)$.
De solver reproduceert beide met een nauwkeurigheid van beter dan een tiende van een procent. Omdat een conform finite element-methode de energie minimaliseert over een beperkte ruimte, zijn de antwoorden gegarandeerd lichte overschattingen en nooit onderschattingen.
De invloed van de slagplek
Het raken van een specifiek punt activeert elke mode in proportie tot hoeveel die mode op dat punt beweegt. Als je op een lijn slaat waar een mode stilstaat (een knooplijn), kun je die mode helemaal niet activeren. Dit is geen geprogrammeerde functie, maar een direct gevolg van het projecteren van de hamer op de modes.
Een slag is daarom nooit één enkele mode, maar een mengeling van alle modes tegelijk, bepaald door waar de hamer landt. In de interface kunnen specifieke rijen worden ingedrukt om één enkele mode alleen te horen; iets wat met een echte hamer onmogelijk is, maar de enige manier om te horen hoe één specifieke frequentie van een vorm daadwerkelijk klinkt.
Trommels vanuit vergelijkingen
Naast het handmatig tekenen van een omtrek, kan men een vorm definiëren via vergelijkingen:
- Polair: $r(t)$ geeft de straal terwijl $t$ één volledige omwenteling maakt. Bijvoorbeeld: $1 + 0.3\cos(5t)$ resulteert in een bloem met vijf lobben.
- Parametrisch: Een paar $x(t), y(t)$ kan gesloten curven bereiken die polaire coördinaten niet kunnen, zoals een nefroïde of een ei.
Dit stelt de gebruiker in staat om vormen te creëren die met de hand niet nauwkeurig te tekenen zijn, zoals elf gelijkmatige lobben of een superellipse (halfweg tussen een cirkel en een vierkant). Hierdoor wordt de vorm een variabele: door één getal aan te passen, hoort men direct wat er verandert.
Vormen die te dun zijn om eerlijk te 'meshen' (te rasteren), worden geweigerd. Een zeer dunne strook zou namelijk nog steeds cijfers teruggeven, maar deze zouden onjuist zijn.
Kun je de vorm van een trommel horen?
Mark Kac stelde deze vraag exact in 1966. In 1992 gaven Carolyn Gordon, David Webb en Scott Wolpert antwoord: nee. Zij construeerden twee verschillende vormen met identieke spectra.
Beide vormen zijn in de lijst beschikbaar als 'Kac drum I' en 'II'. Elke vorm is opgebouwd uit dezelfde zeven driehoeken, maar anders gerangschikt. Ze hebben hetzelfde oppervlak, dezelfde omtrek en elke frequentie komt overeen. Bij het schakelen tussen deze twee is de omtrek duidelijk verschillend, maar het geluid is dat niet.
Modelleringkeuzes
De frequentieverhoudingen en de modevormen zijn gebaseerd op natuurkunde en worden volledig bepaald door de omtrek. Andere factoren zijn variabel:
- Toonhoogte: Afhankelijk van grootte en spanning.
- Uitsterven (fade): Afhankelijk van het materiaal en de lucht.
Elke vorm wordt geschaald naar hetzelfde oppervlak voordat de berekening start, zodat de gebruiker de vorm hoort en niet de grootte.
Ook de hamer is gemodelleerd. De breedte is aanpasbaar via een slider; de contacttijd is vastgesteld op enkele milliseconden, omdat geen enkele echte hamer instantaan is (een instantane hamer zou elke mode even hard aansturen). Beiden bepalen hoeveel van een mode door een slag bereikt kan worden, maar geen van beiden kan de frequentie van een mode veranderen.
Voor de demping is Rayleigh-damping gebruikt, waardoor het verlies toeneemt met het kwadraat van de frequentie. De hoge boventonen sterven als eerste weg, wat verklaart waarom het geluid van een trommel donkerder wordt terwijl hij uitklinkt.
Colofon
De applicatie heeft geen build-stap of backend: de mesh, de berekening en de audio draaien volledig op de machine van de gebruiker. De getekende vorm wordt opgeslagen in de adresbalk na het #-teken, wat door browsers nooit naar een server wordt gestuurd.
De projecten is gebaseerd op:
- Kac, Can One Hear the Shape of a Drum? (1966)
- Gordon, Webb en Wolpert (1992)
- Driscoll, Eigenmodes of Isospectral Drums (1997), waarvan de coördinaten worden gebruikt voor de twee Kac-trommels.
De broncode, inclusief de solver en de tests die deze controleren tegen de closed-form spectra, is beschikbaar op GitHub: github.com/BaselAshraf81/eigendrum.