Interaktiv musikk - Semesteroppgave - "Tabla light drum"


I min oppgave har jeg jobbet med utvikling av et digital-elektronisk instrument og en kontroller hvor jeg har jobbet med hvordan jeg kan mappe parametre på ulike måter for å fungere godt interaktivt og skape interessant lyd.


UTSTYR
PhidgetInterfaceKit
1 lyssensor
2 switcher (koblet gjennom digital input).
Max/msp - skalering og bruk av data fra sensorer

BESKRIVELSE
Kontrolleren består i utgangspunktet av et PhidgetInterfaceKit 8/8/8 hvor jeg har koblet til ulike sensorer. Hovedsensoren jeg bruker er en lys-sensor, sammen med to switcher som jeg bruker til å skru av/på ulike funksjoner som lyssensoren kontrollerer. Phidget sensorene er koblet til datamaskinen ved usb og verdiene fra parametrene blir skallert og sendt dit de skal.

KODE
Jeg har brukt PhidgetInterfaceKit og har derfor brukt Phidget sine externals. Disse er plassert i externals mappen til Max. For å få inn sensorverdiene har jeg brukt PhidgetInterfaceKit (objektet) sammen med getStatus, reconnect, start, stop. For å starte patchen å få inn verdier må du først trykke på start.


Lyssensor
Lyssensorverdiene hentes ut fra PhidgetInterfaceKit med et route object. Fra ut node nr 2 bruker jeg unpack funksjonen for å hente ut verdiene fra riktig inngang på Interface brettet. Lyssensoren er koblet til inngang 1.
Jeg har laget tre forskjellige funksjoner som kan brukes ved hjelp av lyssensoren.

1)P tabladrum
Dette er en trommelyd som kan minne om lyden fra indiske tablatrommer. Lyden lages av et noise~ objekt som ganges med et line~ objekt som er skalert med scale~ for så å ganges sammen med noise~. Etter de er summert bruker jeg filteret reson~ til å endre trommelyden. Senterfrekvensen til reson~ blir styrt/endret av lyssensor verdien. Denne verdien er imidlertid skallert til mellom 0 og 200 av funksjonen scale.


Trommelyden trigges av p delta objektet P delta er en funksjon som skal måle om lyssensoren gjør store endringer. Denne er hentet fra Pd patchen Tabladrum: blir altså trigget av store endringer i lyssensorverdiene og trigger da en trommelyd. Senterfrekvensen til filteret i trommelyden endres ut i fra hvor mye lys som treffer sensoren. Dette kan høres ut som at frekvensen til trommen endrer seg. Om du flytter hånden opp og ned rett etter du trigger lyden så får du en sånn indisk vannkrukkelyd. 1)P synthtrigg
Er en synth som du spiller på på samme måten som tabladrum. Den bruker litt andre funksjoner blant annet har jeg brukt interpolasjon for å ikke få hakkete endringer i pitchen.


Jeg tar inn lyssensorverdien gjennom en inlet. Verdiene blir skallert ved et scale objekt i verdiene 0 - 200. p voices Er en synthgenerator med to overtoner. Her bruker jeg phasor~ objektet til å generere sagtannbølger. Disse blir så interpolert via funksjonen interpolate som benytter objektet slide. Den glatter ut endringene i frekvensen sånn at det ikke blir hakkete eller små klikk i mellom. Lydbølgene formes så ved å ganges med resultatet av et function objekt som jeg tegner velocity i deretter sender signalet ned i et line~ objekt og så blir skallert.

AV/På funksjon 1 og 2 Bruk og utvikling
Det har vært spennende å utvikle tablalightdrum og det har vært en del endringer underveis. Jeg gikk fra at jeg spilte en kontinuerlig tone til å trigge et attack. Den kan brukes til å spille tromme på, men jeg ser at den har noen begrensninger. Blant annet at den ikke alltid reagerer når man drar hånden over. Den er ikke så lett å spille presist på , men fungerer bra som en effekt.
Den har forbedringspotensiale til å bli et mer spillbart instrument.
DEMO
Hvis ikke video fungerer så kan du gå til denne linken:

KILDER
Mousalizer ( Kristian Nymoen)
kazoo.maxpat i Max
Interpolasjon : http://cnmat.berkeley.edu/user/andy_schmeder/blog/2009/02/12/click_free_control_interpolation_msp_how_properly_use_slide_ramps