PlayGuru Blog

PlayGuru music tutor. In deze blog schrijf ik elke week de laatste ontwikkelingen.

31 mei 2017

Mijn presentatie van PlayGuru bij de LAC was erg succesvol. Het bracht veel mensen op ideeëen en ik had de hele middag aanloop van mensen die het wilden uitproberen.

De komende weken zal ik weinig tijd hebben voor nieuwe ontwikkelingen want ik zal nu mijn thesis toch eens moeten schrijven en mijn examen voorbereiden. Wordt vervolgd...

12 mei 2017

Eindelijk een update. De afgelopen tijd was ik zo druk met voorbereiding voor de conferentie en een hoop HKU-werk dat de blog erbij inschoot. Ik heb mijn presentatie bijna klaar en deze week met een collega een proefpresentatie gedaan. Dat was erg nuttig en leverde allerlei goede inzichten en verbeteringen op. Ze was ook erg enthousiast over de oefeningen met PlayGuru en vindt het ook voor gevorderde gitaristen van waarde.

Vorige week ben ik bij Kristof geweest. Hij heeft mijn stand-alone PlayGuru uitgeprobeerd. Ik heb hem zelf alles laten aansluiten en ontdekken om er zo achter te komen of ik het voor blinden toegankelijk gemaakt heb. Dat bleek uitstekend te werken. Hij kon alles op het gevoel af en kreeg al snel handigheid in het bedienen van het apparaatje.

Kristof gaf nuttig commentaar. Zo bleek dat hij meer gebaat is bij een rustige opbouw van een melodietje, dus bijvoorbeeld een paar keer meer herhalen van een stukje voordat je het verder uitbreidt. En wat ik verrassend vond is dat hij een nieuwe hint juist eerder zou willen krijgen wanneer hij er niet goed uitkomt. Ik heb dat nu op 20 seconden vast ingesteld met het idee dat je dan wat kunt prutsen en uitproberen en daarbij niet gestoord wordt, maar voor anderen kan dat dus te lang duren en zou het herhalen van het voorbeeld best eerder mogen komen. Kristof stelde voor dat ik dat zou kunnen baseren op hoe lang de gebruiker niets speelt, als indicatie dat iemand dan even niet weet wat te doen. Een andere mogelijkheid lijkt me dan dat de hint eerder komt als de gebruiker juist heel veel 'foute' noten speelt, als indicatie van in het wilde weg wat proberen.

Wat verder opviel is dat PlayGuru nogal kritisch is. Bij oefeningen die vereisen dat je alle noten speelt mag je niet te slordig spelen omdat hij anders niet alles herkent. Best logisch en een goede training, maar wel iets om rekening mee te houden. Bij de meespeel-oefeningen is dit iets minder van belang omdat die toch wel gewoon doorgaan, maar feitelijk beloon je daarmee slordig spel. Ik zou dus iedereen willen aanraden om juist de naspeel-oefeningen eerst goed te doen om netter te leren spelen, ook op hogere snelheden.

Het stemmen van de gitaar aan de hand van het geluid van de tuner ging Kristof goed af. Je moet het ding blijven voeden door regelmatig de snaar opnieuw aan te slaan en je moet wat handigheid krijgen in het horen wanneer het goed is, maar dat wordt al doende snel duidelijk en is meteen een goede gehoortraining.

De afgelopen weken hebben nog een paar mensen het apparaatje uitgeprobeerd en ik krijg enthousiaste reacties. Natuurlijk is niet alles perfect, maar iedereen ervaart direct hoe goed het werkt om puur op het gehoor te werken.

O ja, PlayGuru pod III is operationeel!

Pod II en III bevatten nu zes oefeningen: twee naspeel-oefeningen met verschillend niveau van bronmateriaal, evenzo twee meespeel-oefeningen en twee oefeningen die bij voldoende beheersing gaan transponeren.

18 april 2017

Vorige week heb ik een goed deel van een middag met een van onze studenten de PlayGuru-pod uitgeprobeerd. Erg leerzaam! Hij had allerlei dingen snel door maar was toch hier en daar nog verrast. Ook zei hij dat de composer erg goed werkt voor het stimuleren van je creativiteit en dat hij door het apparaatje scherp gehouden was wanneer hij in een routine dreigde te raken en op de automatische piloot speelde. Door kleine aanpassingen in de oefening werd hij dan weer bij de les gehouden.

Ook kan ik het apparaatje nu als wifi access point laten werken, wat zoveel wil zeggen als "hij gedraagt zich als het centrum van een draadloos netwerk". Nu hoef ik hem niet telkens open te maken als ik software wil updaten maar ik kan er met een laptop op inloggen en het ding op afstand besturen. Erg handig!

Tot slot vandaag de gitaartuner voorzien van hints. We kwamen er vorige week achter met een gitaar die veel lager (of hoger, dat weet ik even niet meer) gestemd was dan normaal dat de tuner dan niet 'invangt'. Logisch, maar niet erg praktisch als je geen stemvork of zoiets bij je hebt. Door nu op de start-stop knop te drukken geeft hij een hint. Je kiest met de oefening-selectieknop voor welke snaar.

9 april 2017

Mijn conferentie-paper is geaccepteerd. Dit weekend heb ik de feedback verwerkt en de definitieve versie opgestuurd.

De stand-alone versie werkt inmiddels ook helemaal zelfstandig en ik heb hem bij Meindert gebracht. Zijn eerste reacties waren erg positief.

Ik heb een tweede stand-alone gemaakt en ben nu bezig om die te voorzien van een mogelijkheid om de software via WiFi te updaten. Als dat werkt maak ik er nog eentje zodat iemand anders er ook ervaring mee kan gaan opdoen.

Overigens.. het maken van zo'n kastje is nu nog maatwerk en daar ben ik makkelijk een uur of tien a twaalf zoet mee: printje op maat maken, pull-up weerstanden erop solderen, knoppen en connectoren in de behuizing monteren, een kleine dertig draadjes op maat maken en aan de diverse knoppen solderen, voedingskabel afknippen en een andere plug eraan solderen, connectoren voor voeding en audio in en uit, afgeschermde kabeltjes voor audio, en een lange voor de piezo met JACK connector en dan alles in elkaar schroeven.

Hierbij is niet meegerekend het ontwerp, opmeten, bestellen van onderdelen en hout, lasersnijden van de behuizingen en configureren van de Raspberry Pi. Gelukkig zijn dit dingen die ongeveer eenmalig zijn, dus niet voor elk doosje opnieuw gedaan moeten worden. Met elke nieuwe PlayGuru gaat het weer ietsje sneller.

20 maart 2017

De stand-alone versie werkt. Ik heb nu één prototype en ga er nog twee maken. Afgelopen zaterdag bij de HKU open dag kon ik het voor het eerst aan anderen demonstreren.

Het gebruik is heel eenvoudig: sluit je instrument en een versterker of koptelefoon aan, zet het apparaatje aan en je kunt beginnen. Zodra hij is opgestart laat hij dat met drie korte trillingen weten zodat je voelt dat hij er klaar voor is.

Er zijn maar een paar knoppen: een schakelaar waarmee je altijd naar de tuner kunt om je gitaar te stemmen, een draaiknop om oefeningen te kiezen en een drukknop om een oefening te starten of te stoppen.

Als je er helemaal klaar mee bent sluit je het apparaatje af door 4 seconden een knopje op de achterkant ingedrukt te houden. Je voelt dan een trilling ter bevestiging dat hij 'down gaat' en tien seconden later mag je de stroom eraf halen.




Het enige dat niet werkt is dat het ding helemaal zelfstandig opstart. Ik ben er al heel wat uren mee bezig, heb er een heel onderzoek van gemaakt maar het werkt nog steeds niet. Als ik op de Raspberry Pi inlog en het hoofdprogramma start dan werkt alles voorbeeldig, maar als het programma automatisch bij het aanzetten wordt gestart dan doet alleen de tuner het. Heel frustrerend.

13 maart 2017

De kastjes voor een stand-alone systeem beginnen vorm te krijgen. Ik heb met de laser cutter genoeg plankjes MDF gemaakt voor voorkanten, zijkanten enzovoort om vier kastjes te maken.


De gaten voor knoppen, audio in en audio uit zitten er al in, maar er komt nog wel wat handwerk bij kijken, zoals het inkorten van boutjes, uitboren van de gaten voor knopjes met korte schroefdraad en boren van gaatjes voor het monteren van de Raspberry Pi want ik had even niet aan gedacht dat het handig geweest was om dat meteen door de laser cutter te laten doen. Voortschrijdend inzicht heet dat.

Deze week wil ik een kastje operationeel hebben zodat ik dat bij de HKU open dag kan demonstreren en zien hoe mensen daarop reageren. Het is nog veel werk om alles aan te sluiten en de software zo aan te passen dat het gaat werken dus gauw aan het werk nu. Wordt vervolgd...

6 maart 2017

Afgelopen week een paper geschreven voor de Linux Audio Conference om meer bekendheid te krijgen en hopelijk andere ontwikkelaars te interesseren om aan het project mee te werken.

De tuner (gitaarstemmer) heeft een grote beurt gehad en werkt nu aanzienlijk prettiger. Je kunt zelf aangeven hoe extreem je het verschil tussen je eigen gitaargeluid en wat het zou moeten zijn wilt uitvergroten met iets dat ik de 'exaggeration factor' genoemd heb. Overdrijven en uitvergroten dus. Vooral handig voor mensen die het verschil anders niet zo duidelijk horen.

Er is een PlayGuru kastje in de maak. Dat wil zeggen.. dat moet ik dan wel zelf maken. Met een Raspberry Pi voor het rekenwerk, een ingang voor aansluiten van een instrument, een ingebouwd luidsprekertje en wat knoppen voor het kiezen en bedienen van diverse oefeningen. Ik wil in de tweede helft van maart een eerste versie gemaakt hebben.

13 februari 2017

Ik ben bezig met opschonen van de guitar tuner, schrijven van mijn thesis en daarbij het uitwerken van een eenvoudige machine learning aanpak voor het automatisch adapteren aan de gebruiker.

6 februari 2017

Een collega gaf me vorig week twee mini audio-interfaces om uit te proberen. Die had ze voor een prikkie besteld in China. En het werkt verbluffend goed. Na wat experimenteren en solderen kwam ik uit op een systeempje met een piezo zonder voorversterker. De piezo klem ik op de kop van een gitaar en mijn software werkt er prima mee. Weer een stap dichter bij PlayGuru in een doosje.

Verder ontdekte ik dit weekend een denkfout in mijn afhandeling van MIDI. Na het repareren van een foutje in de berekening van de tijdsduur van een fragment bleek dat het spelen en analyseren van meerdere kanalen helemaal niet kan werken zoals ik het nu gemaakt heb. Voor enkele noten werkt het prima. Er is een andere aanpak nodig die me vermoedelijk een dag werk gaat kosten en dat stel ik even uit omdat ik nu andere prioriteiten heb, namelijk de verwerking en toepassing van meetgegevens en het maken van een basis-uitvoering in een doosje zodat meer mensen het kunnen gaan gebruiken.

29 januari 2017

Mijn software draait op een Raspberry Pi. Dat is een mini-computer zonder beeldscherm en toetsenbord, eigenlijk alleen het printje met onderdelen. Dit biedt de mogelijkheid om de muziektutor zo vorm te geven dat het niet meer op een computer lijkt. Het kan een doosje worden met een aansluiting voor een gitaar of microfoon, een paar knoppen en een ingebouwde luidspreker.

Verder heb ik in de afgelopen week de meest basale oefening die ik heb teruggebracht tot zijn essentie: het naspelen van een melodie. Het werkt weer een stuk prettiger dan voorheen. Ik wacht nu op de bevindingen van Meindert.

22 januari 2017

Zo zie je maar weer... je kunt nog zo inzetten op de techniek, alles perfect willen doen en alle mogelijke situaties willen afdekken, maar uiteindelijk gaat het om kleine dingen.

Ik ben deze week een middag bij Meindert Mak geweest. Hij is erg enthousiast over bepaalde oefeningen die ik gemaakt heb en de mogelijkheden die ze bieden en daarom wil hij ze in zijn lessen gaan gebruiken. Daarvoor moeten ze betrouwbaar en muzikaal werken en laat dat nu door mijn inspanningen van de laatste tijd alleen maar slechter geworden zijn.

De laatste maanden heb ik vooral aandacht besteed aan het kunnen gebruiken door andere gebruikers dan ikzelf, op andere computers dan die van mij, aan een strakke en muzikale timing bij het afspelen, aan het kunnen maken van verschillende configuraties voor verschillende gebruikers, aan het werken met meerstemmig materiaal en aan het meten van allerlei factoren van het spel en daarop reageren. Dit alles met het idee dat anderen er dan ook mee kunnen gaan werken en hun ervaringen met mij delen.

Maar wat is nou het probleem? Het is niet meer leuk. Meindert merkte het meteen. "Wanneer gaat hij nou sneller?" was zijn vraag. Hij miste de prettige interactie die je in de oefening trekt, aanzet tot hogere prestaties, grotere concentratie en willen winnen van jezelf. En dat doet hij niet goed meer.

Ik ben de laatste tijd zo gefocust geweest op de functionaliteit dat ik zelf nauwelijks gespeeld heb. Niet met de gitaar en eigenlijk helemaal niet gespeeld. Zo blijkt weer hoe belangrijk spelen is.

Ik weet wel wat er aan de hand is. Twee dingen: ten eerste verzamelt de software inmiddels allerlei gegevens over hoe je speelt en is erop voorbereid dat een machine-learning systeem hiermee een passende reactie geeft. Maar dat machine-learning systeem is er nog niet, daar moet ik nog aan beginnen. Ten tweede heb ik op diverse lagen wijzigingen doorgevoerd en zijn sommige dingen te ingewikkeld geworden waardoor er fouten in zijn geslopen. Dus in theorie wordt het allemaal mooier en beter, maar in de praktijk is de lol er een beetje af. Tijd dus voor een andere koers.

Ik ben gisteren begonnen om de basis-oefening waar ik mee begonnen ben terug te brengen tot alleen naspelen van een melodie.

17 januari 2017

Werken met polyfone muziek begint vorm te krijgen. Je kunt PlayGuru nu een MIDI-file geven met meerdere kanalen waarbij je aangeeft met welk kanaal de speler beoordeeld wordt en welke kanalen de rest van de muziek bevatten. Zo wordt het een soort 'band-in-a-box' waarbij de band doorspeelt en jouw partij ontbreekt. Bij PlayGuru kan jouw partij echter best aanwezig zijn, maar dat is een keuze die vaak zal samenhangen met de soort oefening die je doet en in hoeverre de speler zijn eigen partij al kent.

Verder ben ik begonnen met het schrijven van een gebruikershandleiding waarin staat hoe je de software kunt gebruiken, welke oefeningen er nu zijn, wat je met configuratiebestanden kunt instellen en hoe je er je eigen muziek in kunt zetten om daarmee te oefenen.
Omdat ik voorzie dat de uiteindelijke vorm van het systeem anders zal zijn dan de ontwikkel- en testversie die ik nu maak lijkt het me niet zinvol om hier nu heel veel tijd in te steken, maar een beetje richting geven ben ik de huidige gebruikers (de early adopters en daarmee mede-ontwikkelaars) wel verschuldigd.

8 januari 2017

Niet veel gedaan deze week. Het is tenslotte nog kerstvakantie en ik heb dit weekend twee events als deejay, wat veel voorbereiding vereiste.

Toch wel iets dat het melden waard is: ik heb een begin gemaakt met polyfone muziek. Tot zover heb ik me alleen met enkelvoudige melodieëen bezig gehouden, maar in de praktijk heb je bijna altijd te maken met begeleiding, meerdere stemmen of zelfs meerdere instrumenten. Nou is het niet nodig dat alle signalen door de speler wordt nagespeeld, maar bij het meespelen met een loopje wil je soms ook de begeleiding horen. Ik ben de strategie van het afspelen en analyseren zo aan het aanpassen dat het niet meer draait om het aantal noten dat je mee- of naspeelt, maar om de tijdsduur.

Dit is tevens een opstapje naar het kunnen aanbieden en beoordelen van verschillende versies van hetzelfde stukje, zodat de gebruiker eerst een eenvoudige versie oefent, die bij voldoende 'skill' ingewikkelder wordt door bijvoorbeeld diminutie toe te passen of eerst alleen de melodie te oefenen en later de basnoten of begeleiding toe te voegen.

2 januari 2017

De afgelopen maanden heb ik me vooral met twee dingen bezig gehouden. Ten eerste het maken van een configuratie die door anderen te gebruiken is en ten tweede het verbeteren van de timing van de oefeningen.

Omdat ik mijn software ontwikkel voor Linux is het lastig, zo niet onmogelijk, om er een Windows versie van te maken. Voor Apple OSX zou misschien nog wel kunnen maar kost me op dit moment te veel tijd. Een mobiele app of website is voorlopig nog te ingewikkeld omdat de software nog in een onderzoeksfase verkeert en het programmeren voor een browser weer allerlei problemen met zich meebrengt waar ik me nu niet mee bezig wil houden.

De oplossing die ik gekozen heb is het prepareren van een laptop met daarbij een piezo-sensor, zelf gebouwde voorversterker en een audio-interface speciaal voor gitaar. Deze configuratie gaat ingezet worden bij muzieklessen en met de ervaringen die daarmee opgedaan worden kan ik mijn programma's verbeteren, nieuwe samenwerkingen zoeken en andere manieren om mijn software voor meer mensen toegankelijk te maken.

Om de software goed bruikbaar en inzetbaar te maken heb ik het voorzien van configuratie-files. Je kunt kiezen welke configuratie je wilt gebruiken en je kunt bijvoorbeeld per persoon meerdere configuraties maken. Hiermee kun je allerlei dingen aangeven, van het compositieproces, hoe er gemeten en feedback gegeven wordt, hoe het verloop van een spel is en nog veel meer.

Het verbeteren van de timing is goed gelukt. Je kunt nu met een zich herhalend loopje meespelen op een muzikale manier. Hoe ik het beste kan omgaan met loopjes die net buiten een maat vallen weet ik nog niet. Ik zou er negen-achtste van kunnen maken, of gewoon wachten tot de volgende maat is afgelopen. Dit wordt de komende tijd onderwerp(je) van studie.

Tot slot de plannen voor deze maand. Meindert Mak gaat mijn software in zijn gitaarlessen inzetten. Daarbij komen ongetwijfeld allerlei zaken aan het licht, van dingen die nog niet goed werken of niet handig te gebruiken zijn tot dingen die muzikaal niet lekker lopen. Ik hoop dat dit ons en vooral mij diverse inzichten oplevert waarmee ik de software kan verbeteren.

Ik wil me deze maand ook bezighouden met meerstemmig spelen. Tot nu toe kun je maar met één noot tegelijk spelen, wat op zich voldoet voor het spelen en onthouden van melodietjes, treffen van intervallen en diverse andere oefeningen, maar niet zo goed voor het spelen van echte liedjes.

Verder ben ik de methode van meten en feedback geven aan het verbeteren. Hiervoor wil ik onderzoeken of de computer kan 'leren' hoe hij het beste met een bepaalde speler kan omgaan.

Ik neem me voor om wekelijks in deze blog te schrijven hoe het project ervoor staat.