Neural Grains

Dit project heb ik samen met Mark Smits en Tom Siemerink gemaakt in opdracht van HKU. Neural Grains was onze eindopdracht voor het eerste jaar van Creative System Design (CSD/SYSBAS). De opdracht bestond uit een combinatie van Javascript en MAX 8. De koppeling hebben we verzorgd met OSC (Open Sound Control).

Het proces begon al in februari, toen we voor SYSBAS groepjes moesten maken om uiteindelijk aan onze eindopdracht te gaan werken. Mark, Tom en ik kwamen samen en gingen brainstormen over mogelijke ideeën. Onze eerst idee was abstract, maar heeft ons uiteindelijk wel in de richting van dit eindresultaat geholpen. “We zouden iets kunnen doen met chaos in het hoofd van een MT-student.” Het stuiterende ballen script uit een eerdere opdracht, zouden we dan zo uitwerken, dat je in de 2 minuten die je had steeds meer ballen én dus connecties in je scherm zou hebben. Dit idee hebben we echter niet uitgevoerd omdat we er al snel achter kwamen, dat de granulaire synthesizer die Mark had gemaakt, niet meer optimaal zou kunnen werken. OSC vind het niet prettig om van 50+ balletjes een positie en afstand door te sturen bij ieder frame.

We gingen voor eenentwintig ballen. Twintig op zichzelf door de ruimte bewegende ballen én een balletje die jij als speler kunt besturen. In de code hiernaast zie je hoe dat besturen werkt. Met de functies isControlable en window.addEventListener was het voor ons mogelijk om een “keydown” event aan te maken. Wanneer je in dit geval op de linker pijltjestoets drukt, veranderd de richting van het balletje op de x-as van 1 naar -1. Ook zorgt deze “keydown” ervoor dat de diameter van alle balletjes met 10 tot 15 pixels groeit en dat de kleur van alle balletjes bij iedere pixel die ze groeien, steeds roder wordt.

Een aantal parameters worden vervolgens via OSC naar MAX 8 gestuurd om zo het geluid te genereren. Het geluid van de MAX-patch wordt gegenereerd op drie vlakken. Een zaagtand drone die je met MIDI invoer kunt bespelen, directe feedback op toetsaanslagen in de vorm van waterdruppels en als laatste de granulaire synthesizer die Mark heeft gebouwd. Deze synth wordt geactiveerd wanneer de afstand tussen een bestuurbaar en onbestuurbaar balletje minder dan 300 pixels is. Op datzelfde moment genereert de Javascript code een lijntje tussen de twee balletjes. Dit lijntje wordt dikker naarmate de ballen elkaar naderen. MAX 8 krijgt continu zowel het aantal connecties, als de afstanden ten opzichte van het bestuurbare balletje door.

Setup: Sample inladen (linksboven) -> Sample regio en lengte aangeven -> numberbox onder sample op 1 -> general volume aan.

Al met al was dit een te gek project om te doen al heeft het de nodige uren gekost om allemaal te werken zoals we dat hadden gehoopt. Dit is het project dat mij bekend heeft gemaakt met de functies van Javascript, waar ik in de toekomst een hoop aan zal hebben.

1 gedachte over “Neural Grains

  1. Pleun Stork zegt:

    Erg cool! Ik ben een grote fan van uw werk en van de muziek van Inside Electron! Ik raad iedereen die dit leest aan om te luisteren naar de geweldige band van deze prachtige man.

    Beantwoorden

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *