Een C++-applicatie voor visualisatie en analyse van drumperformances

Vincent Baeten
Muziekschool 2.0Een muziekinstrument leren bespelen is een proces dat veel tijd en inspanning vraagt van de (aspirant)-muzikant. Door veel te oefenen zal de muzikant na verloop van tijd vlotter worden in het bespelen van het muziekinstrument. Vlotter betekent echter niet noodzakelijk beter. Om meester te worden over het instrument heeft de muzikant er nood aan om gewezen te worden op zijn fouten, maar ook op de zaken die hij goed doet (dit geldt immers voor alle leerprocessen in het leven).

Een C++-applicatie voor visualisatie en analyse van drumperformances

Muziekschool 2.0

Een muziekinstrument leren bespelen is een proces dat veel tijd en inspanning vraagt van de (aspirant)-muzikant. Door veel te oefenen zal de muzikant na verloop van tijd vlotter worden in het bespelen van het muziekinstrument. Vlotter betekent echter niet noodzakelijk beter. Om meester te worden over het instrument heeft de muzikant er nood aan om gewezen te worden op zijn fouten, maar ook op de zaken die hij goed doet (dit geldt immers voor alle leerprocessen in het leven). Deze feedback zorgt er vervolgens voor dat de muzikant weet wat fout is zodat hij kan proberen om minder foute dingen te spelen, maar ook dat hij wat goed is zodat hij dat gedrag méér kan toepassen in de toekomst. Het is duidelijk dat feedback een positieve invloed heeft op de vooruitgang van de muzikant.

Vanuit dit oogpunt blijkt het nut van een muzikale opleiding waarbij de muzikant les volgt bij een leraar. Hierbij krijgt de muzikant op regelmatige tijdstippen feedback die gebaseerd is op de ervaringen van de leraar (een meer ervaren muzikant), hetgeen het leerproces van de muzikant versnelt. De tijd tussen de sessies kan de muzikant invullen door te oefenen op het bespelen van het instrument, waarbij hij de feedback van de leraar in het achterhoofd houdt. Gedurende deze tijd is er geen mogelijkheid tot het verkrijgen van feedback.

Uit deze observatie rijst de vraag of het mogelijk is om op een automatische manier feedback te geven over de performance van de muzikant. Op deze manier zou de muzikant ook gedurende de tijd tussen de sessies met de leraar toegang hebben tot feedback, wat zijn leerproces positief beïnvloedt. In dit onderzoek worden de mogelijkheden bestudeerd om dit te verwezenlijken door middel van een automatische analyse van een muzikale performance, in het bijzonder: een muzikale performance op een elektronisch drumstel.

Een elektronisch drumstel gebruikt een berichtgeörienteerd protocol (MIDI) om te communiceren met andere apparaten. Wanneer het drumstel met een computer verbonden is, dan ontvangt de computer de performance als een opeenvolging van berichten. Zo wordt elke aanslag op het drumstel doorgestuurd als een bericht met daarin het tijdstip van de aanslag, het deel van het drumstel dat de muzikant aansloeg en de sterkte van de aanslag. Deze digitale voorstelling van muziek bevat echter bijna geen muzikale informatie, zoals het maatnummer of de tel binnen de maat waarop de aanslag plaatsvond. Om zinvolle feedback te kunnen geven aan de muzikant is het in eerste instantie nodig om deze muzikale structuur te ontdekken in de performance.

Wanneer de muzikale structuur gekend is kan de analyse plaatsvinden waarbij gekeken wordt in welke mate de performance van de muzikant afwijkt van de “perfecte performance” (de performance zoals ze door een machine zou worden uitgevoerd).

Het zoeken van de muzikale structuur begint met het zoeken van de beats in de performance (beat tracking). Dit is vergelijkbaar met het met de voet meetikken met de muziek. Als de muzikant ook de maatsoort opgeeft zijn na het zoeken van de beats de posities van de maten en van alle tellen binnen elke maat gekend.

Vervolgens wordt voor elke aanslag gezocht op welk tijdstip de muzikant deze aanslag bedoelde te spelen, of juister: op welk tijdstip de aanslag zou plaatsvinden moest deze door een machine gespeeld zijn. Een werkelijke performance kan om verschillende redenen van deze “perfecte performance” afwijken. Het kan gaan om een bewuste keuze van de muzikant als gevolg van zijn expressiviteit, maar ook de nauwkeurigheid van het menselijk motorisch systeem heeft hier een invloed op. Dit proces waarbij het tijdstip gezocht wordt waarop de muzikant een aanslag bedoelde te spelen wordt kwantisatie genoemd.

De uiteindelijke analyse van de performance gebeurt vervolgens door deze vanuit verschillende hoeken te bekijken. Vanuit elk oogpunt kunnen andere gegevens worden berekend die een beeld schetsen van hoe goed de muzikant voor dat specifieke aspect presteerde. Volgende aspecten komen aan bod: timing, tempo, strakheid en dynamiek. Om te toetsen of de berekende gegevens zinvol zijn werden enkele drumstudies ingespeeld door twee drummers met een verschillend niveau. De resultaten voor de aspecten timing, tempo en strakheid geven duidelijk het niveauverschil weer tussen de twee drummers. De resultaten voor het aspect dynamiek zijn voor interpretatie vatbaar, dit aspect vereist verder onderzoek in de toekomst.

Om de muzikant vervolgens van feedback te voorzien werd een computerprogramma ontwikkeld dat in staat is om een muzikale performance grafisch weer te geven (zie figuur). De muzikant kan zelf kiezen welke aspecten van zijn performance geanalyseerd moeten worden door het inladen van specifieke modules. Vervolgens kunnen de resultaten van de analyse worden weergegeven in de vorm van grafieken, of door ze te koppelen aan de visuele weergave van de performance. Zo kan bijvoorbeeld worden ingesteld dat een aanslag wordt voorgesteld door een vierkant symbooltje, waarbij de grootte van het symbooltje de sterkte van de aanslag weerspiegelt. Deze uitgebreide visualisatiemogelijkheden zorgen niet alleen voor feedback voor de muzikant, ze zorgen er ook voor dat het programma een handig raamwerk wordt voor een ontwikkelaar die in de toekomst een module wil ontwerpen om een nieuw aspect van een muzikale performance te analyseren.

Het programma is, in de staat waarin het zich nu bevindt, geen vervanging voor een muzikale opleiding. Met de aanwezige modules kan het wel gebruikt worden als aanvulling bij een muzikale opleiding. Het programma is reeds in staat om (enkele) technische aspecten van de performance te analyseren. Muziek heeft echter ook een zeer belangrijke gevoelsmatige component, die momenteel enkel door een mens beoordeeld kan worden. Een machine gevoelens aanleren is helaas nog toekomstmuziek.

Bibliografie

Cemgil, A. T., Desain, P., & Kappen, B. (1999). Rhythm Quantization for Transcription.

de Berg, M., Cheong, O., van Kreveld, M., & Overmars, M. (2008). Computational Geometry: Algorithms and Applications. Springer-Verlag, 3rd edition.

Desain, P. & Honing, H. (1992). The quantization problem: traditional and connectionist approaches. In M. Balaban, K. Ebcioglu, & O. Laske (Eds.), Understanding Music with AI: Perspectives on Music Cognition (pp. 448-463). Cambridge: MIT Press.

Dixon, S. (2001). Automatic extraction of tempo and beat from expressive performances. Journal of New Music Research, 30(1), 39-58.

Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley.

Glatt, J. (2009). MIDI Technical Fanatic's Brainwashing Center. http://home.roadrunner.com/~jgglatt/.

Hamanaka, M., Goto, M., Asoh, H., & Otsu, N. (2001). A Learning-Based Quantization: Estimation of Onset Times in a Musical Score. Proceedings of the World Multiconference on Systemics, Cybernetics and Informatics 2001, 10(1), 374-379.

Hamanaka, M., Goto, M., Asoh, H., & Otsu, N. (2003). A Learning-Based Quantization: Unsupervised Estimation of the Model Parameters. In International Computer Music Conference Proceedings (pp. 369-372).

haydxn (2005). Juce programming tutorial. http://code.google.com/p/juced/wiki/JuceTutorial.

Iwami, N. & Miura, M. (2007). A support system for basic practice of playing the drums. In Proceedings of the International Computer Music Conference.

Longuet-Higgins, H. C. (1979). The perception of music. In Proceedings of the Royal Society, volume 205 (pp. 307-322).

Rosenthal, D. (1992). Emulation of Human Rhythm Perception. Computer Music Journal, 16(1), 64-76.

Storer, J. (2013). JUCE: Jules' Utility Class Extensions (Version 2.0) [klassenbibliotheek]. http://www.juce.com/.

Stroustrup, B. (2008). De programmeertaal C++. Pearson Education, 2nd edition.

Universiteit of Hogeschool
Master in de industriële wetenschappen: informatica
Publicatiejaar
2013
Kernwoorden
Share this on: