maandag 15 maart 2010

Planning korte termijn

15-18 maart: probleem ivm presets van effecten oplossen, volledig afronden en debuggen van de multi-user grafische interface, gepaste icoontjes maken
19 maart: evaluatiescenario's opstellen
20-21 maart: code opkuisen
22-26 maart: evaluatieweek: usability tests met verschillende gebruikers
27 maart-4 april:
1) aanpassingen doen waar nodig aan de hand van resultaten van de usability tests
2) structuur thesistekst opstellen (welke onderwerpen moeten aan bod komen in de tekst?)

dinsdag 9 maart 2010

Oplossing 2 problemen: slider BPM & sync GUI-sequencer

Het updaten van de BPM gaat wel on-the-fly, maar niet via de methode setTempoInBPM() zoals deze in de Java API beschreven staat. Er zit blijkbaar een bug in de Sequencer-klasse. Hieronder de oplossing.
Why is the tempo reset at the beginning of the loop when looping with the realtime sequencer?


This seems to be a bug. As a workaround, you can change the tempo factor. The tempo factor is not reset on loop iterations. You can use code similar to this:

Sequencer sequencer = ...;

public void setTempo(float fBPM)
{
float fCurrent = sequencer.getTempoInBPM();
float fFactor = fBPM / fCurrent;
sequencer.setTempoFactor(fFactor);
}


Een tweede probleem was de synchronisatie tussen de grafische interface en de software sequencer. Na stoppen en opnieuw starten volgde de GUI de sequencer niet meer en ging een eigen leven leiden. Een optimalere, maar iets complexere implementatie lost dit probleem nu op.

maandag 8 maart 2010

Verslag meeting 8/3

aanwezigen: Bram Vandeputte, Nik Corthaut, Jef Hermans
onderwerpen:
* voorstelling van de nieuwe applicatie: De DiamondSpin library wordt niet meer gebruikt; ik heb de GUI volledig herschreven in MT4j wegens eerder vernoemde redenen op deze blog. Sliders en draaiknoppen werden als extra widgets toegevoegd, hoewel de draaiknoppen nog niet naar behoren werken.
* controle van volumes: Voorlopig is er al een implementatie om het globale volume te controleren met een slider, nu is het nog de vraag hoe de volumes van instrumenten of van gebruikers apart ingesteld moeten worden. Een mogelijke aanpak is bij het kiezen van een instrument ineens de 'velocity'-waarde mee te geven en de gebruiker de mogelijkheid te geven deze later nog aan te passen. Dit is nog een punt waar goed over nagedacht moet worden.
* v0.9: tegen volgende meeting zou v0.9 klaar moeten zijn, die meerdere personen toelaat om samen collaboratief muziek te maken. Er moeten nog enkele aspecten geïmplementeerd worden en enkele kinderziektes in de GUI moeten nog opgelost worden. Als v0.9 klaar is, kan deze uitgebreid getest worden op usability en kan er een demo gegeven worden.
* volgende meeting: 15/3 10u

zondag 7 maart 2010

Touchy Remix


Toevallig kwam ik dit weekend terecht op de site van dit Nederlands bedrijfje: Intactlab. Zij zijn de ontwikkelaars van de Touchy Remix, een tabletop in een zeer fris en modern jasje. De optische multi-touch technologie die ze gebruiken is FTIR (Frustrated Total Internal Reflection), wat betekent dat ze een speciaal oppervlak gebruiken (typisch plexiglas) waar IR-licht wordt doorgestuurd. Die IR-stralen komen van LED's die rondom het glasoppervlak worden geplaatst. Het overige van de hardware-setup komt vrij goed overeen met de LLP-setup die we hier op de campus hebben.
Het bedrijf Intactlab houdt zich eigenlijk voornamelijk bezig met het ontwikkelen van applicaties voor de tabletop. De tafel zelf werd dan weer ontworpen door een Duitse designer. Toch maar eens naar de prijs informeren dacht ik dan. Kostprijs: 19800 euro (btw niet inbegrepen) :)

donderdag 4 maart 2010

Grafische interface

Welk framework is het beste geschikt voor deze multi-touch muziekapplicatie? Er zijn 3 mogelijkheden (of een combinatie uit deze 3): MT4j, DiamondSpin en Processing.
*DiamondSpin is geschikt voor multi-user applicaties, want biedt de mogelijkheid om frames over het display aan andere gebruikers door te geven. Het biedt echter geen herkenning van gestures aan en heeft ook geen speciale widgets die van tel kunnen zijn voor een muziekapplicatie (denk aan sliders). Bovendien is DiamondSpin nog steeds verre van bugfree en geeft het daarom soms onverklaarbare errors.
*Processing is nog een pak beperkter dan DiamondSpin. Het is niet gericht op multi-user applicaties, doet geen gesture recognition en doet dus niets met inkomende ruwe TUIO-berichten. Elke functionaliteit (van draaien van frames tot herkennen van handelingen op objecten) zal bijgevolg nog geïmplementeerd moeten worden.
*MT4j is een zeer uitgebreid raamwerk en steekt ook zeer goed in mekaar. Het houdt rekening met meerdere gebruikers, want biedt een interface om componenten te draaien en is ook in staat om gebaren te herkennen (oa rotatie, wat de gebruiker de mogelijkheid geeft om informatie of een venster in zijn richting te draaien). Verder bevat MT4j enkele widgets (sliders, lists, ...) die wel handig zijn bij het maken van een muziekapplicatie. v0.9 van dit raamwerk blijkt weinig of geen fouten meer te bevatten. Bovendien maakt het raamwerk ook abstractie van AWT of Swing in tegenstelling tot DiamondSpin, wat ook een groot pluspunt is.
MT4j lijkt de beste oplossing te zijn voor de visualisatie van deze muziekapplicatie.

maandag 1 maart 2010

Verslag meeting 1/3

aanwezigen: Bram Vandeputte, Nik Corthaut, Jef Hermans
onderwerpen:
* voorstelling van v0.1: deze versie bevat nog geen implementatie van sliders of draaiknoppen, hier zou de eerstkomende week een implementatie van gemaakt moeten worden
* voorstelling v1.0 eind maart: over 2 weken zou er al een v1.0 of 0.9 klaar moeten zijn om een demo te kunnen geven.
* grafische interface: De interface om met Ableton te communiceren is er, nu komt het er de volgende weken op aan om de grafische interface te verbeteren en uit te breiden. Er zijn in feite 3 mogelijkheden (of een combinatie van deze 3): MT4j, DiamondSpin of Processing. Onderzoek moet uitwijzen welk framework het beste geschikt is.
* volgende meeting: 8/3 10u

Video's v0.1

Enkele video's van de testsessie op de tabletop: