Komponist og computer

Af
| DMT Årgang 64 (1989-1990) nr. 07 - side 255-259

Artiklen er indscannet fra det trykte magasin; der tages forbehold for fejl

  • Annonce

    Man skal høre meget

Baggrund

I midten af halvtredserne begyndte lannis Xenakis at 'oversætte' arkitektoniske modeller til musikalske strukturer. Han ønskede, tilskyndet af Olivier Messiaen, at skabe en ny musikalsk syntaks, der lå i forlængelse af hans erfaringer som arkitekt. Udgangspunktet var en kritik af både tradition og avantgarde. Computeren blev redskabet. Xenakis beskrev værkets kompositionsproces i form af en algoritme. Ved hjælp algoritmen og diverse formler kunne maskinen så programmeres til atberegne de musikalske hændelser. Der skulle gå næsten seks år inden IBM i Frankrig stillede en computer til rådighed for realiseringen af Xenakis' værker.

I USA var Lejaren Hiller heldigere. På universitetet i Illinois havde han relativ let adgang til en computer. Han brugte den i første omgang til informations-teoretiske analyser af klassiske værker. I næste omgang blev disse analyser reverseret til komposition. Det resulterede bl.a. i "Illiac-suiten" for strygekvartet, og den blev det første hørte eksempel på computer-genereret musik, da den blev uropført i 1957.

På Bell Telephone Laboratories arbejdede Max V. Matthews i samme periode med at lade computeren generere lyd direkte, men der skulle gå omkring ti år før denne mulighed blev tilgængelig for komponister, og først i 1969 udkom hans bog "The Technology of Computer Music". I denne bog beskriver han hvorledes man konverterer fra analoge signaler til digital information og omvendt. En stor del årbogen beskriver computersproget Music V, der var udviklet med henblik på kompositorisk virksomhed på computeren.

Music V fik efterfølgere på forskellige amerikanske universiteter: Stanford udviklede Music 6 og 10, Princeton udviklede Music 4-familien, og M.I.T. kom med Music 360 og 11. Alle disse sprog byggede på mainframe computere, kun Music 11 kørte på mini-computeren PDP-11 fra Digital Corporation. Det seneste skud på denne stamme er M.I.T.s CSound.

Den grundlæggende struktur i disse computersprog er en opdeling afkompositions-processen i tre adskilte del-procedurer: først defineres 'instrumenter', derefter defineres et'score' og til sidst beregnes en 'performance'. Instrumenterne er beskrivelser af lyde, der aktiveres af 'score'. Kun den aktuelt beregnede 'performance' kan høres via digital-analog konvertering.

Allerede fra begyndelsen af 60'erne arbejdede de to komponister Jean-Claude Risset og John Chowning med direkte computer syn tese af musik. I slutningen af 60'erne opdagede Chowning de store muligheder, der lå i frekvens-modulation (FM), - en opdagelse der førte til, at han solgte rettighederne til denne syntese metode til det japanske firma Yamaha. Yamaha skabte derpå den digitale DX7-synthesizer, der nok er blevet den største succes indenfor al elektro-akustisk musik. Digitale synthesizere er computere, der er specialiseret med henblik på at kunne fremstille og afspille syntetiske lyde.

I slutningen af 70'erne lancerede et ungt computerfirma i Californien deres Apple II computer. Hensigten var, at alle skulle have adgang til at bruge computerteknologi. Denne idé slog rod og blev til begrebet 'den personlige computer'. Der blev hurtigt udviklet musikprogrammer til Apple'n og hermed fik komponister uden for universitetsmiljøer personligt adgang til computer-teknologi.

Rigtig skub i brugen af computere i forbindelse med synthesizere kom der, da en række synthesizer-firmaer i 1983 blev enige om en kommunikations-protokol (en 'morse-kode') mellem deres synthesizere og computere. Denne protokol kaldes MIDI, der er forkortelsen af 'Musical Instruments Digital Interface'.

Med den personlige computer, med digitale synthesizere og med MIDI skabtes et fleksibelt og prisbilligt alternativ. Nu kunne komponister oprette deres egne hjemmestudier, og dermed arbejde frit, i modsætning til den administrerede adgang til de centrale studiers store komplekse anlæg.

Hvad kan komponisten med sin computer?

Først og fremmest er computeren et effektivt beregningsredskab. Man komme langt med lommeregneren, men ønsker komponisten at en musikalsk hændelse skal være resultatet af en overlejring af flere strukturelle lag, så er computeren regnemaskinen overlegen. Computerens program kan gentage beregninger med stadigt nye udgangspunkter således at komponisten hurtigt opnår overblik over mange kvalificerede valgmuligheder. Denne proces kræver naturligvis, at dele af de ønskede strukturer formaliseres, d.v.s. at de kan beskrives i en algoritme (en beskrivelse af arbejdsgangen) og beregnes udfra matematiske eller logiske formler.

Dernæst kan computeren bruges til at kontrollere synthesizere både ved redigering af synthesizerens lyddannelse men også i en opførelses-situation. Hertil bruges MIDI. Man kan enten have sit 'partitur' liggende i kodeform i computerens hukommelse, men man kan også løbende beregne musikalske hændelser udfra input, der gives den undervejs i opførelsessituationen.

Dette sidste kaldes interaktiv programkørsel.

Computere kan også direkte skabe bølgeformer, og dermed klange, der er defineret og kontrolleret af komponisten selv. Denne proces er meget krævende, både hvad angår computerens hukommelse og dens arbejds-ydelse. Arbejdet delegeres ud til en såkaldt DSP-chip, det vil sige en lille intern computer, der er pecialiseret i Digital Signal Processering. Ellers kan man kombinere computeren med en 'sampler'. En 'sampler' er en computer, der er specialiseret til at optage lyd ('analoge' signaler) som tal-information (digitalt) og afspille lyd fra digital form. Bølgeformerne gemmes i hukommelsen som tal. Disse kan være 'samplet' fra naturligt eksisterende lyd, og derefter bearbejdet/redigeret, eller de kan være beregnet af computeren ud fra et eller andet syntese-princip. Tallene bruges til styring af en DA-omsætter (DA-Digital/Analog), der 40.000 gange pr. sekund omsætter et tal til en (analog) elektrisk spænding. Variationen i tallene og dermed i den elektriske spænding kan så, via en forstærker, få lyden til at komme ud af højtaleren så den kan høres.

Endelig kan komponisten idag relativt let indtaste sit partitur i computeren, der derefter kan trykke det via en laser-printer. Programmel til den slags Desk-Top Publishing (DTP) kan endvidere også udskrive stemmer, ligesom man via en synthesizer kan høre resultatet gengivet.

Selv bruger jeg endvidere det ny hypermedia til at skitsere musikalske hændelser. Hypermedia er programmer der kombinerer tekst, grafik, programmering og arkivering i en samlet arbejdgang. Det er derfor muligt at tegne et overordnet musikalsk forløb på et arkivkort. Derefter forbinder man de enkelte elementer påtegningen med andre arkivkort der indeholder en nærmere beskrivelse (tekst/grafik) af det valgte element, (se eks. 1)

(eks.1)

Udenfor den rene musikbrug kan computeren endvidere velegnet til PR-arbejde og tekstbehandling, projekt-styring, adresselister ogregistre i al almindelighed. Tekstbehandling er overordentligt tidsbesparende når der skal skrives artikler, breve og man kan selv fremstille brochurer og informationsmateriale. Med telefonmodem kan man tilsluttes et 'net' hvor man kan kommunikere med andre tilsluttede. Med FAX-modem kan man sende direct-mail til andre FAX-tilsluttede. Mulighederne er legio og kun éns økonomi sætter grænser!

Computer-programmer

Computere kan intet i sig selv. For at bruge en computer kræves noget software der administerer computerens uoverskuelige mængde aftal ogholder rede på hvad der er styrekode for computerens processor, hvad der er data, hvad der er grafik oghvad der er tekst, MIDI-kode, etc. Programmer, programmerings-sprog og styre-system er altsammen software. (Se også Tanggaards artikel andetsteds i bladet, red.).

Aller dybest nede ligger styresystemet. Det holder rede på indtastninger fra tastaturet, med skærmbilledet og med harddisk, diskettestation(er) og andre 'perifere' enheder. Perifere enheder er specialiserede udbygninger på selve computeren: uden skærm ville det være svært at følge med i hvad computeren arbejder med, uden tastatur ville man ikke kunne kommunikere med den, uden disketter og harddisk ville man ikke kunne gemme sine informationer og flytte dem til andre computere (se eks. 2). Alle disse funktioner styres fra styresystemet.

Ovenpå styresystemet ligger der et programmerings-sprog. Et 'sprog*, der søger at gøre computerens digitale arbejdsgang tilgængelig i en for brugeren mere naturlig sprogbrug. 'Sproget'kan opfattes som et bibliotek af programmer. I stedet for at skrive et halvt hundrede tal eller flere, for at definere processorens arbejdsgang henviser programmøren til ten bog' i biblioteket (se eks. 3). Denne henvisning resulterer så i at "bogens' indhold benyttes af processoren. Programmøren skal således kun relatere til overordnede funktioner som 'print', 'get', 'put o.s.v. Et godt programmeringssprog har endvidere den egenskab at brugeren selv kan skrive 'nye bøger' på lige for med de eksisterende, og dermed personliggøre biblioteket.

Et godt programsprog 'usynliggører' styresystemet ved at integrere det

Som næste lag ligger 'programmet'. Et program er specialist i en specifik arbejdopgave. Programmet reducerer mængden af information til dét nødvendige minimum, der er nødvendigt for at arbejdopgaven kan udføres. Et godt program, skal kunne bruges med minimal kendskab til computeren og dens interne virkemåde. Imidlertid er mængden af information, der udveksles mellem bruger og computer, ikke et sikkert mål for programmets 'brugervenlighed'. Jo mere specifikt et program er, jo sværere er det, at få det til at udføre variationer af jobbet, og er der noget komponister er gode til, er det netop at ville noget lidt anderledes, end det man lige gjorde! Programmer må derfor også vurderes efter deres fleksibilitet. At et program ikke bryder ned' ogholder op med at køre, bare fordi det modtager anden information end det ventede bør ikke være noget problem idag - det er en overstået børnesygdom!

Netop fordi brugerne ønsker fleksibilitet af programmer, bliver forskellen mellem 'program' og 'sprog' idag mere og mere udflydende. Denne udvikling vil forsætte. Flere og flere 'programmer' vil få en 'sproglig' karakter, uden at det af den grund bliver nødvendigt for brugeren af programmet at skulle mestre sproget, før programmet kan benyttes. Hyper-programmel (og såkaldte 4. generations værktøjer) som omtalt ovenfor, er bare ét eksempel på hvorledes man med et minimum af kendskab til programmering kan opbygge komplicerede, men let omstillelige program-relationer mellem forskellige arbejdsgange.

Musik-programmer

De tidligste kommercielle programmer til hjemmecomputeren er udviklet som kontroller for brugen af synthesizeren. Den første type på markedet var 'sequenceren', som direkte oprindelig var et synthesizermodul. Som program-type kan sequencerens moderne form nærmest sammenlignes med en meget fleksibel båndoptager. Der 'optages' al MIDI-information, men altså ingen 'lyd'. Derfor kan man redigere de enkelte hændelser: tonerne kan enkeltvis justeres med hensyn til ansats-tidspunktet, varighed, tonehøjde og anslagsstyrke. 'Optagelsen' kan derfor også afspilles i forskellige tempi uden at der ændres i tonehøjden. Man kan vælge særlige afsnit og transformer e disse vedf.eks. at skabe omvendinger og baglæn s afspilning. Man har adgang til et højt antal separate spor og har fuld kontrol over mixningen af disse.

En anden type program specialiserer sig i redigering af synthesizerens interne lydparametre. Oprindeligt havde denne programtype to varianter: nogle var rene biblioteks-programmer, mens andre desuden aktivt kunne redigere synthesizerens parametre. Fordelen med biblioteksprogrammet var at det ikke er afhængig af at kunne 'tolke' de data den modtager, derfor er det ligeglad med hvilken synthesizer det kommunikerer med. Såfremt man ønsker at redigere i datamængden, må programmet vide hvorledes den skal tolkes, d.v.s. programmet skal have en viden om synthesizerens interne struktur. Redigeringsprogrammer er derfor specifikke for bestemte synthesizere eller synthesizer-familier.

Der findes også biblioteks- og redigerings-programmer til samplere. Her redigerer man i den digitale lydfil, der er læst ind i computerens hukommelse. Da digitale lydfiler kræver minimum 40.000 dobbelt-tal for hvert sekund lyden varer, siger det sig selv at disse programmer stiller store krav til størrelsen af computerens hukommelse. Indlæsning fra sampier og tilbageføring aflydfilen tager desuden mærkbar tid.

Efterhånden som hjemmecomputerens grafiske e-genskaber blev udviklet, opstod tanken om programmer der kunne notere og derefter udskrive partiturer. Nodeskrivningprogrammer fungerer ligesom tekstbehandling og kan endvidere udskrive og transponere stemmer. Da den grafiske information i mere avancerede partiturer er meget stor ogkompleks, er der en 'tradeoff mellem notationsprogrammer s bruger-venlighed og deres formåen. Udskrifter kræver højtopløselig nåleprinter eller laser-printer for at opnå en professionel kvalitet.

En helt anden type programmer kan lade computeren 'improvisere' over en serie toner, som man har indspillet. Mens computeren spiller, kan man løbende ændre på de parametre der styrer afspilningen/improvisationen. I baggrunden ligger et sæt regler som man som bruger ingen adgang har til, hvert improvisation-sprogram har derfor sin egen karakter og lægger op til en bestemt stilistisk holdning.

Programmerings-sprog

Ønsker komponisten at bruge sin computer til en frit defineret kreativ skaben kommer man ikke uden om at programmere selv. Men inden man når hertil skal man finde ud af hvilket programmeringssprog man skal lære. Her kræver valget en analyse af, hvad man ønsker at programmere, idet nogle sprog er mere velegnede til nogle ting og andre til andre formål. På den anden side er det ikke sproget i sig selv, der er det vanskelige, oftest er det programmørens manglende analyse af problemet, der fører til fejl, -kort sagt: det første sprog er det sværeste!

Det første sprog man støder på er nok 'interpreterende', d.v.s. at den ordre man indtaster straks føres til 'fortolkeren' og derfra udføres. BASIC er et 'interpreterende' sprog og indtastningen PRINT 'Velkommen' vil straks medføre at der skrives 'Velkommen' på skærmen. Præcist så 'klog' er computeren! Der er to ulemper ved BASIC: for det første betyder denne stadige vandren ned i fortolkeren med hvert eneste ordre at programafviklingen er langsommere end det optimale, for det andet er det et 'ustruktureret' sprog. Der er kun få regler for hvordan programmet opbygges: nybegyndere og anarkister elsker dette, men et ustruktureret program er vanskeligt at ændre i, det er svært at genbruge og svært at læse og forstå for andre end programmøren selv.

Vender vi os mod strukturerede sprog finder vi først og fremmest 'Pascal' og 'C'. Begge er såkaldt 'kompilerende' sprog, d.v.s. at når man har skrevet sit program, sendes det til en 'compiler' der omsætter programmet til den tal-information, der forstås direkte af computerens centrale processor. Vi slipper for den stadige vandren til 'fortolkeren'for hvert nyt ord, hele programmet oversættes på én gang og kører derfor hurtigere. 'Pascal' er meget sprognært og derved nemt at læse. 'C' er kendetegnet af forkortede ord og derfor hurtigst at skrive. M.h.t. strukturering er 'Pascal' mere restriktivt end 'C', det betyder at sproget ikke så let kan bringes til at udføre 'forkerte' ting hvilket er begynderens glæde, men sandelig også den erfarnes lænker!

En tredie type sprog er karakteriseret af evnen til at danne et 'interaktivt miljø' omkring programmøren, eksempelvis 'Lisp', der finder anvendelse bl.a. indenfor AI-programmering ('Artificial Intelligence' -kunstig intelligens). Interaktive programsprog er på én gang 'inter pr eteren de' og 'kompilerende', og der er kort vej fra programmering til programkørsel. Programmør en fremstiller og lægger (kompilerer) de funktioner i ordbogen han mangler: herefter bruges sproget'interpreterende', med de udvidelser man har tilføjet. Brugen af interaktiv programmering har derfor sprog-egenskaber: man kan i høj grad benytte sig af associationer og momentan inspiration.

Fremtidens computersprog er objekt-orienterede, og afviger derfor drastigt fra de 'klassiske' sprogs sekventielle programmeringsstil. I et objekt-orienteret sprog er der en sammenknytning ('encapsulation') af dataogdatamodificerendefunktioner.Objekterfungerer som abstrakte modeller, der ikke direkte kan benyttes af computeren. Programmøren starter sit arbejde med at kopiere et allerede eksisterende objekt, der har nogle af de egenskaber han ønsker for sit kommende objekt. Kopien nedarver egenskaber fra det oprindelige objekt ('inheritance'). Dernæst tilføjes de nye datamodifice-rende funktioner der gør det ny objekt til en selvstændig, og sammenhængende helhed. Når de abstrakte objekter skal bruges i praksis oprettes et specifikt navngi-vettilfælde -et'instance'- af objektet. E t gi vet objekt kan således genbruges mange gange med forskellige navne. Programkørslen foregår ved at objekterne sender 'meddelelser' til hinanden (se eks. 4). Indenfor musikmiljøet internationalt, ser det i dag ud til at 'Smalltalk V vil vinde hævd som det foretrukne objektorienterede sprog.

(eks. 4, s.259)

Skal komponistens programmer kommunikere med synthesizere kræves et MIDI-interface, der består af noget hardware og noget software. MIDI er serielt transmitterede bit's (prikker og streger i morsealfabetet) og de skal omsættes til bytes, hver bestående af 8 bit. Det skal hardware-delen sørge for. MIDI-medde-lelser består af flere byte's og håndteringen af disse kræver en såkaldt 'MIDI-driver'. En 'MIDI-driver' henter MIDI-beskeder fra programmeringssproget og sender dem ud, samt viderebringer indkomne MIDI-beskeder fra synthesizeren til programmeringssproget.

Standard-sprogene indeholder normalt ingen kontakt til en MIDI-driver, og en sådan må programmøren selv fremstille, med mindre han vælger at anskaffe en særlig udgave af standard-sprogene hvor MIDI-driv-eren allererede er implementeret.

Der findes idag færdigt tilgængelige MIDI-drivere til BASIC, Pascal, C, Forth og Lisp til stort set alle typer computere.

Compunistens arbejdsstation: hardware

At indkøbe et komplet compunist-sæt bliver let en bekostelig affære, så man må sansynligvis begynde i det mindre ambitiøse. Anskaffelsen kræver derfor en analyse af hvad man vil bruge sit anlæg til, men man må også beslutte hvad man vil prioritere højest, og hvad man vil anse for luksus.

Computeren må anskaffes med mindst 1Mb hukommelse, skærm, tastatur, diskette-drev (2 stk. hvis man ikke køber harddisk), MIDI-interface og gerne interne udvidelsesmuligheder samt en harddisk (min. 20 Mb). Herefter bør man an skaffe software, MIDI-keyboard, synthesizere, samplere, rumklang, mikser samt forstærkere, højtalere båndoptagere og DAT efter behov. (Se eks. 5)

Til musikformål er der idag tre tilgængelige hovedtyper:

1) IBM og IBM-kompatible computere

2) Macintosh-familien

3) Atari

- men I horisonten skelnes NExt, der bl.a. har en 'music kit til håndtering af MIDI og en 'Sound kit' til håndtering af samples.

I valget mellem de tre familier gør man klogt i at skele til 1) hvilke programmer og sprog der er tilgængelige, 2) hvilken type éns potentielle samarbejdspartnere har (man bør tilstræbe mulighed for program- og data-udveksling), og endelig 3) hvordan man føler sig tilpas når man arbejder med computeren og dens software (prøv altid før køb!).

(eks. 5, s.259)