dinsdag 24 juli 2012

Lasercutten

Wat een marathon, 84 slices lasercutten. Heeft me meer dan 12 uur gekost, maar ben blij met het resultaat! Ik wil zo snel mogelijk alle slices op elkaar stapelen en vastlijmen. Maar ik moet dan eigenlijk wel alvast de LED-jes in muziekbox gesoldeerd hebben. Dus ik denk dat Mikail en ik binnenkort maar even moeten afspreken om dat te doen.
Zodra de slices allemaal netjes op elkaar gelijmd zijn, ga ik het model 'plamuren' met MDF vuller, schuren, een goede grondlaag geven en verven. Uiteindelijk gaat er ook nog een laag doorzichtige epoxy overheen voor een goede shiny finishing coat!



Vorderingen Virtuoso in Max/MSP

Even kijken of video op blogger ook een beetje lekker werkt, maar de 2 filmpjes demonstreren de max patch in wording van interactieve muziek. [update: nee, de filmpjes zien er dan bagger uit, worden nu geupload op:
http://greencouch.nl/downloads/virtuoso dan is e.e.a. tenminste ook te zien en lezen]

In Filmpje 1 staat de iPod nog uit, in filmpje 2 staat ie aan.
Filmpje legt zichzelf aardig uit (volg de muis) en de bekende 'bugs' komen ook mooi in beeld:
 (volume voor het eerst ingesteld zonder dat er handmatig een preset is 'aangezet' (op 1 minuut), wat normaal natuurlijk door de interactie wordt gestuurd).

Wat er in deze versies dus zit is:
- interactie (met een iPod via mrmr)
- losse midi-blokjes in 'groepen', gedefinieerd in een simpel tekstbestandje
wordt nu door de druk-rustig slider aangestuurd
- hoog / laag (momenteel hoge instrumenten vs. lage instrumenten via channel mixer)
- mogelijkheid om andere muziek (en presets in te laden)
- algehele volumeslider
- temposlider




vrijdag 6 juli 2012

06-07-2012 vorderingen tilt compensated compass

Mikail en ik (Raymond) zijn vandaag weer verder gegaan met het kijken naar de mogelijkheden van de Tilt Compensated Compass (TCC). De TCC heeft twee functies, een functie die kijkt op welke as (XYZ) er wordt geroteerd en een accelerometer. Nu is vandaag gebleken dat de eerste functie werkt als een echt kompas en daarmee door ons niet gebruikt kan worden. Wij moeten namelijk interactie creëren op coördinaten, maar deze zijn verschillend, afhankelijk van de hoek waarin men staat ten opzichte van het Noorden.
De accelerometer kunnen we daarentegen wel gebruiken omdat deze kijkt naar Acceleratie per as, niet ten opzichte van het noorden. Toch moeten we nog goed gaan bedenken hoe we dit goed kunnen programmeren, want de accelerometer is erg nauwkeurig, maar daarmee ook erg gevoelig. Dit wil dus zeggen dat wanneer iemand naar links wijst en daar rondjes draait, de accelerometer gaat denken dat er alweer naar rechts wordt gewezen.

Misschien dat we ergens dit weekend nog tijd zien om verder te werken, maar dit is niet zeker. Volgende kunnen we wel weer aan de bak.

dinsdag 3 juli 2012

02-07-2012 Voortgang en beperkingen muziek-systeem...

Tja, ja, ja, het aanvankelijke enthousiasme (mooi Max-script dat midi omzet in Arduino-array) begint weer wat te dalen nu er toch een aantal beperkingen optreden:
Als de array (een soort lijst) met nootjes te lang is, dan speelt de arduino het niet meer af... Hopelijk bestaat er een simpele oplossing???


Een 'lang zal ie leven' met alléén een instrument (en een paar nootjes minder) geeft nu al:
"Binary sketch size: 6,740 bytes (of a 32,256 byte maximum)"

Verder merk ik dat vanaf 6,800 bytes het script hoe dan ook over zijn nek gaat, ongeacht van de muziek(stijl) of hoeveelheid nootjes : s
Dan krijg je op z'n best (net over de grens van 6,800 bytes) hele rare overstuurde sounds, bij meer bytes hoor je gewoon helemaal niks meer.

Dit is mogelijk dus een veel groter probleem, waar ik op internet ook niet per sé iets over tegenkom. Jullie hier bekend mee?
Heel misschien heeft het er mee te maken dat de Musical Instrument Shield niet helemaal goed gesoldeerd is en dan mogelijk niet het volledige geheugen aangesproken kan worden...?

Tenslotte, maar dat is momenteel het minst belangrijk probeer ik via Max/MSP ook de Serial.read aan de praat te krijgen / aan te spreken, zodat ik wat interactie zou kunnen testen.
Wellicht dat jullie daar een makkelijke oplossing voor kennen? Dat krijg ik in ons script ook niet aan de praat (los in andere scripts wel).


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Afijn, tot dusver dus even mijn Arduino bevindingen, ik kan nu eerlijk gezegd weer even niet verder,
: s
dus actie of feedback is wel gewenst.

29-06-2012 script updates met Raymond, Mikail en Than

We hebben het script voor het muziek-gedeelte aangepast:
samengevat komt het neer op:
- tempo is per heden in bpm in plaats van in millisecondes per tijdseenheid
- delta-t (duratie van events) is nu in 4e, 8e , 16e etc. noten ipv in millisecondes of aantal tijdseenheden
- note velocity is nu vanaf 1 t/m 127 ipv alleen '1' voor noot aan, '0' voor noot uit
- mogelijkheid om na één array een andere array af te spelen, oftewel na een muziekblokje kan er een volgend muziekblokje worden afgespeeld

De bron-code-wijzigingen zullen we de blog besparen ; )
maar hier een Vader Jacob (gevolgd door een los nootje) in het huidige script :


/*********************************************************
v1.0, 20120526
created by Felix (Donkers Creative Technologies)
http://www.donkersct.nl

Derived from original Sparkfun example, see header below.

Optimized for Arduino SDK v1
- uses the "SoftwareSerial" library
and extended code:
- extra function so you can now play simple MIDI sequences
  with multiple MIDI-channels
 
See following some links for details on the MIDI protocol:
http://www.sonicspot.com/guide/midifiles.html
http://www.midi.org/techspecs/gm1sound.php

**********************************************************
version history
1.0, 20120526,  initial version
*********************************************************/


/* This is the original header for "MusicInstrument_Example"
 2-12-2011
 Spark Fun Electronics 2011
 Nathan Seidle

 This code is public domain but you buy me a beer if you use this and we meet someday (Beerware license).

 This code works with the VS1053 Breakout Board and controls the VS1053 in what is called Real Time MIDI mode.
 To get the VS1053 into RT MIDI mode, power up the VS1053 breakout board with GPIO0 tied low, GPIO1 tied high.

 I use the NewSoftSerial library to send out the MIDI serial at 31250bps. This allows me to print regular messages
 for debugging to the terminal window. This helped me out a ton.

 5V : VS1053 VCC
 GND : VS1053 GND
 D3 (SoftSerial TX) : VS1053 RX
 D4 : VS1053 RESET

 Attach a headphone breakout board to the VS1053:
 VS1053 LEFT : TSH
 VS1053 RIGHT : RSH
 VS1053 GBUF : GND

 When in the drum bank (0x78), there are not different instruments, only different notes.
 To play the different sounds, select an instrument # like 5, then play notes 27 to 87.

 To play "Sticks" (31):
 talkMIDI(0xB0, 0, 0x79); //Bank select: drums
 talkMIDI(0xC0, 5, 0); //Set instrument number
 //Play note on channel 1 (0x90), some note value (note), middle velocity (60):
 noteOn(0, 31, 60);

*/
int volCounter = 20;
int chan0 = 80;
int chan1 = 80;
int chan2 = 80;
int chan3 = 80;
int theVariableT = 0;

// enable debugging with the Arduino serial monitor
#define Serial_monitor

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); //Soft TX on 3, we don't use RX in this code
byte resetMIDI = 4; //Tied to VS1053 Reset line
byte ledPin = 13; //MIDI traffic inidicator

// define MIDI soundbanks
#define SB_GM1         0x00
#define SB_FANCYSOUNDS 0x78
#define SB_MELODIC     0x79

struct t_midiHeader {
  byte soundbank[4];
  byte instrument[4];
  byte volume[4];
  byte pitchShift[4];
  int tempo;
}; // t_midiHeader

// HIER MAAK JE EEN CHANNEL AAN
t_midiHeader JacobHeader = {
 {SB_GM1,SB_GM1,SB_GM1,SB_GM1}, //DIT ZIJN MIDI BOARDS
 {60, 1, 1, 3}, // INSTRUMENT BIJ DESBETREFFENDE CHANNEL
 {chan0, chan1, chan2, chan3}, // VOLUME BIJ CHANNEL
 {0, 0, 0, 0}, // PITCH ? DONT KNOW WTF IT IS
 120 // TEMPO
}; // t_midiHeader

struct t_midiNote {
  int  deltaTime; // deltaTime is in ms wordt berekend aan de hand van de nootduur in beats
  byte channel;   // midi channel for this note
  byte note;      // midi note to be played
  byte noteVelocity;     // 0=off, boven 0=on/velocity
}; // t_midiNote

t_midiNote singleNote;
 
t_midiNote Jacob1[] = {
{ 0, 1, 48, 70},
{ 0, 2, 60, 78},
{ 4, 1, 48, 0},
{ 0, 1, 48, 27},
{ 0, 2, 60, 0},
{ 0, 2, 62, 68},
{ 4, 1, 48, 0},
{ 0, 1, 48, 58},
{ 0, 2, 62, 0},
{ 0, 2, 64, 64},
{ 4, 1, 48, 0},
{ 0, 1, 48, 59},
{ 0, 2, 60, 80},
{ 0, 2, 64, 0},
{ 4, 1, 47, 80},
{ 0, 1, 48, 0},
{ 0, 2, 60, 0},
{ 0, 2, 60, 83},
{ 4, 1, 47, 0},
{ 0, 1, 47, 61},
{ 0, 2, 60, 0},
{ 0, 2, 62, 75},
{ 4, 1, 47, 0},
{ 0, 1, 47, 64},
{ 0, 2, 62, 0},
{ 0, 2, 64, 66},
{ 4, 1, 47, 0},
{ 0, 1, 47, 53},
{ 0, 2, 60, 78},
{ 0, 2, 64, 0},
{ 4, 1, 45, 78},
{ 0, 1, 47, 0},
{ 0, 2, 60, 0},
{ 0, 2, 64, 71},
{ 4, 1, 45, 0},
{ 0, 1, 45, 35},
{ 0, 2, 64, 0},
{ 0, 2, 65, 78},
{ 4, 1, 45, 0},
{ 0, 1, 45, 76},
{ 0, 2, 65, 0},
{ 0, 2, 67, 62},
{ 4, 1, 45, 0},
{ 0, 1, 45, 70},
{ 0, 2, 67, 0},
{ 4, 1, 43, 78},
{ 0, 1, 45, 0},
{ 0, 2, 64, 73},
{ 4, 1, 43, 0},
{ 0, 1, 43, 64},
{ 0, 2, 64, 0},
{ 0, 2, 65, 44},
{ 4, 1, 43, 0},
{ 0, 1, 43, 56},
{ 0, 2, 65, 0},
{ 0, 2, 67, 80},
{ 4, 1, 43, 0},
{ 0, 1, 43, 69},
{ 0, 2, 67, 0},
{ 4, 1, 41, 91},
{ 0, 1, 43, 0},
{ 0, 2, 67, 54},
{ 8, 2, 67, 0},
{ 0, 2, 69, 66},
{ 8, 1, 41, 0},
{ 0, 1, 41, 80},
{ 0, 2, 67, 64},
{ 0, 2, 69, 0},
{ 8, 2, 65, 66},
{ 0, 2, 67, 0},
{ 8, 1, 41, 0},
{ 0, 1, 43, 87},
{ 0, 2, 64, 75},
{ 0, 2, 65, 0},
{ 8, 2, 64, 0},
{ 8, 1, 43, 0},
{ 0, 1, 43, 55},
{ 0, 2, 60, 80},
{ 8, 2, 60, 0},
{ 8, 1, 43, 0},
{ 0, 1, 45, 86},
{ 0, 2, 67, 78},
{ 8, 2, 67, 0},
{ 0, 2, 69, 40},
{ 8, 1, 45, 0},
{ 0, 1, 45, 83},
{ 0, 2, 67, 78},
{ 0, 2, 69, 0},
{ 8, 2, 65, 68},
{ 0, 2, 67, 0},
{ 8, 1, 43, 86},
{ 0, 1, 45, 0},
{ 0, 2, 64, 75},
{ 0, 2, 65, 0},
{ 8, 2, 64, 0},
{ 8, 1, 43, 0},
{ 0, 1, 43, 80},
{ 0, 2, 60, 80},
{ 4, 1, 43, 0},
{ 0, 1, 43, 90},
{ 0, 2, 60, 0},
{ 0, 2, 60, 80},
{ 4, 1, 43, 0},
{ 0, 1, 43, 94},
{ 0, 2, 55, 73},
{ 0, 2, 60, 0},
{ 4, 1, 43, 0},
{ 0, 1, 48, 79},
{ 0, 2, 55, 0},
{ 0, 2, 60, 88},
{ 4, 1, 48, 0},
{ 0, 1, 48, 59},
{ 0, 2, 60, 0},
{ 4, 1, 43, 90},
{ 0, 1, 48, 0},
{ 0, 2, 60, 88},
{ 4, 1, 43, 0},
{ 0, 1, 43, 92},
{ 0, 2, 55, 80},
{ 0, 2, 60, 0},
{ 4, 1, 36, 97},
{ 0, 1, 43, 0},
{ 0, 2, 55, 0},
{ 0, 2, 60, 94},
{ 4, 1, 24, 97},
{ 0, 1, 36, 0},
{ 0, 2, 60, 0},
{ 4, 1, 24, 0},



};

t_midiNote Jacob2[] = {
  // deltatime, channel, note, on/off
  { 1, 0, 48, 40},
  { 1, 0, 48, 0},
};

void setup() {
#ifdef Serial_monitor
  Serial.begin(57600);
#endif

  //Setup soft serial for MIDI control
  mySerial.begin(31250);
 
  //Reset the VS1053
  pinMode(resetMIDI, OUTPUT);
  digitalWrite(resetMIDI, LOW);
  delay(100);
  digitalWrite(resetMIDI, HIGH);
  delay(100);
}



void loop() {
playMidiSequence(&JacobHeader, &Jacob1[0], sizeof(Jacob1) / sizeof(singleNote));
//playMidiSequence(&JacobHeader, &Jacob2[0], sizeof(Jacob2) / sizeof(singleNote));
}

//=================================================================
// demo: playMidiSequence
//=================================================================

void playMidiSequence(struct t_midiHeader *header, struct t_midiNote *sequence, int sequenceSize) {
  int sequencePntr = 0;
  byte pitch = 0;
  byte channel = 0;
  byte noteVelocity = 0;

  // initialize MIDI channels
  for (int i=0; i<16; i++) {
    MIDI_setSoundbank(i, header->soundbank[i]);
    MIDI_setVolume(i, header->volume[i]);
    MIDI_setInstrument(i, header->instrument[i]);
  }

  sequencePntr = 0;
 
  while(sequencePntr < sequenceSize ) {
    pitch = sequence[sequencePntr].note + header->pitchShift[sequence[sequencePntr].channel];
    channel = sequence[sequencePntr].channel;    
    noteVelocity = sequence[sequencePntr].noteVelocity;
   
    if (sequence[sequencePntr].noteVelocity > 0) {
      for (int i=0; i<3; i++) {
        MIDI_setVolume(i,chan0); //(channel, channelVelocity)
      }
      MIDI_noteOn(channel, pitch, noteVelocity);
    }
    else
    MIDI_noteOff(channel, pitch, 60);
    sequencePntr++;
   
    int tempoMs = 60000/header->tempo; // 60 000 = 60sec, headertempo is in ms, uitkomst = bpm
    int wholeNote = tempoMs * 4; // hele noot = 4 * kwart noot
    int delta = sequence[sequencePntr].deltaTime;
   
    if (!delta == 0) { // if delta=0 dan geen delay
      delay(wholeNote/delta); // playbackspeed
    }

  }
} // playMidiSequence

/*********************************************************
Various low level MIDI commands
*********************************************************/

//Send a MIDI note-on message.  Like pressing a piano key
//channel ranges from 0-15
void MIDI_noteOn(byte channel, byte note, byte attack_velocity) {
  talkMIDI( (0x90 | channel), note, attack_velocity);
} // MIDI_noteOn

//Send a MIDI note-off message.  Like releasing a piano key
void MIDI_noteOff(byte channel, byte note, byte release_velocity) {
  talkMIDI( (0x80 | channel), note, release_velocity);
} // MIDI_noteOff

//Send a MIDI set soundbank message
void MIDI_setSoundbank(byte channel, byte soundbank) {
  //0xB0 is channel message, set soundbank
  talkMIDI( (0xb0 | channel), 0x00, soundbank);
} // MIDI_setSoundbank

//Send a MIDI volume message
void MIDI_setVolume(byte channel, byte volume) {
  //0xB0 is channel message, set ch_x volume
  talkMIDI( (0xB0 | channel), 0x07, volume);
} // MIDI_setVolume

//Send a MIDI set instrument message
void MIDI_setInstrument(byte channel, byte instrument) {
  //0xC0 is a 1 data byte command, set ch_x instrument number
  talkMIDI( (0xC0 | channel), instrument, 0);
} // MIDI_setInstrument

//Plays a MIDI note. Doesn't check to see that cmd is greater than 127, or that data values are less than 127
void talkMIDI(byte cmd, byte data1, byte data2) {
  digitalWrite(ledPin, HIGH);
  mySerial.write(cmd);
  mySerial.write(data1);

  //Some commands only have one data byte. All cmds less than 0xBn have 2 data bytes
  //(sort of: http://253.ccarh.org/handout/midiprotocol/)
  if( (cmd & 0xF0) <= 0xB0)
    mySerial.write(data2);

  digitalWrite(ledPin, LOW);
} // talkMIDI





donderdag 28 juni 2012

Meeting Sonja, Mikail en Raymond

Vandaag zijn Mikail, Raymond en ik (Sonja) bijeengekomen om het te hebben over hoe de hardware in het product moet passen, de interacties en de muziek en we hebben het even gehad over de communicatie. Mikail en Raymond zullen voortaan regelmatiger posten, niet alleen over grote stappen, maar ook over kleine stapjes die zijn gemaakt op deze blog. Ze hebben een muzieksysteem verzonnen dat in feite lineair is maar uit lagen van instrumenten bestaat. Door middel van het wijzen in verschillende richtingen kun je verschillende instrumenten naar voren laten komen. Het idee was echter wel teveel gericht op wijzen met de dirigeerstok, terwijl een dirigeerstok meer gericht is op de beweging zelf. Daarom hebben we gebrainstormd voor andere ideeën: Basisinteractie: zwaaien met stok. Muziek is non-lineair, het einde wordt bepaald door de speler. Snelheid/acceleratie stok kan drie verschillende dingen bepalen:       - tempo      - aantal instrumenten      - druk/rustig gedeelte van het muziekstuk Welke het beste is kunnen we alleen weten door te playtesten. Hoog/laag bepaalt het volume Links/rechts kan een solo van een viool of bijvoorbeeld piano laten spelen. Dit staat uiteraard nog niet vast totdat blijkt dat het leuk is voor de kinderen, en uiteraard moet het ook technisch mogelijk zijn voor de muziek en de techniek, of misschien kan het beter of anders. Dat hoor ik graag. Betreft de hardware in het product, er moet een speaker in, een Arduino en een music shield en uiteindelijk ook een RF ontvanger. In de dirigeerstok komt een compas, een mini Arduino en uiteindelijk ook een RF transmitter. De muziekbox moet op stroom van het stopcontact, batterijen geven niet genoeg energie voor het juiste volume uit de speaker. MoSCoW lijst voor de techniek: Must - muzieksysteem interactief - acceleratie/snelheid en richting Should - grootte van beweging - (als er maar een korte draad tussen dirigeerstok en box zit is het een should): draadloos Could - (als er een hele lange draad tussen dirigeerstok en box zit is het een could): draadloos woud - cassettes 

dinsdag 26 juni 2012

Visueel Design van Virtuoso

Het visueel design van Virtuoso is klaar. Dit is hoe het eruit gaat zien. Ik zit eraan te denken om er toch een 3D print van te maken, omdat ik een Nederlands bedrijf heb gevonden dat grote 3D prints kan maken. Bo van Oord (een uitstekende 3D modeller) gaat misschien een hele mooie 3D model hiervan maken, zodat de 3D print optimaal uit de voeten komt. Ik ben nog wel bezig met een offerte, het zal namelijk erg prijzig worden, ik heb een maximum bedrag in mijn hoofd, als het meer wordt dan dat, ga ik toch voor een andere oplossing kijken.
Voor mij is de volgende stap om te kijken hoe dit model functioneel werkt en hoe de hardware er het makkelijkst in kan worden gezet.

vrijdag 22 juni 2012

Visueel ontwerp

Ik ben klaar met het ontwerp van de buitenkant van de muziekbox van Virtuoso. Ik ga nu aan de slag met hoe de binnenkant eruit zit. De grootste uitdaging ligt in het bovenste gedeelte, die wil ik visuele elementen geven van een concertzaal of een orkest, maar wel in een hele iconisch-abstracte stijl die overeenkomt met de stijl van de buitenkant.
Ook moet er een visuele indicatie komen van de richting die wordt aangewezen. Dat wil ik doen met kleine led-jes achter de 'muur' die licht geven aan de kant waar naar gewezen wordt (dus ik heb op zijn minst drie punten nodig. Maar misschien is meer ook interessant. Daar ben ik nog niet over uit.
Op het moment dat ik dit ontwerp af heb ga ik beginnen met het maken van een model in ware grootte. Daarvoor moet ik nog onderzoek doen naar wat het makkelijkste proces is voor mij om dit te maken.
3D printen is helaas geen optie, want zo een grote inhoud printen is ontzettend duur en de meeste 3D printers kunnen maximaal 20 bij 20 cm printen. Virtuoso wordt groter.
Ik heb vandaag een eerste mini-model gemaakt. Deze is niet erg accuraat, de vorm klopt niet helemaal.
Ik heb het gemaakt van Artiste-klei wat zelf drogend is en heb er met waterverf overheen geschilderd. Resultaat: niet strak, doffe kleuren. Ik wil hem sowieso glimmender hebben, zoals het ontwerp dat ik ervan heb getekend.

That's all for now!

Sonja

PS: Mikail en Raymond: zouden jullie een overzicht kunnen maken van alle hardware die erin komt, of die in de dirigeerstok of de muziekbox komt en de afmetingen hiervan? We kunnen eventueel ook begin volgende week bij elkaar komen om dit samen te doen.

Voortgang

Vandaag hebben wij een meeting gehad via Skype.
Op het moment is de grootste uitdaging nog steeds om een goede brug te creëren tussen de techniek en de muziek (het muzieksysteem).
Het is op het moment al mogelijk om muziek af te spelen in MIDI met de instrument shield. Er kunnen 16 lagen tegelijk worden afgespeeld. Volgens Stan is 16 lagen aan instrumenten ook genoeg om een mooie compositie mee te maken.
Wel waren er nog wat onduidelijkheden over de aanduidingen van de nootduren en de functie van dingen als een Pitch. Ook wilt Than al vast een test doen met een begeleidende laag voor het testmuziekje Vader Jacob. Daar heeft hij al een lijn voor geschreven die Mikail en Raymond kunnen implementeren. Than wil ook graag een variatie proberen. (Vul me aan als er nog andere dingen waren)
Dit gaan Mikail en Raymond uitzoeken.

Vrijdag 29 juni komen Than, Raymond en Mikail bij elkaar om te werken aan het muzieksysteem. Door bij elkaar te zitten, zal er veel progressie zijn. Ik ben erg benieuwd naar het resultaat!

Stan en ik (Sonja) zijn op vakantie van 29 juni tot 13 juli. We hebben geen internet waar we verblijven, maar ik zal zo nu en dan even een internet cafe opzoeken om te kijken hoe de voortgang is.


Op het moment dat het muzieksysteem duidelijk is, kunnen Than en Stan aan de slag met componeren.
Mikail en Raymond kunnen dan aan de slag met het interactiesysteem. Er zijn drie manieren van interactie: richting, snelheid en grootte van de beweging. Deze bewegingen zouden vloeiend moeten worden geregistreerd om de interactie optimaal te krijgen. Than en Stan moeten de verandering in muziek baseren op deze interacties. Het lijkt mij het slimst om eerst een simpele versie van de muziek te maken om te kijken hoe de muziek verandert aan de hand van het interactiesysteem dat Mikail en Raymond hebben geprogrammeerd. Waarschijnlijk klinkt het de eerste keer nog niet helemaal lekker, zullen we ontdekken dat we duidelijke overgangen nodig hebben, of blijkt dat de interactie nog niet vanzelfsprekend aanvoelt. Door veel te testen (met de doelgroep, maar ook door zelf met het technisch prototype te spelen) kunnen we snel iteraties maken en zo de interactie tussen beweging, techniek en muziek goed balanceren.

Op het moment dat het goed en logisch aanvoelt kunnen we het technisch prototype als klaar beschouwen!


Dus om de voortgang nog even op te noemen:
- De mogelijkheden en beperkingen van de muziek is bijna helemaal duidelijk
- Er moet nog wat getest worden om dit helemaal duidelijk te maken
- Op het moment dat de combinatie techniek - muziek duidelijk is, kunnen Than en Stan
  aan de slag met componeren.
- De drie interacties, richten, snelheid en grootte van de beweging, moeten geprogrammeerd worden op een manier dat het vloeiend aanvoelt.
- De muziek moet kunnen aanpassen op deze drie interacties, het contrast in de verandering moet duidelijk zijn (muzieksysteem ontwerp).
- Het muzieksysteem en het interactiesysteem moeten samenkomen.
- Als er tijd voor is zal de technische prototype in het visuele prototype worden verwerkt.
- Testen en itereren van het technisch prototype, totdat het lekker werkt.
- Klaar!


Wanneer Stan en ik terug zijn uit Toscane (13 juli), is de school waar ik test nog maar 1 week open. Ik zou dus dan al een enigszins speelbaar prototype willen hebben om te testen (het hoeft nog niet perfect te zijn, maar wel interactief met een simpel muzieksysteempje). Daar hebben we dus 3 weken voor.

Er moet dus best wel wat vaart in zitten.

Welkom!

Deze blog is bedoeld voor de makers van het speelgoed Virtuoso, in een interactieve dirigeerstok voor kinderen. Hier wordt de voortgang gepost van het ontwerp, de techniek, de muziek en het visueel ontwerp.
Het is de bedoeling dat deze blog door iedereen regelmatig wordt geupdate met een post waar hij of zij mee bezig is, waar diegene problemen mee heeft en wat hij of zij heeft gemaakt. Op die manier is iedereen goed op de hoogte van het proces van elkaar en kunnen we bij problemen sparren naar een oplossing of sparren naar een beter ontwerp.