Realtime Interactive Multimedia Processing Ontwikkeling van Visual Violence; een realtime interactief multimedia framework
Mediatechnologie – Hogeschool van Utrecht
Jeroen de Jong Felix van Geuns
1084322 1101695
Bosch en Duin, mei 2004
Visual Violence
Realtime Interactive Multimedia Processing
Voorwoord Voor u ligt de scriptie over onze afstudeerstage bij Egoplastiek te Bosch en Duin. Met veel plezier hebben wij, binnen ons eigen bedrijf, de multimediamogelijkheden die computers tegenwoordig bieden mogen verkennen. In deze scriptie beschrijven wij de uitgevoerde werkzaamheden en gemaakte beslissingen tijdens onze afstudeerperiode. Zoals gebruikelijk in dit vakgebied zijn veel termen van oorsprong Engels. we hebben ervoor gekozen deze niet te vertalen. Tijdens onze werkzaamheden van de afgelopen twee jaar, hebben wij binnen Egoplastiek veel ervaring opgedaan met diverse mediasystemen en de uitwerking daarvan op het publiek. De mogelijkheid om binnen ons eigen bedrijf af te studeren op een onderwerp dat aansluit op de onderzoekende instelling van Egoplastiek, is van onschatbare waarde. In september 2004 zijn wij van plan om, mede dankzij deze scriptie en het ontwikkelde prototype, te starten met het uitwerken van diverse vernieuwende diensten die het mogelijk maken om een unieke positie in de markt te veroveren. Wij zouden de volgende mensen graag willen bedanken voor hun medewerking aan deze scriptie en afstudeeropdracht. Zonder hen had onze afstudeerstage geen vorm kunnen krijgen: Dhr. Ing. M. Duric voor de kritisch begeleiding vanuit zowel een bedrijfs- als studentenoogpunt. Dhr. Ir. M. Veen voor de kritische begeleiding vanuit de opleiding. Dhr. H. De Jong voor het voorzien in een bedrijfsruimte en overige faciliteiten. Dhr. Ir. Koldenhof, voor het begeleiden in de beginfase van het afstuderen. Familie, vrienden en buren voor hun steun. Bosch en Duin, 24 mei 2004 Jeroen de Jong en Felix van Geuns.
Nota Bene: omdat wij tijdens de afstudeerstage als stagiaires binnen ons eigen bedrijf werkzaamheden verrichten, beschouwen we in deze scriptie Egoplastiek als opdrachtgever. Het bedrijf wordt daarom als derde persoon aangeduid.
3
Visual Violence
Realtime Interactive Multimedia Processing
Samenvatting Deze scriptie betreft de afstudeerstage van Jeroen de Jong en Felix van Geuns, studenten Mediatechnologie aan de Hogeschool van Utrecht. Dit document beschrijft de totstandkoming van het Visual Violence prototype. Visual Violence is een modulair framework waarmee diverse media realtime en interactief bewerkt kunnen worden. Het prototype komt voort uit de behoefte van Egoplastiek om diverse ideeën te realiseren door middel van een applicatie waarmee diverse media aan elkaar gekoppeld kunnen worden. Egoplastiek is een jong bedrijf dat zich momenteel richt op het verzorgen van videoprojecties tijdens feesten en optredens. Hierbij ligt de nadruk op het onderzoeken van de invloeden die de hedendaagse media - en dan met name gerelateerd aan digitale video - hebben op het publiek. Het Visual Violence concept gaat uit van realtime mediastream bewerkingen door middel van het aan elkaar koppelen van modulen. Nieuwe ideeën kunnen worden gerealiseerd door het koppelen van bestaande modulen en de ontwikkeling van nieuwe. Dit concept hebben we, na onderzocht te hebben wat de meest geschikte soft- en hardwareconfiguratie voor Visual Violence is, omgezet naar een functioneel, grafisch en technisch ontwerp. Na het ontwerp volgde de ontwikkeling van het Visual Violence prototype met behulp van de grafische programmeeromgeving Max-MSP-Jitter. Om de kracht van het concept aan te tonen hebben wij het prototype getest tijdens twee optredens van Egoplastiek. Deze testresultaten zijn verwerkt in een conclusie die aangevuld is met aanbevelingen over de doorontwikkeling van het Visual Violence systeem.
4
Visual Violence
Realtime Interactive Multimedia Processing
Inhoudsopgave Voorwoord...................................................................................................................................... 3 Samenvatting ................................................................................................................................. 4 1 Inleiding ....................................................................................................................................... 6 Afstudeerbedrijf ............................................................................................................................ 6 Afstudeeronderwerp..................................................................................................................... 7 Hoofdstukindeling ........................................................................................................................ 7 2 Opdracht...................................................................................................................................... 8 Probleemstelling........................................................................................................................... 8 Opdrachtformulering .................................................................................................................... 8 Doelstellingen............................................................................................................................... 9 Producten..................................................................................................................................... 9 Uitgangssituatie............................................................................................................................ 9 3 Concept ..................................................................................................................................... 10 Visual Violence........................................................................................................................... 10 Visual Violence framework......................................................................................................... 10 Modulen ..................................................................................................................................... 11 4 Aanpak....................................................................................................................................... 11 Projectfasering en activiteiten .................................................................................................... 11 Kwaliteitsbewaking..................................................................................................................... 13 Risicoanalyse ............................................................................................................................. 14 Projectgrenzen ........................................................................................................................... 14 Beschikbaarheid......................................................................................................................... 15 5 Onderzoek ................................................................................................................................. 16 Software verdiepingsonderzoek................................................................................................. 16 Hardware verdiepingsonderzoek ............................................................................................... 19 6 Ontwerp ..................................................................................................................................... 21 Functioneel ontwerp................................................................................................................... 21 Grafisch ontwerp ........................................................................................................................ 24 Technisch ontwerp ..................................................................................................................... 25 7 Ontwikkelfase............................................................................................................................ 27 8 Testfase ..................................................................................................................................... 30 Conclusie ................................................................................................................................... 30 Aanbevelingen ........................................................................................................................... 31 9 Evaluatie .................................................................................................................................... 33 10 Termen..................................................................................................................................... 35 11 Literatuur ................................................................................................................................. 37 Boeken ....................................................................................................................................... 37 Websites .................................................................................................................................... 37
5
Visual Violence
Realtime Interactive Multimedia Processing
1 Inleiding Voordat we ingaan op onze afstudeeropdracht en het door ons ontworpen en ontwikkelde prototype, volgt inleidende informatie over het afstudeerbedrijf, het afstudeeronderwerp, en de hoofdstukindeling van deze scriptie.
Afstudeerbedrijf Egoplastiek is een jong bedrijf, opgericht in 2002 door Madris Duric, Jeroen de Jong en Felix van 1 2 Geuns. Sindsdien concentreert Egoplastiek zich op het verzorgen van visuals - VJ’en - in het 3 clubcircuit . Hierbij wordt de nadruk gelegd op het onderzoeken van invloeden die de hedendaagse media - en dan met name gerelateerd aan digitale video - hebben op het publiek. Deze invloeden mogen niet onderschat worden want door beelden op muziek te componeren en 4 deze op diverse manieren aan te bieden heeft de VJ invloed op de emoties van het publiek. Door middel van onderzoek tracht Egoplastiek nieuwe dimensies binnen het VJ’en te creëren en zo een unieke positie in de markt te veroveren. Egoplastiek is geïnteresseerd in de combinatie van, en de verhoudingen tussen, audio en video. De audiovisuele compositie wordt beschouwd als iets wat in beweging is: het dynamische 5 resultaat van de samenwerking tussen DJ ’s, VJ’s en het publiek. Mediatechnologie ligt ten grondslag aan de werkzaamheden van Egoplastiek. De compositie van visueel vormgegeven emoties wordt namelijk gerealiseerd door middel van diverse soft- en hardware. Het bedrijf is een ware oase voor de mediatechnoloog die gespecialiseerde systemen ontwerpt, ontwikkelt en in de praktijk test om zo een bepaald doel te verwezenlijken. Sinds oktober 2002 verzorgt Egoplastiek op regelmatige basis de visuals in het clubcircuit (zie 6 bijlage 1: portfolio). In het Utrechtse poppodium Ekko heeft Egoplastiek tijdens het ‘Boemklatsch event’ (zie bijlage 2: boemklatsch) steeds meer ervaring opgedaan. Daardoor is het bedrijf zo gegroeid dat het regelmatig wordt gevraagd om in zalen als Ekko, Tivoli De Helling, Tivoli Oudegracht en Hotel Arena de visuals te verzorgen. De verwachting is dat deze groei zich in de toekomst zal voortzetten. Egoplastiek wil door diverse diensten aan te bieden een unieke marktpositie creëren waardoor het mogelijk is om zowel kunstzinnig als commercieel te groeien.
1
Visuals: (video) beelden. VJ’en: Het tijdens evenementen verzorgen van een visuele performance met behulp van videobeelden om de sfeerbeleving van het publiek te vergroten. 3 Clubcircuit: de branche die bestaat uit poppodia, disco’s en soortgelijke aangelegenheden. 4 VJ: Video Jockey. 5 DJ (Disc Jockey): verzorger van een muziekprogramma op de radio of in een discotheek. 6 Boemklatsch: een organisatie die op regelmatige basis feesten organiseerd. Zie ook bijlage 2. 2
6
Visual Violence
Realtime Interactive Multimedia Processing
Afstudeeronderwerp Tijdens de optredens die Egoplastiek verzorgt zijn er diverse ideeën ontstaan die inspelen op de behoefte naar een betere integratie en interactie tussen audio, video en andere mediavormen met als doel de sfeerbeleving te vergroten. Omdat deze ideeën moeilijk en soms onmogelijk te verwezenlijken zijn met huidige soft- en 7 hardware systemen van Egoplastiek, is de behoefte ontstaan aan een framework -applicatie waarbinnen dergelijke projecten verwezenlijkt kunnen worden. 8
Afstudeeronderwerp: Het onderzoeken van realtime integratie- en interactiemogelijkheden tussen audio, video en andere mediavormen door middel van de ontwikkeling van een multimediaframework.
Hoofdstukindeling In hoofdstuk 2 wordt de afstudeeropdracht besproken. Naast de probleemstelling en de opdracht zullen ook de doelstellingen, de tussen- en eindproducten en de uitgangssituatie behandeld worden. In hoofdstuk 3 wordt het concept van het Visual Violence systeem besproken. Hierin zullen tevens een aantal afwegingen met betrekking tot het ontwikkelen van het systeem uiteengezet worden. In hoofdstuk 4 wordt de aanpak van de afstudeeropdracht besproken. In dit hoofdstuk worden de verschillende fasen uiteengezet en zal de planning worden besproken. In hoofdstuk 5 wordt de onderzoeksfase besproken. De onderzoeken die gedaan zijn om tot een goed eindresultaat te komen, zullen allen worden behandeld. In hoofdstuk 6 wordt de ontwerpfase besproken. Het functioneel, technisch en grafisch ontwerp worden nader toegelicht. In hoofdstuk 7 wordt de het verloop van de ontwikkelfase besproken. In hoofdstuk 8 worden conclusies en aanbevelingen aan het bedrijf gedaan. Deze komen voort uit tests die zijn uitgevoerd. In hoofdstuk 9 wordt de afstudeerperiode op verschillende punten geëvalueerd. Niet alleen de planning zal worden behandeld maar ook de uitvoering van de opdracht en de behaalde resultaten. In hoofdstuk 10 kunnen de gebruikte termen in deze scriptie worden teruggevonden. In hoofdstuk 11 is terug te vinden welke literatuur er is gebruikt.
7 8
Framework: een structuur, gemaakt om iets (objecten, taken, etc.) te ondersteunen. Realtime: het verwerken van gegevens binnen de maximale voor de mens niet-waarneembare vertraging.
7
Visual Violence
Realtime Interactive Multimedia Processing
2 Opdracht Probleemstelling Tegenwoordig is VJ’en aardig ingeburgerd in het clubcircuit. Egoplastiek bezoekt regelmatig eventmenten waar andere VJ’s actief zijn. Vaak worden er onsamenhangende beelden getoond die weinig met de muziek te maken hebben en het publiek dan ook niet extra prikkelen. Een goed voorbeeld van dit probleem is de ‘VHS-VJ’. Deze VJ projecteert beelden afkomstig van 9 een VHS-speler. Het resultaat is een grotendeels lineaire VJ performance waarbij de beelden nauwelijks kunnen worden afgestemd op de muziek. In het ergste geval ziet het publiek de VHS band terugspoelen waarna deze opnieuw begint. Egoplastiek probeert daarentegen met behulp van digitale video in een computersysteem nieuwe interactieve dimensies binnen het VJ’en te creëren. Het gaat om het vergroten van de sfeerbeleving van het publiek waarbij diverse (nieuwe) media Egoplastiek de mogelijkheid geven om dit probleem aan te pakken. Sinds twee jaar is Egoplastiek bezig ideeën uit te werken die de sfeerbeleving van het publiek vergroten. De huidige soft- en hardwareconfiguratie van Egoplastiek biedt niet de mogelijkheid om deze ideeën te realiseren. Vandaar de vraag of het mogelijk is om een systeem te ontwikkelen waarbinnen dergelijke ideeën kunnen worden gerealiseerd. Een goed voorbeeld van sfeerbeleving door middel van interactie tussen muziek, beeld en publiek dat met een dergelijk systeem kan worden gecreëerd is de visualisatie van geluid. Een mogelijke herkenbare toepassing is een geluidintensiteitsmeter die men vaak op versterkers en equalizers aantreft. Een visualisatie als deze zou Egoplastiek aan het publiek willen aanbieden om zo de sfeerbeleving van bijvoorbeeld de bassen te vergroten.
Opdrachtformulering Opdracht 1
10
11
Ontwerp en ontwikkel een prototype van een non-dedicated modulair framework waarmee 12 één of meerdere ingaande mediastreams kunnen worden gemanipuleerd en vervolgens worden doorgestuurd naar één of meerdere (video)outputs.
Opdracht 2
Ontwerp en ontwikkel voor het bovengenoemde prototype een module waarmee binnenkomende audio gebruikt wordt om diverse videobewerkingseffecten te genereren.
9
Lineaire VJ performance: een VJ performance die grotendeels bestaat uit een vaste volgorde van beeldfragmenten. 10 Non-dedicated: niet onworpen voor één specifieke taak. 11 Modulair: geconstrueerd om gemakkelijk onderdelen toe te voegen of te verwijderen, componenten (modulen) te veranderen en aan te passen. 12 Mediastream: een continue gegevensstroom die bestaat uit één of meerdere media.
8
Visual Violence
Realtime Interactive Multimedia Processing
Doelstellingen De afstudeeropdracht heeft de volgende doelstellingen: • • • • •
Het in kaart brengen van programmeeromgevingen voor multimediatoepassingen. Het kiezen van de optimale hardware configuratie. Het bedenken en uitwerken van concepten voor vernieuwende multimediatoepassingen die binnen het werkveld van Egoplastiek passen. Het ontwikkelen van een multimediaframework, waarin diverse concepten kunnen worden gerealiseerd. Het implementeren van de in opdracht 2 geformuleerde module.
Producten De afstudeeropdracht zal de volgende tussen- en eindproducten opleveren:
Tussenproducten: • • • •
Plan van Aanpak Globale planning Functionele specificatie Technische specificatie
Eindproducten: • • • • • •
Verdiepingsonderzoek naar programmeeromgevingen Verdiepingsonderzoek naar mogelijke hardwareconfiguraties Prototype van het multimedia framework Geluidsintensiteit-module Testrapporten Scriptie
Grensproducten: • •
Extra concepten voor het multimedia framework Extra modulen voor Visual Violence
Uitgangssituatie Egoplastiek heeft een klein kantoor in Bosch en Duin. De ruimte is tevens de opslagplek voor alle hardware die veel computer- en video-apparatuur omvat. De inventaris staat in zijn totaliteit ter beschikking van de afstudeerders zodat zij met allerlei opstellingen kunnen experimenteren. Egoplastiek is een jong bedrijf en heeft een beperkt eigen vermogen. Voor de afstudeerders is een budget van 1000 euro vrijgemaakt om de opdracht te kunnen realiseren.
9
Visual Violence
Realtime Interactive Multimedia Processing
3 Concept Visual Violence: een realtime interactief multimedia framework Visual Violence maakt het mogelijk om diverse mediastreams realtime te manipuleren (zie figuur 1). Het prototype zal voornamelijk werken met videostreams die bijvoorbeeld vanuit een camera of een harde schijf worden ingeladen. Vervolgens geeft Visual Violence de gebruiker de mogelijkheid om de ingeladen videostreams te bewerken. Als laatste stap worden de bewerkte videostreams doorgestuurd naar één of meerdere outputs.
Figuur 1: een schematische voorstelling van het Visual Violence systeem.
De doorvoer van mediastreams in Visual Violence gebeurt realtime. Wanneer iemand voor een camera staat, gaat de videostream realtime door Visual Violence heen en is gelijktijdig bewerkt te zien op bijvoorbeeld een tv.
Visual Violence framework Visual Violence is een non-dedicated modulair systeem. Het kan voor meerdere doelen worden ingezet en extra functionaliteit kan makkelijk aan het systeem worden toegevoegd. Deze overkoepelende functionaliteit wordt verzorgd door het framework. Het framework maakt het mogelijk om drie typen modulen in te laden (zie figuur 2): 1. input 2. bewerking 3. output
Input
Bewerking Bewerking
Bewerking Bewerking
Bewerking Bewerking
Output
Figuur 2: het framework waarin de drie type modulen gekozen kunnen worden.
Het framework bevat zelf geen input-, bewerkings- en outputfunctionaliteiten. Deze worden aangeboden door modulen die speciaal voor het systeem geschreven zijn. Het is mogelijk om meerdere modulen aan elkaar te schakelen, waardoor diverse combinaties kunnen worden gecreëerd.
10
Visual Violence
Realtime Interactive Multimedia Processing
Modulen Modulen zijn de bouwstenen van Visual Violence. Hiermee kunnen diverse functionaliteiten aan elkaar gekoppeld worden. Het werken met modulen heeft als voordeel dat extra functionaliteit op een later tijdstip apart ontwikkeld kan worden. Het framework zorgt voor het herkennen en inladen van de verschillende input-, bewerkings- en outputmodulen.
Scissors-module
Eén van de eisen van de opdracht is dat Visual Violence een videostream naar meerdere outputs kan sturen. Hiervoor hebben wij de scissors-module bedacht. Deze output-module maakt van één videostream meerdere streams. Dat kan een één op één kopie zijn, maar een interessanter effect is het opknippen en uitrekken van de videostream zodat elke output een deel van het origineel is (zie figuur 3).
Geluidsintensiteit-module
De tweede stageopdracht is het ontwikkelen van een geluidsintensiteit-module. Deze module maakt het mogelijk om door middel van het analyseren van audio, video te bewerken. Een goed voorbeeld van een toepassing die met deze module gerealiseerd kan worden is de visualisatie van muziek door middel van een VU-meter. De geluidsintensiteit-module analyseert het volume van de muziek en vertaalt dit naar de stand van de VU-meter (zie figuur 3). Figuur 3: de geluidsintensiteit-module gecombineerd met de scissors module in visual Violence. De outputs worden gebruikt door vier tv’s.
4 Aanpak Om de afstudeeropdracht in de vastgestelde periode (van 26 januari tot 17 juni) naar behoren te kunnen realiseren hebben wij een plan van aanpak geschreven. Dit hoofdstuk is een verkorte versie daarvan. Voor het gehele document verwijzen wij naar bijlage 3.
Projectfasering en activiteiten De afstudeeropdracht is opgedeeld in een aantal fasen:
Opstartfase
In deze fase staat het inrichten van de kantoorruimte centraal. Aangezien deze voorheen alleen als opslagruimte gebruikt werd moet deze omgebouwd worden tot een functioneel kantoor.
Conceptfase
In deze fase wordt de opdracht onderzocht. Door de opdracht goed te analyseren zal er een duidelijk concept kunnen worden gevormd.
11
Visual Violence
Realtime Interactive Multimedia Processing
De opdracht kan in twee deelconcepten worden verdeeld: • •
Visual Violence concept Geluidsintensiteit-module concept
Aanpakfase
In deze fase wordt het plan van aanpak geschreven. Alle activiteiten worden vastgesteld en verwerkt in een planning.
Onderzoeksfase
In deze fase zal er onderzoek worden verricht naar de diverse mogelijkheden die de markt biedt om de opdracht te verwezenlijken. Er zullen twee belangrijke onderzoeken worden gedaan: •
Software verdiepingsonderzoek: Om het Visual Violence systeem optimaal te kunnen ontwikkelen zal er gekozen moeten worden tussen een aantal programmeeromgevingen. De conclusie uit dit onderzoek bepaalt welke programmeeromgeving wij zullen gaan gebruiken.
•
Hardware verdiepingsonderzoek: Omdat het Visual Violence systeem grote hoeveelheden data realtime moet kunnen verwerken is het belangrijk dat de beschikbare hardware optimaal geconfigureerd is. De 13 conclusie van dit onderzoek zal duidelijkheid scheppen over hardware-bottlenecks en als aanbeveling kunnen dienen voor toekomstige hardware-aankopen.
Ontwerpfase
In deze fase zal het Visual Violence systeem worden ontworpen. Het ontwerp zal afhangen van de conclusies afkomstig uit de soft- en hardware onderzoeken. In deze fase zullen de volgende ontwerpen worden gemaakt: • • •
Functioneel ontwerp: Hierin worden alle functies van Visual Violence bepaald. Technisch ontwerp: Hierin worden alle functies van Visual Violence technisch uitgewerkt. Grafisch ontwerp: Hierin worden alle gebruiksfuncties visueel vormgegeven.
Ontwikkelfase
In deze fase zal het prototype worden ontwikkeld. Deze ontwikkeling zal bestaan uit de volgende deelfasen: • •
Framework ontwikkeling Modulen ontwikkeling
Testfase
In deze fase zal het ontwikkelde prototype worden getest. Aan de hand van meerdere testen zal er een algemeen testrapport worden geschreven. In deze fase worden ook de conclusies en aanbevelingen geformuleerd.
Afrondfase
In deze fase zal de afstudeeropdracht worden afgerond. Alle tussen- en eindproducten zullen worden opgeleverd en er zal een presentatie worden gemaakt. 13
Bottleneck: het gedeelte van een route met een draagcapaciteit die veel lager is dan andere gedeelten van dezelfde route.
12
Visual Violence
Realtime Interactive Multimedia Processing
Planning Om ervoor te zorgen dat alle taken binnen de afstudeerperiode gedaan kunnen worden, is er een planning gemaakt. In figuur 4 worden de hierboven beschreven fasen in de tijd uiteengezet. fase / week Opstartfase Concept/aanpakfase Onderzoeksfase Ontwerpfase Ontwikkelfase Testfase Afrondfase
1 2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20
Figuur 4 - Versimpelde versie van de initiële planning (februari 2004).
Achteraf bleek dat de planning van het Visual Violence project niet geheel kon worden gevolgd. De werkelijke planning is terug te vinden in bijlage 4. Tijdens de evaluatie in hoofdstuk 9 zal de planning en de voortgang van de afstudeeropdracht uitvoerig worden behandeld.
Kwaliteitsbewaking Om de kwaliteit van de afstudeerstage en de tussen- en eindproducten te bewaken zal gedurende de afstudeerperiode tweewekelijks overleg plaatsvinden met de bedrijfsbegeleider voor eventuele feedback en bijsturing. Aanwijzingen en opmerkingen zullen worden verwerkt. Ook zal er regelmatig overleg plaatsvinden met de afstudeerbegeleider. De kwaliteit van de tussen- en eindproducten wordt op verschillende manieren gewaarborgd.
Onderzoeksrapporten
Deze worden tijdens en na het schrijven voorzien van commentaar door zowel projectleden als bedrijfsbegeleider.
Functioneel en technisch ontwerp
Deze worden tijdens en na het schrijven voorzien van commentaar door zowel projectleden als bedrijfsbegeleider.
Prototype
Tijdens het ontwikkelen van het prototype zal er regelmatig overleg en terugkoppeling plaatsvinden met de afstudeerbegeleider, bedrijfsbegeleider en projectleden. Ook zal het prototype uitvoerig getest worden tijdens de optredens van Egoplastiek. De testresultaten worden verwerkt in een rapport dat terug te vinden is in hoofdstuk 8.
Scriptie
Tijdens het schrijven van de scriptie zal er extra overleg plaatsvinden met de afstudeerbegeleider, bedrijfsbegeleider en projectleden.
Afstudeervoordracht
Voor de voorbereidingen van de eindpresentatie hebben wij ongeveer 11 dagen ingepland. Dit moet naar onze inschatting ruim voldoende zijn om de resultaten, die geboekt zijn, te verwerken in een korte doch krachtige presentatie.
13
Visual Violence
Realtime Interactive Multimedia Processing
Risicoanalyse Interne risico’s
De volgende interne risico’s kunnen mogelijk gelden voor de afstudeeropdracht: •
Onvoldoende ervaring met het opzetten en uitvoeren van onderzoek Aangezien wij weinig ervaring hebben met het opzetten en uitvoeren van een degelijk onderzoek, bestaat de kans dat er een verkeerde conclusie getrokken wordt. Dit zou voor onnodige complicaties kunnen zorgen. Om dit risico te ondervangen raadplegen wij literatuur over dit onderwerp.
•
Onvoldoende aanwezige programmeerkennis Een mediatechnoloog wordt niet opgeleid tot programmeur. Het is dus aan ons om een geschikte programmeertaal te vinden die aan onze wensen voldoet en tevens programmeertechnisch niet te complex is.
•
Te lange doorlooptijd De mogelijkheid bestaat dat door omstandigheden niet kan worden vastgehouden aan de initiële planning. De opdracht kan te lang duren waardoor de deadline van scriptie in gevaar komt.
Externe risico’s
De volgende externe risico’s kunnen mogelijk gelden voor de afstudeeropdracht: •
Slechte performance van de hardware Omdat Egoplastiek een beperkt budget heeft en wij momenteel moeten werken met de hardware die voorhanden is, kan het zijn dat het Visual Violence prototype te traag werkt om de volle potentie te kunnen aantonen.
•
Geen live testmogelijkheden Egoplastiek is momenteel afhankelijk van externe opdrachtgevers. Het is mogelijk dat er zich geen geschikte avond voordoet in de periode van 1 tot en met 24 mei waar Egoplastiek een optreden kan verzorgen. In dat geval kan het prototype niet optimaal getest worden. Om er voor te zorgen dat er toch aanbevelingen kunnen worden gedaan, zullen we het prototype dan zonder publiek aan een test onderwerpen.
Projectgrenzen Een aantal projectgrenzen zijn vastgelegd om te voorkomen dat wij ons te veel bezighouden met bijzaken. Met het vastleggen van deze projectgrenzen wordt enigszins voorkomen dat de afstudeeropdracht niet binnen de gestelde tijd uitgevoerd kan worden. Grensactiviteiten worden uitgevoerd indien de basisfunctionaliteit van het framework en de geluidsintensiteit-module voortijdig af zijn: • • • •
diverse, nader te specificeren modulen als (technisch concept) uitwerken. alternatieve input/controllers (joystick/stuur) implementeren. browser voor filmlibrary ontwikkelen (Video versie van de ID3-Tag). bedrijfsactiviteiten uitvoeren: huisstijl ontwikkelen, promotiemateriaal maken, website concept schrijven etc.
14
Visual Violence
Realtime Interactive Multimedia Processing
Beschikbaarheid Aangezien de projectleden naast de stage ook werkzaam zijn binnen Egoplastiek lopen sommige activiteiten door elkaar heen. Om ervoor te zorgen dat er genoeg uren aan de afstudeerstage gewerkt wordt, is vastgesteld dat per week de projectleden gemiddeld 40 uur met de stage en 10 uur met bedrijfswerkzaamheden bezig zijn.
15
Visual Violence
Realtime Interactive Multimedia Processing
5 Onderzoek Aan het begin van onze afstudeerperiode was er binnen Egoplastiek weinig kennis over computer soft- en hardware die speciaal voor audio- en videodoeleinden gemaakt zijn. Om Visual Violence naar behoren te kunnen ontwikkelen is het belangrijk dat de soft- en hardware goed op elkaar zijn afgestemd en voldoen aan de eisen die Egoplastiek aan het Visual Violence systeem stelt. Egoplastiek heeft ons de mogelijkheid gegeven om soft- en hardware aan te schaffen waarmee het Visual Violence systeem ontwikkeld kan worden. Dit budget was echter zeer beperkt en de vraag was dan ook of het Visual Violence prototype gebruikt kan worden in combinatie met de bestaande hardware. Om een juist antwoord te geven op de bovenstaande vragen hebben wij twee verdiepingsonderzoeken uitgevoerd: 1. Software verdiepingsonderzoek 2. Hardware verdiepingsonderzoek Deze verdiepingsonderzoeken worden hieronder kort uiteengezet. De volledige documenten zijn te vinden in bijlagen 5 en 6.
Software verdiepingsonderzoek Probleemstelling
De keuze voor een geschikte programmeeromgeving om het Visual Violence prototype mee te ontwikkelen leidt tot een aantal problemen: • • •
Wij hebben onvoldoende programmeerkennis om het Visual Violence systeem met een 14 low-level programmeertaal als bijvoorbeeld C++ te maken. 15 High-level programmeertalen als Java zijn te langzaam om realtime datastream bewerkingen te doen. Aangezien wij een beperkte tijd hebben is het van belang dat het Visual Violence systeem relatief snel te ontwikkelen is.
Deze problemen in acht nemend hebben wij samen met Egoplastiek besloten om het Visual 16 Violence systeem te ontwikkelen met behulp van een object georiënteerde grafische programmeeromgeving. Grafisch programmeren vindt plaats binnen een daarvoor bestemde omgeving waarin het mogelijk is om ‘patches’ te maken. Binnen deze patches kunnen op een blokschema-achtige manier componenten aan elkaar gekoppeld worden om een bepaald systeem te bouwen (zie figuur 5). In bijlage 7 is meer informatie over grafisch programmeren te vinden.
14
Low-level programmeertaal: een programmeertaal die dicht bij de hardware staat; dat wil zeggen dat de hardware tot in hogere mate aangesproken kan worden dan bij een hoge programmeertaal. 15 High-level programmeertaal: een programmeertaal die niet zo dicht bij de hardware staat als low-level programmeertalen. Is meestal gemakkelijker te programmeren, maar wordt minder snel uitgevoerd of heeft andere limitaties. 16 Object georiënteerd: werkend volgens de zienswijze dat software opgebouwd is uit componenten (objecten).
16
Visual Violence
Realtime Interactive Multimedia Processing
Er zijn een aantal grafische programmeeromgevingen op de markt die speciaal geoptimaliseerd zijn voor realtime datastream bewerkingen. Deze zijn breed inzetbaar en kunnen eventueel 17 18 uitgebreid worden door middel van scripting of een SDK . De keuze voor een bepaalde programmeeromgeving zal door middel van dit verdiepingsonderzoek worden verantwoord.
Figuur 5: voorbeeld van een patch: grafisch programmeren.
Onderzoeksvraag
Wat is de meest geschikte grafische programmeeromgeving voor het Visual Violence systeem?
Aanpak
Na een inventarisatie-onderzoek hebben wij de volgende kandidaat-programmeeromgevingen geselecteerd: •
Max-MSP-Jitter (Cycling ’74) is een grafische programmeeromgeving waarmee je realtime ‘digital signal processing’ applicaties kunt maken. Max/MSP is voornamelijk bedoeld voor audiobewerking. Jitter is een uitbreiding op Max/MSP speciaal geschreven voor realtime matrix/video bewerkingen.
•
Pure Data (Miller S. Puckette) is een vereenvoudigd open-source alternatief voor Max/MSP. In essentie is Pure Data alleen voor audio bewerkingen te gebruiken maar in combinatie met GEM of Framestein is het mogelijk realtime videobewerkingen te realiseren.
•
VVVV (Meso) is een toolkit voor realtime videosynthese, waarmee fysieke ‘devices’ met elkaar verbonden kunnen worden waarmee interactieve toepassingen en systemen gemaakt
17
Scripting: het door middel van een programmeertaal aanpassen en automatiseren van bestaande routines. 18 SDK: Software Development Kit: een verzameling hulpmiddelen waarmee een programmeur toepassingen kan ontwikkelen voor een bestaand softwarepakket.
17
Visual Violence
Realtime Interactive Multimedia Processing
kunnen worden. •
Isadora (Troikatronix) is net als VVVV een grafische programmeeromgeving speciaal voor realtime video bewerkingen.
•
Image/ine (Tom Demeyer) is een eenvoudige realtime video programmeeromgeving.
Deze keuze voor de meest geschikte programmeeromgeving hebben wij kunnen onderbouwen door de kandidaat-programmeeromgevingen te toetsen in de volgende deelgebieden: • • • • • • • •
Functionaliteit Performance Gebruiksvriendelijkheid Compatibiliteit Uitbreidingsmogelijkheden Platform Ondersteuning Kosten
Resultaten
Voor het Visual Violence systeem is het van groot belang dat het op alle deelgebieden zo goed mogelijk scoort. Toch zijn sommige deelgebieden belangrijker dan anderen. Daarom is er een weegfactor gecreëerd zodat er een goede eindwaardering gegeven kan worden. De onderstaande tabel (figuur 6) geeft een waardering over alle getoetste onderdelen met de weegfactor en een eindwaardering weer.
Conclusie
Weegfactor
Functionaliteit
9
++
+
Performance
*
+
Gebruiksvriendelijkheid
7
Compatibiliteit
Isadora
Image/ine
++
+
±
n.v.t.
++
-
n.v.t.
+
-
±
++
-
8
++
+
+
-
±
Uitbreidingsmogelijkheden
7
++
++
-
+
-
Platform
5
+
++
±
±
-
Ondersteuning
6
++
±
+
±
-
Kosten
4
--
++
±
±
++
+ / ++
±
±/+
±
-/±
Eindwaardering
Max
PD
VVVV
* afrondingsfactor -- zeer slecht
- slecht
± redelijk
+ goed
++ zeer goed
Figuur 6: resultaten van het software verdiepingsonderzoek.
18
Visual Violence
Realtime Interactive Multimedia Processing
Conclusie
Max-MSP-Jitter is ondanks de relatief hoge kosten de beste programmeeromgeving voor Visual Violence.
Hardware verdiepingsonderzoek Dit verdiepingsonderzoek is na het software verdiepingsonderzoek uitgevoerd aangezien de keuze voor een bepaalde programmeeromgeving bepaalt welke hardware-configuratie het beste gebruikt kan worden. Hieronder volgt een verkorte versie van dit verdiepingsonderzoek. Het gehele document is te vinden in bijlage 6.
Probleemstelling
Egoplastiek heeft op dit moment geen budget om nieuwe computers aan te schaffen. Het is dus van belang dat het Visual Violence prototype naar behoren presteert op de bestaande hardware. Aangezien Max-MSP-Jitter verkrijgbaar is voor Windows en Mac OS X en Egoplastiek beschikt over beide systemen (zie figuur 7), moet er tussen deze twee een keuze worden gemaakt. Systeem
PC met Intel-architectuur
Apple Macintosh G4
Processor OS System bus 19 AGP 20 PCI RAM Harddisk Videokaart
Intel 2.8 Ghz Windows XP 400 MHZ Eén 8x-AGP slot Vier PCI sloten 1 GB DDR 200 GB 7200 rpm ATI Radeon 64MB DDR AGP
Dual G4 867 Mhz Mac OSX 10.3.3 (Panther) 233 MHZ Eén 4x-AGP slot Vijf PCI sloten 1 GB DDR 400 GB 7200 rpm ATI Radeon 64MB AGP
Figuur 7: de computersystemen van Egoplastiek.
Om met het Visual Violence prototype meerdere video-outputs te creëren is het noodzakelijk dat er minimaal één extra videokaart wordt aangeschaft. Aangezien Egoplastiek een beperkt budget heeft is het belangrijk dat deze aanschaf wordt meegenomen in de afweging tussen bovenstaande computersystemen.
Onderzoeksvraag
Wat is de beste prijs/kwaliteit verhouding qua hardwareconfiguratie voor het visual violence systeem uitgaande van de bestaande Egoplastiek hardware en de aanschaf van nieuwe videokaarten?
Aanpak
De performanceverschillen tussen de beide systemen zullen door middel van een benchmarktest in kaart worden gebracht. Verder zal er gekeken worden naar de prijzen van videokaarten voor deze systemen. Er zijn drie eisen voor de videokaarten: 1. Het moeten PCI videokaarten zijn. 2. Ze moeten zo goedkoop mogelijk zijn. 19
AGP (Accelerated Graphics Port): een kanaal met een hoge bandbreedte waarmee een videokaart op de computer kan worden aangesloten. Dit kanaal is vooral bedoeld om het visualiseren van 3D-beelden, waar veel bandbreedte voor nodig is, te ondersteunen. 20 PCI (Peripheral Component Interconnect): een computerbus waarmee hardware op de computer kunnen worden aangesloten.
19
Visual Violence
Realtime Interactive Multimedia Processing
3. Ze moeten een tv-out aansluiting hebben.
Resultaten
Uit de benchmarktest van het software verdiepingsonderzoek (zie figuur 8) blijkt dat de Windows PC voor deze toepassing gemiddeld acht frames per seconde sneller is dan de Apple Macintosh. Onderdelen
Max/MSP – Jitter (Mac)
Max/MSP – Jitter (PC)
min
max
gem
min
Max
gem
4 x cinepak 4 x DV
29 6,7
36 7,2
33 6,9
40 14,1
42 14,2
41 14,2
Gemiddelde
17,85
21,6
19,95
27,5
28,1
27,6
Figuur 8 - resultaten benchmarktest Uit het door ons uitgevoerde marktonderzoek blijkt dat videokaarten die voldoen aan de gestelde eisen voor beide systemen veel in prijs verschillen. Op het moment van schrijven (februari 2004) ligt de prijs van de door ons gekozen videokaart (gebaseerd op de Radeon 7000-chipset) rond de 40 euro. Voor de Apple Macintosh ligt de prijs van dezelfde kaart (van een andere fabrikant) rond de 140 euro.
Conclusie
De Windows PC is voor het Visual Violence prototype het beste systeem.
20
Visual Violence
Realtime Interactive Multimedia Processing
6 Ontwerp Gedurende de ontwerpfase wordt het ontwerp van het framework en enkele modulen vastgelegd. Aangezien wij weinig ervaring hebben met Max-MSP-Jitter zal dit ontwerp tijdens de ontwikkelfase hoogstwaarschijnlijk worden aangepast. Deze aanpassingen zullen vooral duidelijk worden wanneer er meer kennis opgedaan wordt over de mogelijkheden van de programmeeromgeving en de programmeertechnische eigenschappen die framework en module moeten hebben. In dit hoofdstuk worden achtereenvolgens behandeld: • • •
Functioneel ontwerp Grafisch ontwerp Technisch ontwerp
Functioneel ontwerp In het functioneel ontwerp worden alle basisfuncties van het Visual Violence prototype beschreven.
Framework
Het Visual Violence framework dient als kapstok voor diverse modulen. Het framework zorgt voornamelijk voor het inladen van en de communicatie tussen modulen. Er zijn drie plekken waar modulen kunnen worden ingeladen: 1. input 2. bewerking 3. output
Input
Het inputgedeelte zorgt voor het verkrijgen van een mediastream. Het type stream dat wordt verkregen is afhankelijk van de ingeladen inputmodule. In het prototype zullen dit voornamelijk video- en audiostreams zijn. Input kan verkregen worden uit diverse bronnen. Dit kan een bestand op de hardeschijf zijn, een live-stream uit een camera, audio uit een geluidskaart, een stream vanuit een netwerk et cetera.
Figuur 9 - Diverse ingangssignalen krijgen een eigen kanaal.
Iedere input krijgt een eigen kanaal toegewezen zodat deze door de rest van het systeem gebruikt kan worden (zie figuur 9).
21
Visual Violence
Realtime Interactive Multimedia Processing
Bewerking
In het bewerkingsgedeelte wordt een stream gekoppeld aan een bewerkingsmodule. De gebruiker laadt een bewerkingsmodule in een bepaald kanaal. De stream wordt door de module bewerkt en vervolgens verstuurd naar de volgende module in hetzelfde kanaal (zie figuur 10). Het is ook mogelijk om modulen te combineren door ze achter elkaar in een kanaal te laden (zie figuur 11).
Figuur 10 – Een module kan worden ingeladen in een kanaal.
Figuur 11 - Door modulen te stapelen, is het combineren ervan mogelijk.
Figuur 12 - De kanalen worden doorverbonden naar de hardware uitgangen.
Output
In het outputgedeelte worden mediastreams verstuurd naar een hardwarematige output. Er kan gekozen worden welk kanaal naar welke uitgang wordt gestuurd (zie figuur 12). De hardwarematige output wordt aangeboden door de outputmodule en kan bijvoorbeeld een videokaart, Firewire-uitgang of netwerkaansluiting zijn.
Modulen
Functionele uitbreidingen worden gerealiseerd door middel van modulen. In dit ontwerp zullen de volgende modulen aan bod komen: • • • • •
Bestand-module Cam-module Geluidsintensiteit-module Scissors-module Videokaart-module
De kracht van Visual Violence is dat er altijd nieuwe modulen, eventueel op een later tijdstip, ontwikkeld kunnen worden.
Bestand-module
Deze module zorgt voor het inladen van een bestand. De gebruiker kan een bestand via een venster kiezen. Verder kunnen onder andere de volgende instellingen gekozen worden: • • • •
Afspeelsnelheid Vooruit spelen Achteruitspelen 21 22 Loop of bounce modus
Cam-module
Deze module zorgt voor het inladen van een livestream. Deze stream kan bijvoorbeeld uit een DV camera of een webcam komen. Verder kan de kwaliteit van de stream worden ingesteld.
21 22
Loop modus: Een videobestand eindeloos herhalen. Bounce modus: Een videobestand telkens aan het eind andersom afspelen.
22
Geluidsintensiteit-module
Deze module maakt gebruik van het audio- en videokanaal. Door middel van het analyseren van de audio kan deze module een overeenkomstig videoframe afspelen. Het videoframe dat bij een bepaalde mate van geluidsintensiteit hoort kan worden ingesteld. Verder is het mogelijk om een frequentiedomein te kiezen. Met deze module is het mogelijk om een VUmeter te simuleren. Door een videobestand te koppelen aan de audio zal de bewerkte videostream een visualisatie zijn van de geluidsintensiteit (zie figuur 13).
Figuur 13 - Twee videostromen en een audiostroom worden gecombineerd tot een uitgaand videosignaal.
Scissors-module
Door middel van deze module is het mogelijk om een videostream uit te rekken en op te splitsen over diverse uitgaande videokanalen. Met deze module is mogelijk een videowall te realiseren. Er moet ingesteld worden hoeveel uitgaande signalen er zijn en wat de opstelling de outputs is. De module berekent dan hoe het ingaande signaal uitgerekt moet worden (zie figuur 14). Figuur 14 - Twee manieren om de scissors-module toe te passen. Boven: het beeld over de x- en y-as uitrekken. Beneden: het beeld slechts over de y-as uitrekken.
Combinatie:
Als de geluidsintensiteit- en scissors-module gecombineerd worden, is het dus mogelijk om een verticale opstelling te maken waarop een uitgerekte geluidintensiteitsmeter getoond wordt (zie figuur 15).` Figuur 15 - De geluidsintensiteit- en scissorsmodule
Videokaart-module
Deze module zorgt voor de verzending van videostreams naar diverse videokaarten. Hierbij kan worden ingesteld welk kanaal naar welke videokaart wordt gestuurd.
Visual Violence
Realtime Interactive Multimedia Processing
Grafisch ontwerp In het technisch ontwerp worden alle basisfuncties van het Visual Violence prototype grafisch ontworpen.
Framework
Het is al eerder vermeld dat het framework zorgt voor de communicatie tussen en het kiezen van modulen. Het framework is opgedeeld kanalen met drie secties (input, bewerking en output) waar modulen kunnen worden ingeladen via dropdownmenu’s (zie figuur 16). Input Kies module Module
Bewerking instellingen
Bewerking Bewerking Kies module Module
Bewerking instellingen
Kies module Module
Bewerking instellingen
Output Kies module Module
Bewerking instellingen
Kies module Module
Bewerking instellingen
Figuur 16 - één kanaal met drie secties (input, bewerking en output)
De aaneenschakeling van één inputmodule, drie bewerkingsmodulen en één outputmodule vormt een kanaal (zie figuur 15). Omdat het mogelijk moet zijn om meerdere inputs en outputs te gebruiken zal Visual Violence meerdere kanalen bevatten.
Modulen
Het framework bepaalt de afmetingen van een module. We gaan uit van 200 bij 200 pixels. Hierbinnen moeten alle grafische elementen van een module staan (zie figuur 17). Mocht dit niet toereikend zijn dan kan er gekozen worden voor een popup venster met extra ruimte voor instellingen.
Aan / Uit Kies setup 1 breed, 4 hoog
Figuur 17: voorbeeld van de scissors-module
24
Visual Violence
Realtime Interactive Multimedia Processing
Technisch ontwerp In het technisch ontwerp worden alle basisfuncties van het Visual Violence prototype technisch ontworpen.
Receive m2a
Framework
Container
Het framework bevat drie soorten containers: input, bewerking en output. Een container zorgt voor: • • •
Inputmodule
het inladen en correct aansluiten van modulen. het ontvangen en versturen van een mediastream. het ontvangen en versturen van berichten.
Send m2
Send 2a
Input (zie figuur 18) De inputcontainer is de eerste container in een kanaal. Het primaire doel van de inputcontainer is het inladen van een inputmodule. Verder verstuurt de container de mediastream, die afkomstig is van de ingeladen module, naar de rest van het systeem (send 2a).
Figuur 18 – De samenwerking tussen inputcontainer en inputmodule
Receive 2a
Receive m2a Container
Als laatste verzorgt de container het doorgeven van inen uitgaande berichten. Ingaande berichten zijn afkomstig van andere modulen in hetzelfde kanaal (recieve m2a). Uitgaande berichten zijn afkomstig van de ingeladen inputmodule en worden verstuurd naar alle modulen in het kanaal (send m2). Zo is het bijvoorbeeld mogelijk voor een bewerkingsmodule om de eigenschappen van de mediastream op te vragen en vervolgens voor een bewerking te gebruiken.
Module
Send 2a
Figuur 19 - Een bewerkingscomponent Receive 2d
Bewerking (zie figuur 19) De bewerkingscontainer werkt bijna hetzelfde als de inputcontainer. Het enige verschil is dat de bewerkingscontainer ook een mediastream ontvangt (recieve 2a). Output (zie figuur 20) De outputcontainer werkt bijna hetzelfde als de bewerkingscontainer. Het enige verschil is dat de outputcontainer vier mediastreams (o2a, o2b, o2c en o2d) kan verzenden.
Send m2
Container
Module
Send o2a Send o2b
Send o2d Send o2c
Figuur 20 - Een outputbewerkingscomponent
25
Visual Violence
Realtime Interactive Multimedia Processing
Het vullen van het dropdown-menu met beschikbare modulen Het dropdown-menu wordt bij het opstarten van het prototype automatisch gevuld met bestandsnamen van beschikbare modulen. Deze modulen moeten in de volgende submappen staan: • • •
inputmodulen bewerkingsmodulen outputmodulen
Het inladen en aansluiten van modulen (het replace-object) Nadat de gebruiker uit een dropdown-menu een module heeft gekozen wordt het replace-object aangesproken. De variabelen die naar het replace-object worden gestuurd zijn: • • • • • • • •
de bestandsnaam van de module de rij (kanaal) van de container de kolom van de container de instantienaam van de container de instantienaam van het send-object dat de mediastroom verzendt de instantienaam van het receive-object dat de mediastroom ontvangt (wanneer dit het geval is) de instantienaam van het send-object dat berichten verzendt de instantienaam van het receive-object dat berichten ontvangt
Het replace-object verwijdert aan de hand van de ontvangen variabelen eerst de container met de ‘oude’ module en zet vervolgens een nieuwe container ervoor in de plaats neer. In deze container zit de gekozen module.
Modulen
Modulen moeten voldoen aan een aantal specificaties: • •
Het gedeelte van de module dat door de gebruiker ingesteld kan worden moet in een rechthoek van 200 bij 200 pixels in de linkerbovenhoek staan. De module moet hetzelfde aantal mediastream- en berichtaansluitingen hebben als de bijbehorende container.
Inputmodule Een inputmodule ontvangt een mediastream van een hardwarecomponent en geeft deze door aan het media-verzend-object van de bijbehorende container. Bewerkingsmodule Een bewerkingsmodule ontvangt een mediastream van het media-ontvang-object van de bijbehorende container en geeft deze, na er eventueel een bewerking op uitgevoerd te hebben, door aan het media-verzend-object van de bijbehorende container. Outputmodule Een outputmodule ontvangt een mediastream van het media-ontvang-object van de bijbehorende container en geeft deze, na er eventueel een bewerking op uitgevoerd te hebben, door aan de hardware-outputs.
26
Visual Violence
Realtime Interactive Multimedia Processing
7 Ontwikkelfase In deze fase zijn de ontwerpen uitgewerkt tot een prototype. Bij de ontwikkeling van het prototype ligt de nadruk op het demonstreren van het concept en het oplossen van de probleemstelling. De nadruk ligt dus niet op de vormgeving, maar op de achterliggende functionaliteiten. De vormgeving komt aan bod zodra het prototype alle geplande functionaliteit bevat.
Grafisch programmeren
Grafisch programmeren is nieuw voor ons. De ontwikkeling van het prototype is daarom op een aantal punten anders gelopen dan in de ontwerpfase is vastgelegd. Deze punten zullen worden besproken in hoofdstuk 9.
Stappenplan
Bij de ontwikkeling van het Visual Violence prototype hebben we het volgende stappenplan gevolgd: •
Media inladen, bewerken en versturen: De eerste stap is het ontwikkelen van een kleine demo van het prototype. Het doel is om het hele proces van media inladen, bewerken en versturen onder de knie te krijgen.
•
Ontwikkeling van het framework De tweede stap is de ontwikkeling van het framework. Dit omvat de ontwikkeling van: o o o
Containers: om modulen dynamisch in te laden is het noodzakelijk dat er containers worden ontwikkeld. Communicatie: mediastreams worden in het framework naar diverse modulen gestuurd. Tevens worden er door het framework berichten naar diverse modulen verstuurd. Grensprodukten: naast de basisfunctionaliteit van het framework zal er ook 23 aandacht worden besteed aan extra’s zoals: framework presets , performance 24 meters, MIDI control et cetera.
•
Ontwikkeling van de modulen De derde stap is het ontwikkelen van diverse modulen. In de opdracht staan twee modulen gespecificeerd maar we houden rekening met de ontwikkeling van meerdere modulen.
•
Integratie De vierde stap is de integratie van de hierbovengenoemde stappen. Het is van belang dat alle modulen naadloos aansluiten op het framework.
23
Preset: Van tevoren vastgelegde instelling. MIDI: Musical Instrument Digital Interface. Een protocol dat doorgaans gebruikt wordt bij de communicatie tussen electronische muziekinstrumenten en computers. Slechts de gegevens over een toon (zoals hoogte, volume, afbuiging) worden als bericht verstuurd. 24
27
Visual Violence
Realtime Interactive Multimedia Processing
Ontwikkelde modulen Hieronder volgt een lijst van alle modulen die wij voor het Visual Violence prototype hebben ontwikkeld. Meer informatie over de ontwikkelde modulen is te vinden in bijlage 10.
Input-modulen •
•
Bestands-module: Deze module kan een videobestand van de hardeschijf inladen Cam-module: Deze modlue kan een videostream uit een camera of webcam importeren.
Bewerkings-modulen •
• • • • • • •
Geluidintensiteits-module: Deze module kan door het analyseren van de audio een overeenkomstig videoframe afspelen. Camshake-module: Deze module kan door het analyseren van audio een videostream automatisch vervormen. Chromakey-module: Deze module kan twee videostreams mixen door middel van transparantie van een gekozen kleur. Crossfade-module: Deze module kan twee videostreams mixen door middel van transparantie. Distort-module: Deze module kan een videostream vervormen. Hue-module: Deze module kan een de kleuren van een videostream veranderen. Rotate-module: Deze module kan een videostream roteren. Scissors-module: Deze module kan een videostream opknippen, oprekken en vervolgens doorsturen naar een aparte output.
Output-module •
Videokaart-module: Deze module kan de aanwezige videokaarten koppelen aan de aanwezige videostreams (kanalen).
Op de volgende bladzijde is in figuur 21 een screenshot van het prototype te vinden. Daaronder is een foto te zien van Visual Violence in aktie in Tivoli Oudergracht op 8 mei 2004.
28
Visual Violence
Realtime Interactive Multimedia Processing
Figuur 21 - een screenshot van het Visual Violence prototype
Figuur 22 – Visual Violence in aktie in Tivoli Oudergracht op 8 mei 2004
29
Visual Violence
Realtime Interactive Multimedia Processing
8 Testfase Visual Violence is tijdens twee optredens van Egoplastiek ingezet en uitvoerig getest. De eerste test was op 8 mei 2004 in Tivoli Oudegracht (zie bijlage 8). De tweede was 15 mei 2004 in Tivoli de Helling (zie bijlage 9). Deze tests zijn zeer waardevol geweest om een goede indruk te krijgen van de manier waarop Visual Violence tijdens een live optreden van ongeveer vijf uur functioneert. Om een goed testoordeel te verkrijgen Visual Violence twee keer getest. Op 8 mei door Jeroen de Jong en 15 mei door Felix van Geuns. Deze twee testrapporten samenvoegend komen we tot de volgende conclusies:
Conclusie We hebben Visual Violence uitvoerig (meer dan tien uur) kunnen testen. Beide tests zijn erg positief uitgevallen. Door geluid aan beeld te koppelen ontstaat er een effect dat gevoelsmatig klopt en interessant is om naar te kijken. Verder neemt Visual Violence voor de VJ veel werk uit handen. Het prototype werkt nog niet optimaal, maar we hebben een goed beeld van de huidige plus- en minpunten. Pluspunten • Het optreden was meer divers dan voorheen. • Visual Violence werkte over het algemeen naar behoren. De framefrate is bij ‘normaal’ gebruik gemiddeld 15 frames per seconde. • De beelden liepen over het algemeen synchroon met de audio. • Het verdelen van één beeld over meerdere tv’s was goed te zien. • Het publiek en de medewerkers van de Tivoli hebben gemerkt dat wij een ander systeem hebben Minputen • De runtime environment Max-MSP-Jitter loopt soms vast. • Visual Violence heeft nog een aantal bugs waardoor de werking niet optimaal is. • Visual Violence is qua usability nog lang niet volwassen. • De audioverwerking en het koppelen met video heeft soms een zichtbare vertraging.
30
Visual Violence
Realtime Interactive Multimedia Processing
Aanbevelingen Na de succesvolle afronding van het Visual Violence prototype hebben we een aantal aanbevelingen voor Egoplastiek opgesteld.
Bediening:
Visual Violence is een systeem waarbij veel variabelen kunnen worden ingesteld. Het instellen is een tijdrovende klus aangezien het prototype momenteel voor 99% bediend wordt door de muis. Deze bediening kan en moet intuïtiever. Momenteel bevat het prototype enige functionaliteit die het mogelijk maakt om met een MIDI25 klavier de functie van de muis over te nemen. Door bijvoorbeeld het spelen van de 26 vlooienmars worden er MIDI signalen aan Visual Violence doorgegeven waaraan diverse acties gekoppeld kunnen worden. Deze manier van bediening werkt een stuk intuïtiever dan een muis. Andere mogelijkheden zoals sensoren, joysticks en data gloves kunnen ook een goed bedieningsalternatief zijn. Een andere waardevolle aanvulling is een bediening met presets. Eén druk op de knop is dan voldoende om een bepaald effect te creëren. Deze presets kunnen voor het hele systeem gelden of alleen voor de instellingen van een bepaalde module. Visual Violence heeft de potentie een slim systeem te zijn. Het zou daarom erg waardevol zijn als er een stuk kunstmatige intelligentie ingebouwd wordt, zodat het zichzelf bestuurt en nieuwe instellingen kan leren. Een goed voorbeeld hiervan is het instellen van de geluidsintensiteitmodule. Dit gebeurt momenteel door het handmatig instellen van meerdere variabelen, wat een lastige en tijdrovende klus is. Deze taak zou beter aan het systeem overgelaten kunnen worden.
Performance
De hardware waar Visual Violence momenteel mee werkt is beperkt. Meerdere gelijktijdige 27 bewerkingen uitvoeren kan resulteren in een lage framerate waardoor het beeld er schokkerig uitziet. Ook laat het gebruik van realtime datastreams (uit bijvoorbeeld een videocamera) te wensen over. Wij bevelen ten opzichte van de performance het volgende aan: •
Het programmeertechnisch efficiënter maken van Visual Violence. Tijdens de ontwikkeling van Visual Violence is gebleken dat bepaalde functionaliteiten op meerdere manieren kunnnen worden geprogrammeerd. Deze manieren verschillen in performance. Het is dus aan te raden om te onderzoeken welke manieren de beste performance leveren en deze vervolgens toe te passen in het systeem.
•
Het samenstellen van een betere hardwareconfiguratie. Door bijvoorbeeld een DV-decompressiekaart aan te schaffen is het mogelijk om de CPU werk uit handen te nemen. Dit komt doordat de decompressie van een videostream uit een DV-camera uitbesteed wordt aan dedicated hardware.
25
MIDI-klavier: een muziektoetsenbord, dat in staat is om MIDI-signalen te versturen en/of te ontvangen. De vlooienmars: een combinatie van toetsaanslagen die uitgevoerd op een piano een welbekend en irritant deuntje ten gehore brengt. 27 Framerate: het aantal beelden per seconde. Bij 12 beelden per seconde ervaart de mens een vloeiende beweging. De Nederlandse tv werkt met een framerate van 25 beelden per seconde. 26
31
Visual Violence
Realtime Interactive Multimedia Processing
Visual Violence 1.0
Met het Visual Violence framework kunnen veel vernieuwende ideeën gerealiseerd worden die voorheen voor Egoplastiek onmogelijk waren. Wij hebben met dit prototype aangetoond dat interactieve realtime video bewerking een krachtig principe is waarmee onder andere de sfeerbeleving tijdens een VJ show kan worden vergroot. Dat is niet de enige toepassing, het is een systeem dat kan worden aangepast voor vrijwel elk doel gerelateerd aan interactieve realtime datastream bewerking. Voorbeelden zijn bedrijfspresentaties, modeshows, interactieve stand-alone opstellingen op evenementen en kunstzinnige toepassingen. Wij raden Egoplastiek aan om het Visual Violence systeem door te ontwikkelen, omdat het een uniek systeem is dat op vele manieren kan worden gebruikt. We adviseren om het systeem opnieuw te ontwerpen met de kennis die op dit moment binnen het bedrijf bestaat. Hierdoor is het mogelijk om te zorgen dat het systeem een betere performance en uitgebreidere functionaliteit te geven dan het prototype. Een ander aandachtspunt is usability. Met behulp van de adviezen die in de testrapporten gedaan worden is het mogelijk om een nieuw grafisch ontwerp te creëren, waarmee het mogelijk is een intuïtievere en meer dynamische interface te maken.
32
Visual Violence
Realtime Interactive Multimedia Processing
9 Evaluatie Onze afstudeerstage is over het algemeen zonder complicaties verlopen. Hieronder evalueren we de door ons doorlopen fasen.
Conceptfase
Wij hebben er voor gekozen om binnen ons eigen bedrijf af te studeren. De opdracht die wij geformuleerd hebben is ontstaan uit ideeën waar we al langer mee rondliepen. Dit had als gevolg dat wij tijdens het schrijven van het eerste concept te veel hooi op onze vork hebben genomen. Omdat wij niet zeker waren van de haalbaarheid van het eerste concept, en er vanuit de opleiding nog geen stagebegeleider was toegewezen, hebben we contact opgenomen met Gibby Koldenhof. Dankzij hem hebben wij een definitief concept kunnen formuleren dat binnen de gestelde tiijd kon worden gerealiseerd. Aanpakfase Tijdens de aanpakfase hebben we het plan van aanpak geschreven. Dit verliep zonder grote problemen aangezien we de opdracht en het concept duidelijk geformuleerd hadden. Het enige struikelblok was de planning (zie figuur 23). Deze hebben we niet helemaal kunnen volgen en is dan ook tussentijds aangepast (zie figuur 24). fase / week Opstartfase Concept/aanpakfase Onderzoeksfase Ontwerpfase Ontwikkelfase Testfase Afrondfase
1 2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20
Figuur 23 - Versimpelde versie van de initiële planning (februari 2004).
fase / week Opstart Concept/aanpakfase Onderzoeksfase Ontwerpfase Ontwikkel Testfase Afrondfase
1 2
3
4
5
6
7
8 9 10 11 12 13 14 15 16 17 18 19 20
Figuur 24 - Versimpelde versie van de werkelijke planning (mei 2004).
Als we de initiële planning vergelijken met de werkelijke planning is duidelijk te zien dat de onderzoeks-, ontwerp- en ontwikkelfase anders zijn verlopen. De aanpakfase is voor een deel samengevallen met de onderzoeksfase aangezien we door onderzoek meer duidelijkheid over de aanpak kregen. Tevens heeft de onderzoeksfase langer geduurd dan gepland. Dit had als logisch gevolg dat er minder tijd was voor de ontwikkelfase.
33
Visual Violence
Realtime Interactive Multimedia Processing
Onderzoeksfase De onderzoeksfase was erg belangrijk aangezien de resultaten uit de verdiepingsonderzoeken hebben geleid tot conclusies die invloed hadden op de resterende fasen. Wij hebben daarom extra tijd besteed aan het software verdiepingsonderzoek. Dankzij deze onderzoeken hebben wij juiste keuzes kunnen maken. Ontwerpfase Aangezien wij er voor gekozen hebben om Visual Violence met een voor ons onbekende programmeeromgeving te ontwikkelen was het extra moeilijk om een uitgewerkt technisch ontwerp te maken. Ontwikkelfase De ontwikkeling van het Visual Violence prototype is zeer voorspoedig verlopen. Afgezien van het feit dat we door een planningfout minder tijd hadden voor de ontwikkeling, hebben alle in de opdracht gespecificeerde functionaliteit kunnen inbouwen. Tijdens deze fase hebben we ook besloten om te werken aan een aantal extra modulen. Testfase De testfase was crusiaal voor een gefundeerd oordeel over het Visual Violence concept. Doordat we het prototype twee keer uitvoerig hebben kunnen testen was het mogelijk om een waardevolle aanbeveling te formuleren. Samenwerking Qua samenwerking vullen we elkaar goed aan. Felix heeft tijdens de afstudeerperiode de technische supervisie op zich genomen en Jeroen de inhoudelijke supervisie. Met uitzondering van de extra ontwikkelde modulen hebben we alle taken ‘samen’ uitgevoerd. Deze manier van samenwerking heeft als nadeel dat het soms vertragend werkt. Het grote voordeel is dat de vergaarde kennis niet verdeeld is. Ook hebben we door een nauwe samenwerking extra controle over het hele proces gehad. Algemeen Tijdens deze afstudeerstage zijn het verleden, heden en de toekomst bijeen gekomen. Met het verleden bedoelen we de eerste 3,5 jaar van de opleiding Mediatechnologie. Alle kennis van de vakgebieden mediasystemen, vormgeving & interactie en software engineering hebben we tijdens deze afstudeerstage ingezet om tot een goed eindresultaat te komen. Met het heden bedoelen we het proces om vanuit ons eigen bedrijf een opdracht te formuleren en die vervolgens uit te werken zoals we in deze scriptie hebben toegelicht. Met de toekomst bedoelen we dat er dankzij de kennis die we tijdens deze afstudeerstage hebben opgedaan, een goede basis is gelegd voor toekomstige bedrijfsactiviteiten.
34
Visual Violence
Realtime Interactive Multimedia Processing
10 Termen AGP (Accelerated Graphics Port) Boemklatsch Bottleneck Bounce modus Clubcircuit DJ (Disc Jockey) Framerate Framework High-level programmeertaal
Een kanaal met een hoge bandbreedte, waarmee een videokaart op de computer kan worden aangesloten. Dit kanaal is vooral bedoeld om het visualiseren van 3D-beelden, waar veel bandbreedte voor nodig is, te ondersteunen. Een organisatie die op regelmatige basis feesten organiseert. Zie ook bijlage 2. Het gedeelte van een route met een draagcapaciteit die veel lager is dan andere gedeelten van dezelfde route. Een videobestand telkens aan het eind andersom afspelen. De branche die bestaat uit poppodia, disco’s en soortgelijke aangelegenheden. Een persoon die vooraf opgenomen muziek selecteert en afspeelt om anderen te amuseren. Het aantal beelden per seconde. Bij 12 beelden per seconde ervaart de mens een vloeiende beweging. De Nederlandse tv werkt met een framerate van 25 beelden per seconde. Een structuur, gemaakt om iets (objecten, taken, etc.) te ondersteunen. Een programmeertaal die niet zo dicht bij de hardware staat als low-level programmeertalen. Is meestal gemakkelijker te programmeren, maar wordt minder snel uitgevoerd of heeft andere limitaties.
Loop modus
Een videobestand eindeloos herhalen.
Low-level programmeertaal
Een programmeertaal die dicht bij de hardware staat; dat wil zeggen dat de hardware tot in hogere mate aangesproken kan worden dan bij een hoge programmeertaal. Een continue gegevensstroom die bestaat uit één of meerdere media. Musical Instrument Digital Interface. Een protocol dat doorgaans gebruikt wordt bij de communicatie tussen electronische muziekinstrumenten en computers. Slechts de gegevens over een toon (zoals hoogte, volume, afbuiging) worden als bericht verstuurd. Een muziektoetsenbord, dat in staat is om MIDI-signalen te versturen en/of te ontvangen. Geconstrueerd om gemakkelijk onderdelen toe te voegen of te verwijderen, om gemakkelijk componenten (modulen) te veranderen en om gemakkelijk aan te passen. Niet onworpen voor één specifieke taak. Werkend volgens de zienswijze dat software opgebouwd is uit componenten (objecten). Een computerbus waarmee hardware op de computer kunnen worden aangesloten.
Mediastream MIDI
MIDI-klavier Modulair Non-dedicated Object georiënteerd PCI (Peripheral Component Interconnect) Preset Realtime Scripting SDK (Software Development Kit)
Van tevoren vastgelegde instelling. Het verwerken van gegevens binnen de maximale voor de mens niet-waarneembare vertraging. Het door middel van een programmeertaal aanpassen en automatiseren van bestaande routines Een verzameling hulpmiddelen waarmee een programmeur toepassingen kan ontwikkelen voor een bestaand
35
Visual Violence
Visuals VJ (Video Jockey) VJ’en Vlooienmars
Realtime Interactive Multimedia Processing
softwarepakket. (video) beelden Zie VJ’en Het tijdens evenementen verzorgen van een visuele performance, meestal met behulp van videobeelden, als toevoeging op muziek. Een combinatie van toetsaanslagen die uitgevoerd op een piano een welbekend en irritant deuntje ten gehore brengt.
36
Visual Violence
Realtime Interactive Multimedia Processing
11 Literatuur •
Tijdens onze afstudeerperiode hebben de volgende informatiebronnen gebruikt.
Boeken •
Projecthandleiding Mediatechnologie V2 2000, D. Greve, W.Holst, P. Verbeek
•
Project management. R. grit 2 druk 1997 ISBN: 9001347835 Wolters Noordhoff groningen.
•
Een onderzoek voorbereiden, H. Oost & A. Markenhof ISBN 9055743763 eerste druk 2002 HB uitgevers Baarn
•
Een onderzoek uitvoeren, H. Oost ISBN 9055743739 2002 HB uitgevers Baarn
•
Computer Graphics with OpenGL. H. Baker. 3 druk 2004 ISBN 0131202383. Pearson Prentice Hall
e
e
Websites Alle onderstaande hyperlinks zijn het laatst bezocht op 25 mei 2004. •
Realtime video processing • Realtime AV http://www.fiftyfifty.org/av • 0xff -- a discussion list for real-time video http://www.music.columbia.edu/mailman/listinfo/0xff • FreeFrame Open Video Plugin System http://www.freeframe.org
•
Risc vs. Cisc • Ars Technica: Risc vs. Cisc: The post-RISC era http://arstechnica.com/cpu/4q99/risc-cisc/rvc-1.html • Ars Technica: Risc vs. Cisc: The post-RISC era (PDF-versie) http://www.cecs.csulb.edu/~rallison/pdf/RISC_vs_CISC.pdf
•
Quicktime op Mac & PC • Scott Teresi – The Philosophy of Mac OS vs. Windows http://teresi.us/html/writing/mac_vs_windows.html • Apple – Quicktime – Specifications http://www.apple.com/quicktime/products/qt/specifications.html
•
Max-MSP-jitter • Cycling ’74: Max/MSP for Mac and Windows http://www.cycling74.com/products/maxmsp.html • Cycling ’74: Jitter http://www.cycling74.com/products/jitter.html • akustische-kunst.org :: external objects for Max/MSP http://www.akustische-kunst.org/maxmsp
37
Visual Violence
• •
Realtime Interactive Multimedia Processing
Cycling ’74 Max/MSP mail archive http://www.synthesisters.com/hypermail/max-msp Yahoo! Groups : c74-wmax http://groups.yahoo.com/group/c74-wmax
•
VVVV • VVVV – A Multipurpose Toolkit http://vvvv.meso.net • vvvvorums http://vvvv.meso.net/board
•
PureData • Miller Puckette http://crca.ucsd.edu/~msp • Pure Data External Repository http://pure-data.sourceforge.net/ • IEM: Institute for Electronic Music and Acoustic Graz -- GEM http://gem.iem.at • framestein http://pinktwins.com/disk/framestein
•
Isadora • TroikaTronix http://www.troikatronix.com/isadora.html • Isadora Review – VJCentral.com http://www.vjcentral.com/software/show/7010
•
Image/ine • Image/ine http://www.image-ine.org • Image/ine Review – VJCentral.com http://www.vjcentral.com/software/show/869
•
Videokaarten • Tweakers.net - Pricewatch http://www.tweakers.net/pricewatch • Meer dan 7500 producten voor de Apple Macintosh. http://www.mailamac.nl
•
OpenSoundControl • OpenSoundControl http://www.cnmat.berkeley.edu/OpenSoundControl
•
NetSend/NetReceive • Paradiddle: Cocoa controllers for PD http://homepage.mac.com/atl/pd/paradiddle.html
•
VJ / Feest gerelateerde websites • Egoplastiek – thuis http://www.egoplastiek.nl • Boemklatsch http://www.boemklatsch.nl
38
Visual Violence
• • • • •
Realtime Interactive Multimedia Processing
EKKO http://www.ekko.nl :: Tivoli :: http://www.tivoli.nl HOTEL ARENA Amsterdam http://www.hotelarena.nl Community Site for VJs by VJs http://www.vjcentral.com
Algemeen • Van Dale Taalweb | On-linewoordenboek http://www.vandale.nl/opzoeken/woordenboek • Main Page – Wikipedia, the free encyclopedia http://www.wikipedia.org • Dictionary.com http://www.dictionary.com • Thesaurus.com http://www.thesaurus.com
39