Neoklassieke metalsolo's gecomponeerd door mieren
Het is je droom om gitaarvirtuoos te worden, maar al snel merk je dat gitaarheld worden nogal wat talent en vooral vele uren noeste arbeid vergt. Vervolgens kom je op Graspop en wordt je brein door de ene supergitarist na de andere doormidden gekliefd met allerlei technische capriolen, die je doen afvragen van welke planeet die gasten komen. Je legt de lat hoog en oefent vele uren per dag, maar je vordering is zo traag dat zelfs Sisyphus er medelijden mee zou krijgen. Welnu, martel jezelf niet langer want het kan eenvoudiger. In plaats van je vingers kapot te spelen op een echte gitaar, kan je ook een computeralgoritme schrijven dat voor jou in luttele seconden een gitaarsolo componeert en afspeelt.
Hoe kan een algoritme nu solo's componeren? Het concept hierachter is redelijk eenvoudig. Algoritme is een mooi woord voor gestructureerd stappenplan. Computers gebruiken algoritmes om bepaalde taken uit te voeren, maar ook een keukenrecept, of het stappenplan om Cola uit een drankautomaat te halen, zijn voorbeelden van algoritmes. Elk algoritme heeft een aanvangsfase. In casu heb je om te beginnen een referentiesolo nodig. Dit is cruciaal, omdat computers niet uit het ijle dingen kunnen creëren en dus informatie nodig hebben om uit te 'leren'. Van deze solo bereken je een hoop statistieken en de samenstelling ervan. Deze informatie gebruik je dan weer om met behulp van een zoekalgoritme een solo te genereren, die gelijkaardige eigenschappen heeft als de referentiesolo. Het heeft eigenlijk veel weg van een gitarist die geïnspireerd wordt door andere muziek, van daaruit een hoop ideeën ontwikkelt en vervolgens het beste resultaat ten berde brengt. Het grote verschil zit 'm erin dat een gitarist jaren nodig heeft om iets aanhoorbaars te produceren, terwijl een computer zoiets op ongeveer 45 seconden doet.
Een zoekalgoritme, of heuristiek om nog wat slimmer te klinken, dient er toe om op een methodische manier dingen te ontdekken. Het zoekalgoritme dat gebruikt is geweest om solo's te genereren met de computer, is gebaseerd op het groepsgedrag van mieren. Mieren kunnen met elkaar communiceren door feromonen uit te scheiden. Zo kunnen ze elkaar vertellen waar er zich voedsel bevindt in de omgeving. Door middel van deze onderlinge communicatie en dankzij bepaalde gedragingen, kan een groep mieren na verloop van tijd de kortste afstand tussen het nest en de betreffende voedselbron vinden. Mieren volgen als het ware een gedragspatroon dat op een efficiënte manier leidt tot de kortste weg naar een doel. Medio 1990 hebben enkele wetenschappers dit gedrag gevat in een wiskundig model, genaamd Ant Colony Optimization. Dit model wordt heden ten dage vooral gebruikt om economische problemen op te lossen, maar kan evengoed gebruikt worden om metalsolo's mee te componeren.
De auteur heeft als dusdanig een algoritme ontworpen waarbij fictieve mieren solo's in een neoklassieke stijl maken, meer specifiek in de stijl van progressive metal maestro John Petrucci. Er komen hierbij geen mensen of muziektheorie meer aan te pas, enkel wat statistische informatie en een beetje wiskunde. Het uiteindelijke resultaat van het algoritme is een melodische variatie op de solo die er in eerste instantie is ingestopt. Omdat er virtueel oneindig veel compositiemogelijkheden bestaan, maakt het algoritme elke keer een andere solo aan. Smijt die gitaar dus maar in een hoek, want computers nemen binnenkort de muziekwereld over.
Max Alexander Hein
Bibliografie thesis Max Hein
1. Wikipedia (2014). Neoclassical metal. Retrieved from http://en.wikipedia.org/wiki/Neoclassical_metal
2. Monk, L. (2012). Yngwie Malmsteen: less is more... no more is more. Retrieved from http://www.truthinshredding.com/2012/09/yngwie-malmsteen-less-is-more-n…
3. Marano, S. (2013). Put the Pedal to the Neo-Classical Metal. Retrieved from http://www.guitarworld.com/guitar-strength-put-pedal-neo-classical-metal
4. Pilhofer, M., Day, H., (2009). Muziektheorie voor Dummies. Amsterdam: Pearson Education.
5. Ultimate Guitar (2007). Neo-Classical Metal Music. Retrieved from http://www.ultimate- guitar.com/lessons/music_styles/neo-classical_metal_music.html
6. Wikipedia (2014). Arpeggio. Retrieved from http://nl.wikipedia.org/wiki/Arpeggio
7. Wikipedia (2013). Pedal point. Retrieved from http://en.wikipedia.org/wiki/Pedal_point
8. Mosteller, F., Youtz, C., (1968). Mozart's Random Music. Retrieved from www.stat.harvard.edu
9. Jacob, B., (1996). Algorithmic composition as a model of creativity. Organized Sound, 1, 157- 165. doi: 10.1017/S1355771896000222
10. Edwards., M., (2011). Algorithmic Composition: Computational Thinking in Music. Communications of the ACM, 54(7), 58-67. doi: 10.1145/1965724.1965742
11. Assayag, G., (1998). Computer Assisted Composition Today. Retrieved from: http://repmus.ircam.fr/
12. Herremans, D., Sörensen, K., (2012). Composing Fifth Species Counterpoint Music With Variable Neighbourhood Search. Retrieved from http://antor.ua.ac.be/publication/composing-fifth-species-counterpoint-…; neighborhood-search
13. Pachet, F., Roy, P. (2010). Markov constraints: steerable generation of Markov sequences, 10- 11. doi: 10.1007/s10601-010-9101-4
14. Bäckman, K. (2010). Ant Colony Optimization and Evolutionary Algorithms Applied to Jazz solo Improvisation. Retrieved from http://cumulus.ei.hv.se/~imkb/kjell/eji/eji.htm.
15. Geis, M., Middendorf, M. (2008). Creating melodies and baroque harmonies with ant colony optimization. International Journal of Intelligent Computing and Cybernetics, Vol. 1 Issue 2, 213-238.
16. De Wieuw, F., Gijsbrechts, J., Hein, M. (2012). Optimalisatietechnieken op basis van insecten. (eigen bachelorproef)
17. Parys,W., & Pauwels, W., (2010). Optimalisering. Antwerpen: Universitas
18. Springael, J., (2013). Operationeel Onderzoek. Blackboard, Universiteit Antwerpen.
19. Sörensen, K., & Glover, F. (n.d.). Metaheuristics. Retrieved from www.opttek.com/sites/default/files/Metaheuristics.pdf
20. Pinedo, M.,(n.d.). Heuristic Algorithms: Local Search. Retrieved from http://www.stern.nyu.edu/om/faculty/pinedo/scheduling/shakhlevich/hando…
21. Mladenovic, N., & Hansen, P., (1997). Variable Neighbourhood Search. doi: 10.1016/S0305- 0548(97)00031-2
22. Dorigo, M., Stützle, T., (2004). Ant Colony Optimization. Massachusetts: MIT Press.
23. Dréo, J., Pétrowski, A., Siarry, P., & Taillard, E., (2006). Metaheuristics for Hard Optimization. Berlijn: Springer.
24. Glover, F. (1990). Tabu Search: A Tutorial. INTERFACES, 20, 74-94.
25. Anderson, D. (2011). Discrete Time Markov Chains. Retrieved from http://www.math.wisc.edu/~anderson/605F11/Notes/StochBioChapter3.pdf
26. Grinstead, C. M., Snell, J. L., (1997). Introduction to Probability. Retrieved from http://www.dartmouth.edu/~chance/teaching_aids/books_articles/probabili…; tml
27. Jones, M. T., (2005). Estimating Markov Transition Matrices Using Proportions Data: An Application to Credit Risk. Retrieved from https://www.imf.org/external/pubs/ft/wp/2005/wp05219.pdf
28. Hansen, B., (n.d.). Musical Instrument Digital Interface. Retrieved from www.hansenb.pdx.edu/pdf/MIDI.pdf
29. Wolfe, J., (n.d.). Note names, MIDI numbers and frequencies. Retrieved from http://www.phys.unsw.edu.au/jw/notes.html
30. Downie, J. S. (2003). Music information retrieval. Annual review of information science and technology, 37(1), 295-340.
31. McKay, C. (2010). Automatic music classification with jMIR, p. 171-238 (Doctoral dissertation, McGill University).
32. MakeMusic (2011). Middle C (MIDI note 60) is C3/C4/C5?. Retrieved from http://forum.makemusic.com/default.aspx?f=5&m=327431
33. Moore, D., McGabe, G., Craig, B., (2007). Chapter 15: Nonparametric Tests. Introduction to the Practice of Statistics. Retrieved from http://bcs.whfreeman.com/ips6e/content/cat_040/pdf/ips6e_chapter15.pdf.
34. Hole, G., (2011). Graham Hole's Research Skills: The Wilcoxon Test. Retrieved from http://www.sussex.ac.uk/Users/grahamh/RM1web/WilcoxonHandoout2011.pdf
35. Zaiontz, C., (2014). Wilcoxon Signed-Ranks Table. Retrieved from http://www.real- statistics.com/statistics-tables/wilcoxon-signed-ranks-table/
36. Wikipedia (2014). Cross Entropy. Retrieved from http://en.wikipedia.org/wiki/Cross_entropy
37. Cogill, R., (2011). Introduction to Markov Chains. Retrieved from http://people.virginia.edu/~rlc9s/sys6005/SYS_6005_Intro_to_MC.pdf