Semesteroppgave
Interaktiv Musikk
Bakgrunnen for semesteroppgaven min er at jeg stadig kommer over enkle sequencere på internett. De er god underholdning, men aldri spesielt anvendelige. De er ofte svært enkle, sansynligvis bevisst, og er met mer som lek for folk flest enn som seriøse musikkinstrumenter. Tanken var å prøve å lage en enkel app-basert sequencer som ville være mulig å bruke i en samspillsituasjon. Jeg skal ikke nødvendigvis lage en sequencer som får til alt, men sette meg noen mål som jeg skal prøve å gjennomføre, mer som et tankeeksperiment, og til slutt også reflektere over potensialet for videre utvikling.
Det ”produktet” jeg har endt opp med å lage er den kirketoneart-baserte sequenceren ”Cathedral”, laget for iPad i Puredata og MobMuplat. Ideen er en enkel polyfonisk sequencer med 16 slag og en oktav per slag. Jeg valgte kirketonearter som utgangspunkt mest for at det skule finnes noen rammer å jobbe innenfor og at oppgaven skal ha et mål. Dette er altså ikke en sequencer som kan gjøre alt og er perfekt i alle samspillsituasjoner, da min erfaring med programmering i Puredata og MobMublat på ingen måte er adekvat, men rett og slett en av utallige løsninger som kan gjøre at en slik sequencer har noe mer for seg en bare å leke med et gitt sett toner.
Det meste av patchen min befinner seg i diverse sub-patcher og selve hovedpatchen i seg selv er svært enkel. Den henter inn to helt enkle kontroller fra mobmuplat, den ene trigger en toggle som setter i gang telle-funksjonen, den andre er signalet fra en slider som kontrollerer tempo. Jeg begynte i utgangspunktet å jobbe på patchen i Pd-extended, men oppdaget fort at på grunn av begrensningene som ligger i Vanilla, burde jeg bare få det til med de objektene som er tilgjengelige der. /Toggle setter i gang et metro-objekt, hvis tempo kontrolleres av /Tempo. I utgangspunktet hadde jeg brukt objektet ”counter” (i extended), men for å få til samme effekt i Vanilla, brukte jeg samme telle-funksjon som vi fikk presentert i første time med Puredata da vi skulle prøve å lage en klokke-patch. Det er altså et float-objekt som sender seg selv +1 for hver runde den teller. Etter dette er det et mod-objekt som gjør at telleren snur etter 16 slag. Etter dette er det så enkelt som å bruke et sel-objekt til å sende hver av de 16 slagene til hver sin subpatch som igjen koresponderer med hver sin ”stripe” i sequenceren.
Når det gjelder sub-patchene er de i utgangspunktet identiske, med det unntaket at routingen fra sequenceren i MobMublat er noe forandret. Første stripen er routet 1a-h, neste 2a-h og så videre og til 16a-h. Utover dette er patchene identiske. Signalet kommer inn i sub-patchen og sender et bang til en message (1) som sendes til en tall-boks og også til et del-objekt som sender message 0 etter 150 millisekunder og slår av lyden igjen. Denne talboksen sendes så til volumkontrollen på alle ”stripene” i sequenceren. Disse ”stripene” er 8 identiske synther som hver korresponderer til en av de 8 tonehøydene i en ”stripe” i sequenceren.
Et annet sted i sub-patchen henter jeg inn signal fra MobMuplat. Her er alle knappene fra en stripe i sequenceren routet a-h og nummerert etter hvilken stripe (slag) jeg har jobbet med. Bildet er altså fra det første av de 16 slagene. 1a sendes da til første trinn i den aktuelle skalen og 1b til andre og så videre. Hvert trinn i skalaen (8 stykker) har altså sin egen synth-stripe. Om toggle’en i MobMuplat 1a aktiveres og dermed sender tallet 1, forteller det altså at volumet til synth 1a skal settes til 1. Om den slås av igjen og sender 0, sender det et bang til message 0 som slår av volumet igjen. På denne måten har jeg en patch som på det enkleste viset er polyfonisk da den består av 8 monofone synther som har hver sin ”dac~”. Hver av synhtene har også et lowpass-filter som styres av en slider som igjen styres av en slider (/filter) i MobMuplat. Verdiene fra slideren er så ganget med 1000 for å bli til anvendbare verdier i forhold til frekvenser. Neste vesentlige del av subpatchen er den som angir tonehøyder til synthene. Jeg har som sagt gått for å kunne bytte mellom de forskjellige kirketoneartene. Det første jeg gjorde var å sette opp alle frekvensene til alle tonene i toneartene i hver kirketoneart i en slags ”tabell” av message-bokser:
Jeg har routet /kirkeslider til et routeobjekt som router verdiene 0 til 7 til hvert sitt bang (bare 0-6 som faktisk er i bruk). Hvert av disse bang’ene går så til alle 8 message- bokser i sin toneart og angir tonehøyden for alle 8 synther. På bildet har jeg fjernet alle linjene mellom ting i patchen min, da den ser heller rotete ut med dem, men den egentlig er ganske enkel satt sammen. Når alt ersendt dit det skal ser subpatchen slik ut:
Når det gjelder det visuelle i MobMuplat har jeg valgt å gå for en simplistisk og tydelig estetikk. Jeg prøvde en del forskjellig, men kom fort frem til at ”less is more” i et såpass enkelt program som MobMuplat. ”appen” består av 2 sider, en som har selve sequenceren, og en som inneholder kontroller for filter, tempo, toneart og av/på-knapp:
På side 2 (bilde ovenfor) har jeg valgt å gå for enkle symboler for å holde meg til den minimalistiske stilen. Filteret har en liten sirkel på ene siden og ettersom man skrur inn mer diskant og lyden får en skarpere tekstur er det en ”piggete” versjon av sirkelen på andre siden. Tempokontrollen har enkle pil-aktige symboler for tempo opp/ned. Til sist har jeg brukt et kors-symbol for å vise til slideren som velger mellom kirketoneartene. Alle disse symbolene er hentet fra listen med spesialtegn som er å finne i Word/TextEdit.
Det ferdige produktet er på mange måter akkurat det jeg gikk inn for å lage, men det er på ingen måte slik at jeg mener at dette er den ultimate sequenceren. Dette var mer en ide om å se hvordan jeg taklet å legge til nye funksjoner til en klassisk sequencer, og med det som utgangspunkt kan man tenke seg en hel del funksjoner som denne sequenceren med fordel kunne hatt. For å gjøre dette til den beste sequenceren mulig kunne den for eksempel med fordel hatt muligheten til å spille i andre oktaver enn fra C til C. Det er heller ikke en tradisjonell volumkontroll. Vi har også den rytmiske begrensningen i at ”8x16”-formatet er ganske låst til 4/4. For å gjøre samspill-biten bedre ville det også være en fordel å gjøre det mulig å bruke BPM som verdi for tempoangivelse, samt muliggjøre synkronisering via midi for å kunne spille på klikk. En funksjon jeg begynte å se på men ikke fikk til i denne omgang var også en funksjon som gjør varigheten på tonene relative til tempoet man spiller av sequenceren i. Jeg tenkte i utgangspunktet å si at varighet til en hver tid var ganger 0.75 av lengen mellom slagene, men jeg fant ingen ryddig måte å få denne verdien ut til alle de forskjellige sub-patchene. Til tross for åpenbare mangler har jeg fått gjort det jeg ville gjøre, nemlig å prøve å lage en sequencer med et formål, og å leke litt rundt med hvilke muligheter som ligger i den enkle sequenceren.
Patcher