- αlfaβeta -


//A Laptop instrument or Conceptual Composition?//

- Anders Tveit 2009-

Innledning | Om | Teknisk | Patch | English 

 

     Innledning

Mitt utgangspunkt for denne semesteroppgaven som jeg har kalt αβ, er at som regel under laptopkonserter
slår det meg alltid at vi som publikum aldri vet om personen bak laptopen
egentlig likegodt kunne surfet, skrevet epost eller chattet.
Så derfor var min tanke at man rett og slett lagde lyd/musikk ut av at man chattet
med hverandre hvor den akustiske lyden av tastene er hovedlydkilden.
Selv om dette også er en av hovedtankene, så ligger det flere muligheter som går utover denne rent konseptuelle delen.

I arbeidet med denne oppgaven ønsket jeg å se først og fremst på hvordan det er
mulig å bruke en laptop i seg selv, med fokus på tastatur som input.
Samt utforske enkle skriptmuligheter i max5, hvor jeg satte meg mål om lære meg noe om javascript
og annen enkel scripting i max5.
Jeg er opptatt av at digitale instrumenter og kreative verktøy kan ha flere lag
eller muligheter som man kanskje ikke er klar over med en gang, selv som designer/komponist/utvikler.
Men som man oppdager over tid via improvisering og
av og til via uintenderte handlinger.
Jeg har ihvertfall oppdaget en rekke kreative muligheter( og mindre..)
med denne patchen, både for meg selv og i utprøvingfasen med andre.
Det er derfor jeg har gitt αβ den tvetydige undertittelen:
A Laptop Instrument or Conceptual Composition?

Anders Tveit,  UIO 2009


 

tastene

αβ baserer seg på den rent akustiske lyden fra laptopen dvs. tastaturet som hoved lydkilde
Lyden av tastene blir tatt opp gjennom mikrofonen(se senere avsnitt) og spilles tilbake direkte i flere ulike modi, når de ulike tastene blir aktivert.
Det er fire ulike avspillings modi; Loco, 8va bassa, 8va  og reversert. I tillegg til dette har hver tast en ulik filter «signatur» og enkelte taster
går igjennom en romklang, med ulike parametre.
I tillegg til de ulike tastenes lyd, er det også ord som trigger lyd hendelser eller effekter.
Disse kan brukes som evt. "licks"  hvor hastigheten på inntasting spiller inn; taster man i raskt tempo så skjer effekten/frasen raskerer og vice versa.
Her ideen også at man kan få  til å "strekke" disse "licksene" etterfulgt av raske trykk på enkelte taster, det være seg tall eller bokstaver.
Eller i kombinasjon med andre trigger/effekt ord.
Ordene kan defineres når som helst underveis, se senere avsnitt for ulike strategier.
Det er også virkningsfullt å taste inn i ulike dynamikk, og tempo for å skape variasjon.

På tastaturet er det totalt 44 taster som har aktive funksjoner  ( 29 bokstaver, 10 tall taster og 5 tegn taster)
Tastene aktiverer opptak i et 1 sekund til et buffer minne som slettes 2 sekunder etter en tast er sluppet opp.
Det er fire ulike avspillings modi = Loco ( uforandret ), 8va bassa (1 oktav ned), 8va (1 oktav opp) og Revers.
De er gruppert slik:

Loco= 10 taster (  X, Z , Æ, Ø,L, K, bckspace, 7, 6 , 5 )
8va bassa= 11 taster ( !, Space, punktum, komma, M , N , B , V , C , 0 , 9 , 8 )
8va=  10 taster ( J , H , G , F , D,  S , A , 4 , 3 , 2 )
Revers= 12 taster (  Å, P , O , I, U, Y , T, R, E, W, Q, 1 )

Filteringer:
41 taster (lavpass, høypass, båndpass, peaknotch (boost/cut) og resonant

Romklang:
13 bokstavtaster, + 10 talltaster
bestemmer klangtype/parametere.

Effekter/trigger ord:
6 definerbare trigger ord, satt default på følgende ord: 1: maxmsp 2: er 3: kulere 4: enn 5: kulest! 6: ja!
( det må jo være litt artig også..) hvor effekt 1: Variabelt wavetable/buffer avspilling effekt
2: Stutter effekt 3: slide-envelope delay, 4: granulering 5: frekvens skift og 6: Ringmodulasjon

I tillegg har backspace tast  en flanger effekt og ! (utropstegn) et filtersweep basert på foregående tast filtertype)

Alt er mappet slik på tastaturet:


Nederst rad:
Spacebar samt «.» til bokstav «C» er i 8va bassa modi med ulike lavpass filtreringer (stigende)
«X» til «Z» er i Loco med ulike høypass filtering. (stigende)

Midterste rad: 
«Æ» til «K» er i Loco modi med ulike høypass filteringer. (stigende fra «X»), «J» til «A» er 8va med
ulike båndpass filteringer (stigende)

Øverste rad: 
«Å» til  «R» er i reversert modi med peaknotch cut filteringer (stigende)
«E» til «Q» er i reversert modi med peaknotch boost filteringer (stigende)
Tall rad:
«backspace» er i Loco avpillings modi med flanger delay (ingen filtrering)
«0» til «8» er 8va bassa med peaknotch boost filteringer (fortsettende stigende fra «E»), «7» til «5» er Loco med peaknotch boost filteringer
(fortsatt stigende fra «E»)«4» til «2» er 8va med resonant filter (stigende) mens «1» er reversert med resonant filter.

I tillegg har annenhver bokstav i alfabetet klang på/av funksjon dvs: A (av) B (på) C (av) D (på) osv.
mens tallene «0» til «9»  ( i rekken 0 9 8 7 6 5 4 3 2 1) er linket til 9 presets som bestemmer ulike klang parametere.

oppsett og bruk

Mikrofoner:

Det fler strategier for oppsett man kan ta i bruk. I utgangspunktet kan man bruke den innebygde mikrofon men det kan også være mulighet for en mer direkte oppmikking
av laptopen med en direksjonell mikrofontype. Alternativt er å bruke kontaktmikrofoner.
Har testet dette både med en og to kontaktmikrofoner, posisjonert på hendholdsvis høyre og venstre side av chassiset, dette gir mindre grad av feedback problemer.
Men det er uansett i alle tilfeller viktig at høyttaler plasseres et stykke unna laptop/mikrofon pga feedback, selv om det av og til kan oppstå svært interessante effekter ut av dette også.
Det er også interessant å merke seg at selv om det er lite resonans i laptop i seg selv så var det merkbart ved bruk av kontaktmikrofoner på ulike laptop modeller, min egen macbookpro i aluminium(unibody) resonerte mindre enn en plast Dell laptop. Skal man bruke eksterne mikrofoner må dette rutes via en aux på en mikser eller output fra et lydkort til audio input på maskinen.

illustrasjonen viser en kontakt mikrofon montert på høyre side.        

Grafisk Interface og MIDI

Først åpne opp patchen Alfa-Beta.maxpat i ../AlfaBeta/Files/ dersom CNMAt biblioteket er innstallert fra før på maskinen, sørg for at filene midifile.class og midfile.java i../AlfaBeta/Files/ brukes istedet, da den er litt modifisert (byttet ut US-ASCII til UTF-8) se i source (.class fil) eller i midifilskriver.maxpat
Når patchen åpnes er det først en liten intro, deretter dukker hovedvindu opp, dette er her hvor all chat foregår, og hvor lyden skrus på og volumet forandres.
Nederst til venstre i vinduet er "på" knappen,samt volum med dB indikator (-∞ tegnet), metere og en input velger. Øverst til venstre er knappen "options", dette åpner et nytt vindu som plasseres ved siden av hovedvindu, tanken min her var å ha et eget dedikert vindu hvor en kan sette de ulike effekt ordene samt sette filbaner på opptak, info om patchen m.m. Og for å holde hovedvindu mest mulig "reint." Illustrasjonen under viser hvordan vinduene ser ut, se også video ( lengre ned på siden ) for rask gjennomgang.

           

I det hvite feltet ved siden av "Your Name" setter man sitt chat handle eller navn og trykker return(enter) hvis nettverket fungerer så vil navnet dukke opp i det grønne feltet etterfulgt av et smilefjes, dette er da indikatoren på at alt er som det skal være, ved evt. mangel nettverk så vil det ikke dukke opp noe her.

Det hvite feltet er der hvor man skriver inn og poster til chatten ved å trykke return. (enter) den returnere/fokuserer til skrivefeltet automatisk etter postet beskjed.
Alle innkommende beskjeder vil dukke opp i det grønne feltet med navn på chat deltager etterfulgt av teksten.
Chat vinduet vil scrolle automatisk etter hver innkommende beskjed og etter 58 innkommende, så vil den nullstille seg og slette teksten i innkommende feltet.
Man kan også gjøre dette manuelt ved å trykke på knappen "delete incoming messages" I options vinduet finner man ord velgere der man kan legge inn de trigger man skulle ønske, en dialog boks åpnes og en skriver inn det ordet eller setning man ønsker skal trigger de ullike effektene Jeg har bevisst ikke skrevet hvilke effekter som går til hvilke ord.nr av den grunn av jeg vil at en ikke skal binde seg for mye opp i effektene dersom man forandrer ordene men snarere
er noe man må erfare.

Under "record performance" har man muligheten til å gjøre opptak av både ens egen lyd som audio og MIDI. MIDI delen har jeg laget slik at den tar opp alle taste trykk i tid og inkluderer også meta-events i MIDI filen, slik at hvis man åpner opp MIDIfilen i f.eks Logic etter å ha trykket på "write to MIDI" knappen under record knappen så vil det en har skrevet være notert både som noter (rytmisk notert), og over notene vil tasten (bokstaven,tegn,tall) være notert. Dette avhengiger av at MIDI-editoren har Meta-Events funksjonalitet. Gratis programmet Musescore (plattform uavhengig) og Logic Pro (Mac) er to programmer jeg har testet ut dette i og det fungerer relativt fint, det trenger kun litt oppsett for å få alt til å vises forholdsvis riktig.

Eksempelet under illustrerer hvordan notebildet blir seende ut, selv om transkripsjonen blir en forenkling da det hadde vært bedre og mer riktig å bruke ulike taktarter, mer presis rytmisk notasjon som ulik inndeling, polyrytmikk, metrisk modulasjon etc. Teksten jeg skrev var følgende: Music has always inhabited the space between nature and technology intuition and artifice. It is said to be rooted in the heartbeat and the voice, but is no less bound up with the history of the machine. ( utdrag av tekst fra Audio Culture -Readings in Modern Music. kap 3 s113 .Cox, Cristoph og Warner, Daniel )   ill. viser et utdrag.

 

Midifilen kan høres her:   

Hele teksten og transkripsjonen kan lastes ned som pdf:fullscore

Hvordan jeg har implementert dette i patchen vil være mer beskrevet i teknisk del .Ideen min til å ha dette er at man kan gjenskape sin tidligere spilte del i en chat (eller solo) som en ren transkripsjon. Og at jeg da også har laget et simpelt system å komponere for,  informasjonen som trengs er simpelthen; hvilken tast, over hvilken noteverdi.

"write chat transcript" funksjonen skriver hele chatten (alle postede beskjeder) som en dokument fil. Den skriver automatisk til filnavnet αβchat.doc og lagres under ../AlfaBeta/Files
Ideen til dette er da av mer konseptuell karakter, da i en eller annen chat fremføring (chatting music!) så kan chatten skrives ut, eller den kan fungere som supplement til audio/MIDI transkripsjonen. 

Jeg har her laget en video gjennomgang av UI og basis funksjoner i αβ:

 

 

Komposisjon og utøvelse

I løpet av arbeidet med αβ har det dukket opp flere muligheter gjennom uttestings fasen som jeg i utgangpunktet ikke hadde tenkt på, og som jeg da implementerte i patchen.

Mens andre muligheter dukket mer opp gjennom tilfeldigheter og oppdagelser gjennom improvisasjon. Den opprinnelig ideen består av den lydproduserende chatten hvor man kan enten chatte mer random eller bestemme seg for et tema i chatten, hvor da enkelte ord og setninger som er gjennomgående for temaet også sørger for at bestemte lydhendelser oppstår.  En slik chat kan kanskje høres slik som vist i videoen under, chat transkriptet fra denne seansen er  her  (hvor en mindre fungerende trådløs ruter forårsaket problemer:)

 

αβChat utøvere: Jon Halvor Bjørnseth, Gyrid Kaldestad og Anders Tveit

En kan også bestemme seg for å skrive en type fortelling hvor første utøverer starter å skrive,poster ut, neste mann fortsetter osv. til siste utøver skriver slutten og stykket ender.

Andre chat muligheter er å spille et skrevet stykke, hvor notasjons formen er som beskrevet over med MIDI/Meta-events. En kan også utforske trigger/effekt ordene ved å la enkelte utøvere ha lange ord (eller setninger) mens andre har korte ord på de samme trigger/effekt ordene. Slik at man definerer en slag instrument rolle til hver utøver hvor det er vanskeligere å få til en effekt/frase, mens lettere på andre. Hvor allegorien her er på samme måte som det er lettere å spille samme frase fortere på enkelte instrumenter enn andre.

Inntastinghastigheten får dermed en semi-virtous funksjon. En annen mulighet er å bruke noe som modulasjon på mikrofon input eller over tastene som.f.eks ulike gjenstander som rører på seg ved trykking på tastene og dermed forandrer lyden, Jeg kan jo da spør litt humoristisk: kan man da snakke om preparert laptop i John Cage ånd?....

 preparert laptop?


I og med at αβ trigger opptak gjennom de ulike tastene kan man også bruke dette som et live-samplings instrument hvor lydkilden er oppmikkete intrumenter eller andre lydkilder 

Dette har jeg sjekket ut en del og en kan være svært responsiv og kreativ med dette, selv om det ligger en begrensing med det korte opptaks minne. Følgende lydeksempel er gjort med flygel og perkusjon som lydkilde i en live sammenheng. (eksempellyden demonstrerer kun lyden gjennom αβ)

      Ingvo Clauder:Flygel, Terje Evensen:slagverk/perkusjon, Anders Tveit:αβ  

 

Teknisk info

Jeg begrenser informasjonen her og henviser til dokumentasjon i selve patchen  Jeg har laget en video som viser enkelte bestandeler og oppbygging i patchen.

 


Information in English (short version)


My startingpoint for this work that I have called
αβ, is that during so called laptop concerts it strikes me
how we as an audience never know if the person behind the laptop might be surfing the Internet, writing e-mails or chatting.
So my thought was simply to make sound/ music from chatting on the computer, where the acoustic sound of the keys
 is the main source of sound.
Even if this is the main idea, there are more possibilities that go beyond this concept.

Working with this, I wanted first and foremost to look at how it is possible to use a laptop in and of itself;
focusing on the keyboard as an input. Together with exploring simple scripting possibilities in Max5,
where I had a goal to learn something about JavaScript and other simple scripting in Max5.
I am interested in and fascinated by how digital instruments and creative tools can have more facets
or possibilities that you do not notice at first, even as a developer/ creator, but that you notice over time through
improvisation and sometimes via unintended actions. Me myself have discovered several (more or less)
creative possibilities with this patch, both working on my own and when trying it out with others.
That is why I have given the ambiguous subtitle;
-A Laptop Instrument or Conceptual Composition?


αβ is based on the pure acoustic sound from the laptop, in other words the keyboard as the main source of sound.
The sound of the keys is recorded through the microphone (see later paragraph) and is played directly in
several different modes when the keys are activated.
There are four different modes for playing: Loco, 8va bassa, 8va and reversed.
Furthermore, every key has a different filter signature and some keys go through a reverb with different parameters.
In addition to the different sounds of the keys, there are also words that trigger sound events or –effects.
These can be used as licks where the speed the keys are pressed in has an effect; if you press
with high speed the effect/ phrase is quicker and vice versa. Here the idea is also that you can stretch these licks
by swiftly pressing additional keys,
be it letters or numbers, or combined with other trigger/ effect words.
The words can be defined at anytime going along (see later paragraph for different strategies).
It is also gives a nice effect to press with different dynamic and speed to create a variation.

The keys and function: (for norwegian keyboard but would work with other as well, the mapping would be slightly different)

On the keyboard there are a total of 44 keys that have active functions (29 letters, 10 number keys and 5 character keys).
The keys activate a recording of 1 second to a buffer memory that is deleted 2 seconds after a key is released.
There are four different modes for playing: Loco (unchanged), 8va bassa (1 octav down), 8va (1 octav up) and reversed.
They are grouped like this:
Loco = 10 keys (  X, Z , Æ, Ø, L, K, backspace, 7, 6 , 5 )
8va bassa = 11 keys ( !, space, full stop, comma, M , N , B , V , C , 0 , 9 , 8 )
8va =  10 keys ( J , H , G , F , D,  S , A , 4 , 3 , 2 )
Reversed = 12 keys (  Å, P , O , I, U, Y , T, R, E, W, Q, 1 )

Filters:
41 taster (low pass, hi pass, band pass, peak notch (boost/cut) and resonant.

Reverb:
13 letter keys + 10 number keys that decides the amount of reverb/ parameters.

Everything is mapped like the following on the keyboard:

Bottom row:
Space bar and «.» to letter «C» is  8va bassa with different low pass filters (ascending)
«X» to «Z» is Loco play mode with different hi pass filters (ascending).

Middle row:
«Æ» to «K» is Loco play mode with different hi pass filters (ascending from «X»),
«J» to «A» er 8va with different band pass filters (ascending).

Top row:
«Å» to «R» is reversed with different peaknotch cut filters (ascending).
«E» to «Q» is reversed with peaknotch boost filters (ascending).

Number row:
«backspace» is Loco with flanger delay (no filters).
«0» til «8» is 8va bassa with peaknotch boost filters (ascending continued from «E»),
«7» to «5» Loco with peaknotch boost filters (still ascending from «E»)
«4» til «2» is 8va with resonans filter (ascending), while «1»  reversed with resonant filter.

In addition does every second letter in the alphabet reverb on/off function like this: A (off) B (on) C (off) D (on) and so on.
The numbers «0» to «9» (arranged 0 9 8 7 6 5 4 3 2 1) are linked to 9 presets which control different reverb parameters.
Effect/trigger words:
6 definable words: where those are triggering  1: a varaiable wavetable/buffer player,
2: Stutter effect 3: slide -env. delay, 4: granulation 5: frequency shifter and 6: Ringmodulation.

Finally, backspace has a flanger effect and ! (exclamation mark) A filtersweep based on the filter of the previous key).

Setup:
There are multiple microphone setups one can use.
Either use the internal mic. or  use a directional mic or a contact/transducer type
Be sure to put the speakers at a distance pointing away from the mic due to prone to feedbacking.
Even though this could also create some cool and interesting effect sometimes.

Open the maxmsp patch called "Alfa-Beta.maxpat" inside ../AlfaBeta/Files/ if you have the CNMAT lib.installed make sure the midifile.class and midifile.java file inside

../AlfaBeta/Files/ are used instead. The patch opens after a little intro, and the you are ready to go.
If in a network with other chatters/performers,first write your name in the box that says "your name"
press return. If everything is ok every members name should appear in the green posting field.
Then press " delete incoming text " for reseting the scroll. After 58 incoming messages,
the scroll will automatically delete the text and reset the scrolling to the top. You could of course do this manually by pressing
" delete incoming text "
Turn on the speaker by pressing the speaker icon, it will light up, then increase the
volumbar to around-2.5-3dB or a desired volume level. Make sure that you have set all the speakers and/or
soundcard in-outs to an acceptable and even level between performers
The "option" window is where you could define the trigger/fx words and record both MIDI/Meta data and audio as well a complete chat transcript
In the the option window the function " record performance" one has the posibillity to make recordings of both one's own sound as audio and MIDI.
For the MIDI part, I've created so that it records all the key press in time and also includes meta-events in the MIDI file, so if you open up the MIDI file in a MIDI/Score editor
eg after pressing the "write to MIDI" button below the record button. It will include the rythmical notation and which type of key you pressed (the letter, characters, numbers) listed.
This depends on the MIDI editor if it has Meta-Events functionality. Muse Score (Freeware, platform independent) and Logic Pro (Mac) are two apps That I have tested  and it works relatively well, it needs only a little setup to get everything to appear relatively correct.

The example score (link) illustrates how the score will look like,  the transcribtion is a simplification as there had been better and maybe more appropriate to use different time signatures, more precise rhythmic notation as different note divisions, polyrythms, metric modulation, etc.
but this also a matter of set up in a Score editor.


Ideas for compositions

Several possiblities opens up, one could be just random chatting, one could be theme based. One could be creative
storytelling where one start writing then post it, and the next in line continue on the text, and the piece ends when the
last one is finished.
Other possibilties is to play a composed piece written for alfabeta with notation and key mapping (have a look at how the MIDI/Meta even recording)

other is just to improvise freely using random and nonsensical words (which often sounds more musical than concrete words!)
Maybe hook the microphone to other instrument(s) and use alfabeta as a live sampler Or a combination of all of this!