You are on page 1of 13

PILE: A Language for Sound Synthesis

Author(s): Paul Berg


Source: Computer Music Journal, Vol. 3, No. 1 (Mar., 1979), pp. 30-41
Published by: The MIT Press
Stable URL: http://www.jstor.org/stable/3679754
Accessed: 02-03-2015 16:48 UTC

Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at
http://www.jstor.org/page/info/about/policies/terms.jsp
JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide range of content
in a trusted digital archive. We use information technology and tools to increase productivity and facilitate new forms of scholarship.
For more information about JSTOR, please contact support@jstor.org.

The MIT Press is collaborating with JSTOR to digitize, preserve and extend access to Computer Music Journal.

http://www.jstor.org

This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

PILEA

Sound

Language for

Synthesis

Paul Berg
Institute of Sonology
Utrecht, The Netherlands
Introduction

Background

PILEis a computerlanguagefor direct sound synthesis.


A programwritten in PILEoperatesin real-time once it has
been compiled. Thereis no externaldata storage.Up to four
channels of sound may be produced. Groupsof machine
operationsform the basis for PILEinstructions.It is possible
to programdistinct sounds and a structurefor them. It is also
possible to programa structurewhich produces sound. The
PILEcompileris presentlyavailableon the PDP-15 computer
at the Institute of Sonology in Utrecht.
The above statements indicate certain aspects of PILE
which are uncommon amongthe work being done in computer
sound synthesis. It is a languageand not a program.It actually
operatesin real-time: calculations,decisions,and bookkeeping
all occur as the sound is produced. This means that this
languageis also suitable for use with a limited hardware
configuration.A large computer system is unnecessary.In
contrast to other more or less real-time systems, PILE can
simultaneouslyproduce severalsounds or layers of sounds.
It is not limited to mono-linear stringsof sounds.
PILE instructions are based on groups of machine
operations, not on a particularacoustical model. Parameters
such as frequency, timbre, envelope, and durationare not
specifically referenced. Rather, the availableinstructions fall
into the following categories:

A myriad of sound synthesis programsexist based on


models related to instrumentalmusic or to the design of a
traditionalanalogelectronicstudio. Some work in real-time.
Some work with extreme accuracy. Some provide for convenient man-machineinteraction.They all requirethe use of
a computerbecause of the magnitudeof the task. For many,
this is perhapsthe only reasonwhy they requirethe use of a
computer. It is a valid reason,but it is certainlynot the most
interestingone. Moreinterestingones are:

(1)
(2)
(3)
(4)
(5)

manipulationof the accumulator


manipulationof external devices
manipulationof variables
manipulationof lists
manipulationof programflow

Given this basis, PILE is used to produce music, musical


structures,and musical sounds. BecausePILEworks in realtime, the structures can be tested immediately. In one
program,separatesounds can be describedand orderedin a
structure.A different possibility is to describea structurein
a programwithout referringto what could be distinct sound
events and then listening to the result of that structure.
Probablythe most uncommon aspect of PILEis that one can
work with it in both of these ways.
Page 30

to hear that which without the computercould not be heard;


to think that which without the computer would not be
thought;
to learn that which without the computer would not be
learned.
To ask what a computercan do for a composeror what you
can learn from a computeris obviouslywithin the realmof
music. After all, a composermay certainlyask what a clarinet
can do, or what the sound propertiesare of any other instrument or object used as an instrument. A performeroften
tries to learnsomethingabout a type of music by playing on
various types of instruments.Playing "old" music on "old"
instrumentsis a common example of this practice.
Computersproduceand manipulatenumbersand other
symbolic data very quickly. This could be consideredthe
idiom of the computer and used as a basis for musicalwork
with the computer. In 1974-1975 I made a series of
experimentswith the productionand output of numbersto a
digital-to-analog converterwithin the frameworkof sound
synthesis. These experimentsled to the ASP programs(Automated Sound Programs),a collection of 22 programswritten
in MACRO-15 (the assemblerlanguage for the PDP-15).
These programsare fairly simplemodels of numbermanipulation and temporal distribution systems. Counting,
calculating,comparing,choosing, and repeatingare common
proceduresin the programs.Structureswere describedusing
stringsof LACs(load accumulator),ANDs (logical and), XORs
(exclusive or), TADs (two's complementaddition), SRRANs
(shift randomnumber generatorand read into the accumu-

Computer Music Journal, Box E, Menlo Park, CA 94025

This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Volume III Number 1

areself-containedandautomaticlator),etc. Theprograms
givena startnumberfor the randomnumbergenerator,the
will continueuntilexternallyhalted.Theoutputis
programs
variable-ifbegunwith a differentstartnumber,a different
output results,and yet, the ouput can be repeatedby
beginningthe programwiththe samestartnumber.

A numberserieswithrepetitionsis output. Thisseriesis


calculatedusingrandomlyselectedlogicaloperations.The
clockis variedusingvaluesderivedfromvariableA. Six logical
disfunctionsaredefinedas macros- conjunction,antivalence,
junction,equivalence,implication,and exclusion.A 12-bit
randomvalueis chosenas A. Its two's-complement
is stored
to uselaterin determining
whena new A shouldbe calculated.
A 12-bitrandomvalueis chosenfor B. Thefive right-hand
bitsaretwo's-complemented
andusedlaterto determinewhen
to calculatea newvaluefor B. Dependingon the numberread
RandomnumberGenerator),the
from the HRG(Hardware
programperformsone of the six logicaloperationsbetween
A andB. Theresult,C,is trimmedto 12 bitsandsent to the
converterwhena clockflagis detected.A checkis madeif a
newvaluefor the numberof clockpulsesshouldbe calculated.
six bitsof A
If yes, the two's-complement
of theright-hand
becomethe newvalue. Thecountfor a newrepetitionmaskis
incremented.If zero,thecountis resetto the two's-complementof C. Therepetitionmaskis thiscomplementmaskedby
the octalvalueof 4137. Thevalueof the repetitionmaskhas
greatinfluenceon the sonicoutput. Next, the repetition
factoris checked.If thevalueof Cjustsent to the converteris
to be repeated,the programjumpsto SOUND,wherethe
a new
clockis loaded,enabled,andC is output. Otherwise
valuefor thenumberof repetitionsof thenext Cis calculated.
Thenewrepetitionvalueis theantivalence
of A andB, which
is maskedby the repetitionmask,and two's-complemented.
Thepreviously-derived
valuefor NEWBis incremented.If it
equalszero,theprogram
jumpsto calculatea new B andfrom
therecontinuestheprogram.Otherwise,the checkfor a new
A is performed.Theprogramcontinuestheneitherfrom the
calculationof a new A value,orfrom the switchpointwhere
the logicaloperationwaschosen. (1)

START

GENERATE
A

SAVE
ATC

GENERATE
B

NEWB

CHOOSE &
DO

LOGIC

SAVE
C

LOAD
CLOCK

CONVERT
WAIT

NEWPUL

GENERATE
PULSE,

As canbe seenin thisexample,eachsampleproducednecessarilyresultsfromall the programpartsandall the program


calculations.Theprogram
is anexplicitdescriptionof what
musthappenandwhathashappened.
Thetwenty-twoASPprograms
demonstrated
thatit was

to0
NEWHSK
?

GENERATE

REPMSK

yesEPEAT
no

GENERATE
REP

FCTR

0
NEWB

RPATC

Example1

Themostaccuratestatementof the relationships


which
occurin a program
is foundin the programtext itself. Thisis
becausethe structural
aredefinedin termsof the
relationships
is not a particularly
programming
language.SinceMACRO-15
widelyusedlanguage,anexample(ASP11), willbe described
usinga flowchart(Example1) and a verbaldescription:

possible to construct a numberof programswith a varietyof


ideas and output. It also became clear that severalgroupsof
MACRO-15instructionswere frequentlyused in various
programs. These groupsof instructionscould be considered
valuable concepts in writing this type of synthesis program.
One could generalizethese groupsof instructionsand use them
as a basis for a language. This was the basis for PILE. A frequently recurringgroup of instructionswas generalizedto one
PILE instruction. The usefulness of the instructionshad
alreadybeen demonstratedin the ASP programs. The generalization to one instructionmade the groupseasierto use, easier
to oversee, and gave more insight into the processes of this
type of sound synthesis. PILEinstructionsare not limited to
groups used in ASP. The need for additional instructions
became apparentwith use. But the ASP groupsdid provide
the startingpoint for the PILEinstructions. The PILElanguage and the compiler for it were designed and written in
1976-77.

PaulBerg:PILE- A Languagefor SoundSynthesis


This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Page31

A ShortDescriptionof the Language


Theavailableinstructionsaredescribedin the Appendix.
An instructionin PILEcontainsthe nameof an operationon
the firstline andfurtherinformationon the followinglines.
Thismayinvolveseveralapplications
of the operationstated
on the firstline. Thelastline of aninstructionis terminated
witha semicolon,e.g.,

SEED
7;
STORE
SAVE;
START

INIT
REF:1
NEW3:-1
NEW2:-1
NEWl1:-1;

CHANGE CHECK
NEW2
NCNT, -

NEW3
MSEL,-;

CONVERT
SEND:VAR
CHANNEL:O;

SEL N

B:12-15
ST:NEW3;
CAL

An instructionmay be givena label(address).If a labelis


used,it mustbe the firstsymbol(s)of the firstlineof aninstruction.Thefirstsymbolof an instructionmustbe a tab or
space. Afterthat,anynumberof tabsand/orspacesmaybe
usedto alignthe instructionas desired.

REF:REF*2
PIASK3:REF-1
COMP:4096-REF;
ZERO?
Y:END;
MSEL

SEL
M:MASK3
ST:MASK2;
SEL N

B:12-17
ST:NEW2;

SomeProgramming
Examples
NCNT

The availableinstructionsare combinedin programs


whicharecompiledandthenexecuted.Samplevaluesaresent
instruction.
directlyto a D/A converterwith the CONVERT
whenprogramming
are:(1) the sucImportantconsiderations
cessionof operations,and(2) the amountof timethey take.
A givencombinationof instructions
couldworktoo slowlyto
resultin an audibleoutput.

B :MASK2
ST : CNT;
CHECK

NEW1
NINC,-;
SEL

B:8-17
ST:MASKI;
SEL N

B:15-17
ST:NEW1;
NINC

TOP

SEL

M:MASK1
ST: INCR;

RANDOM;
CONVERT
SEND:CHANNEL:1;
BRANCH
TO:TOP;

TURN

Example2

A difficultyin describing
programming
examplesis that
the soundis not heardby the personreadingthisdescription.
Thislimitationis less seriouswhenworkingfroma known
model. Thereforethe firstexamplewillbe of a knownsound:
noise(Example2). Theideais to producenoiseby sending
randomvaluesto the converter.TOPis the labelfor the
instructionRANDOM.Thatinstructionreadsa randomnumberinto the accumulator.Thefollowinginstructionsendsthe
contentsof the accumulator
to converterchannelzero. The
hyphenafterSENDindicatesa defaultcondition,in thiscase
the contentsof the accumulator
insteadof a particular
variablk
or constant. Programcontrolbranchesto the instruction
labelledTOP,i.e. it returnsto the firstinstruction.Thespeed
at whichthisprogramoperatesis the speedof the assembled
machineinstructions.
Example3a containsa programtext in PILEandexample3b a flow chartfor thatprogram.A valueA is incrementedwithINCR(see arrow).Theresultis sentto the converter.ThishappensCNTnumberof times.If A becomes
greaterthan4095, the signof INCRis changedandA is set
to 4095. If A becomesless thanzero,the signof INCRis
changed,andA is set to zero. If CNTand INCRarelarge,
moreor less regulartrianglepatternsare formed.If that is
not the case,variousotherformsoccur.AfterA has been
incrementedCNTtimes, severalconditionsare CHECKed
to determinewhichvariableshouldreceivea new value.
Page32

SEL N

GOON

GOON2

END

CAL
A:A+INCR
MAX:4095-A;
NEGATIVE?
MAX
-,GOON;
INIT
A:4095
INCR:-INCR;
BRANCH
TO:GOON2;
NEG?
A
-,GOON2;
INIT
A:O
INCR:-INCR;
CONVERT
SEND: A
CHANNEL:O;
CHECK
CNT
TURN,CHANGE;

FINISH?
EXT:SAVE;
DECLARE
NEW1
,CNT,MASK1,INCR,A,IAX ,REF,COP, SAVE,
,NEW2,IASK2
NEW3,MASK3;

Example3a

In mustcasesthe valuesfor variables


areproducedwith
SELECT
(SEL)whichassignsa non-zerorandomvalueto a
variable.Thisrandomvalueis limitedin size by bits which
can be specified,e.g., if bits 15-17 areused,the random
valuewillbe betweenone andseven.A variablecanbe used
as a maskinsteadof specifyingthe bits.In thatcasea logical
ANDis performedbetweenthe variableandthe tentative
randomnumber.The result,if non-zero,is storedin the
variable.The boundariesfor a randomnumbertherefore
changeeverytime the variableusedas a maskchangesits

ComputerMusicJoumal, Box E, MenloPark,CA94025


This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Volume III Number1

START

INIT
VAR

NEW

no

MASK2

ye
NEW

no

MASK3

yes

CAL
MASK3

MAXyes

<

no

STOP
SELECT
MASK2

change.Thisresultsin a moreinterestingstructureanda more


interestingdevelopmentin the sound.Since a largeCNT
andsinceCNTtendsto get
usuallyimpliesa largerregularity
as
the
larger
programprogresses,the followingresults:the
relativelycomplexsoundsin the beginninggraduallytendto
becomemoreregularandlesscomplex.
An obviousway to expandthis programwouldbe to
describea moredirectedchangeof MASK1which relatesto
INCR.Thiswas realizedin Tape 1 frommy composition
LocksandDams.(2) Theprogramfor Tape1 simultaneously
produced2 channelsof sounds.Onechannelis similarto the
examplegivenhere.In the secondchannelthe maskfor INCR
tendsto increasewhilethe maskfor CNTis selectedwithan
bit specification.
unchanging
In Examples4a and4b, the resultsof arithmeticcalculationsaresentto the converter.Thisis followedby a waiting
loop. Thelengthof thiswaitingloop variesin the courseof the
arefoundin the
program.Threegroupsof thesecalculations
sample.Oneof the groupsis chosen.Controlstayswiththe
chosengroupuntilit returnsto the top of the program.
Anotherchoiceof groupis thenmade.Thewayin whichthe
waitingtimechangesis importantto the soundchangeswhich
areheard.Thefourthgroupproducessilenceby sendingzeros
to the converter.

SELECT
CNT

SEED
41;
INIT
A:1
B:37;

NEW

no

MASK1

SEL N
B:6-16
ST:NUTIME
B:14-17
ST:TIPME;

yes

SELECT

CHO

FINISH?

MASK1

EXT:O;
SEL N
B:8-17
ST:RETURN;
CHOOSE

SELECT
INCR

GROUP1,GROUP2,GROUP3,GROUP4;
GROUP1 CAL
A:A+INCR

A:A+1
B: B+7

C:A*B/3
D:C/67;

CONVERT

CONVERT

A
no

S:C

EXCEEDS

CH:O
S:D
CH:1;

LIMITS

-RETURN

INIT

es

RESET

WAITTIME;
CHECK
WAIT
DELAY,-

INCR

DELAY

yes

NUTIME
TEST,-;
SEL N

Example 3b

B:13-17
ST:TIHE

B:5-16
ST;NUTIME;

value.Thusdescribing
how maskvalueschangein a program
canbe animportantstructural
aspect.Thevaluesfor INCRare
determinedwith a variable,MASKI.A new valuefor this
variableis occasionallychosenwitha bit specification.CNT
alsohas a variablemask,MASK2.Valuesfor MASK2are
occasionallychosen,maskedby MASK3.In the courseof the
programMASK3getslargerandlarger.MASK3hasaninitial
valueof one.Whenit reaches4095, the programhalts.
Theresultof selectingvaluesfor MASK2fromMASK3
is thatCNTtendsto becomelarger.Butthisis not a linear

TEST

CHECK
RETURN
GROUP1,CHO;

GROUP2 CAL
A:A-5
B:B+16
C:A*B;
CONVERT

INIT

SEND:C
CHANNEL:
1;
WAIT:TIME;

Example4a continued on next page

PaulBerg:PILE- A Languagefor Sound Synthesis


This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Page33

START

INIT

CHECK
WAIT
DELAY2,NUTIME
TEST2,-;
SEL N

DELAY2

yes

FINISH

OP

no]s

RESET

B:13-17
ST: TIME
B:6-12
ST:NUTIME;
CHECK

TEST2

RETURN
GROUP2,CHO;
GROUP3 CAL
A: A+A-267
B:B+7
C:A*B/4;
CONVERT
S:C
CH:O;
INITIALIZE
WAIT:TIME;
CHECK
DELAY3
WAIT
DELAY3, NUTIME
TEST3, -;
SEL N
B:14-17
ST : TIME
B:6-16
ST:NUTIME;
CHECK
TEST3
RETURN
GROUP3,CHO;
GROUP4 CONVERT
S:O
CH:O
S:0
CH:1;
INIT
WAIT:TIIE ;
CHECK
DELAY4
WAIT
DELAY4,NUTIME
TEST4,-;
SEL N
B: 11-17
ST:TINME
B:6-12
ST:NUTIME;
CHECK
TEST4
RETURN
GROUP4,CHO;
DECLARE
A,B,C,D,NUTIME,TIME,RETURN,WAIT;

cAL
1
GROUP
CNGROUP
2
WAIT
noNEW
yes
SELECT
TIM
TIME

4b

Examples3 and4 illustratethe use of PILEto programa


structureand then listen to how it sounds.As already
mentioned,one couldinsteadprogramdistinctsoundsanda
structureusingthem.Thisshouldbe clearfromthe instruction
CREATE
set andthe examplesalreadygiven.Theinstructions
LISTandINSERTLISTareveryusefulfor this.Lessobvious
is the possibilityto simulatefixedwaveformsynthesiswith
amplitudemodulationand FMsynthesis.It has evenbeen
theInternationale
in PILE.I do not claim
possibleto-program
thatPILEis the idealtool for FMsynthesisor for producing
the versatilmelodies.Thisis mentionedonlyto demonstrate
ity of PILE.

structure.
Thisexamplehasa rathersimplehierarchical
Butgiventhe basicconceptof thisexample,it is clearthat
more extendedand variedhierarachical
decision-making
An exampleof anextendedversionof
couldbe programmed.
the basicidea in Example4 can be foundin Tape2 from
LocksandDams.
of oftenused
Examples3 and4 containsimpleillustrations
in PILEprograms:
structures
techniquesin describing

Page34

no

REaTUR

Example

Example4a continuedfrompreviouspage

(1)
(2)
(3)
(4)
(5)

GROUP
3
4
GROUP

war

shiftingof masks
timingthe variationof variablesusingCHECKs
hierarchical
changingof masks
(andSWITCH)
controllingprogramflowwithCHOOSE
of soundas calculations
anddelays
representation

Hardware
Comments
The PILEcompileris implementedon a PDP-15 at the
Instituteof Sonologyin Utrecht.Thecompilerproducescode
in MACROwithrandomaspectsusethe
15.PILEinstructions
hardwarepseudo-random
numbergeneratorbuilt by Jo
(3) Thisgenerator,linkedto the computer's
Scherpenisse.
I/O bus, generatesa randomnumberin 3 to 4js. The clock

clockas designed
instructionsassumea variableprogrammable
allows
the
Jo
This
clock
by Scherpenisse.
frequencyas wellas
the numberof stepsbeforea flagto be programmed.
The
in PILEarehoweverseldomused.It is very
clockinstructions
conceivablethata versionof PILEwouldbe madewithoutany
clock instructions.The D/A converterspresentlyusedare
12-bitwithouta buffer.

ComputerMusicJournal,Box E, MenloPark,CA 94025


This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Volume III Number1

APPENDIX
Pile Instruction Set

6)

NEGATIVE?
VAR
LABi, LAB2;

or

NEGATIVE?
VAR

(4)

usedin thisdescription:
Conventions
CONindicatesthat a constantis to be insertedby the programmer
VARindicatesthat a variableis to be insertedby the programmer.
LABindicatesthata labelis to be insertedby the programmer
VALindicatesthat eithera constantor a variablemay be
inserted

-, LAB2;

log indicatesoperationsantivalence,
conjunction,disjunction,
implication,or exclusion
equivalence,

NEGATIVE?
VAR
LABl, -;
VariableVARis tested.If it containsa negativevalue,the proit goesto LAB2.EitherLAB1
gramgoesto LAB1. Otherwise
or LAB2canbe replacedwitha dashwhichindicatesthatthe
programcontinuesto the next instruction.The instruction
maybe appliedseveraltimesin succession.

of Program
Flow
Manipulation

7)

arith indicatesarithmeticexpression+ or - or * or /

BRANCH
TO:LAB;
LABis a labelfoundin the program.Thenext instruction
willbe the instructionmarkedwith
executedin the program
LAB.Executionwillcontinuefromthatinstruction.
1)

2)

or

SWITCH

VAR
LAB1,LAB2,..., LAB9;
Theprogram
switchesto LAB1,LAB2,etc., dependingon the
valueof VAR.(If VARis 1, the programswitchesto LAB1,
etc.). A maximumof ninelabelsmaybe used.
of variables
Manipulation

CHOOSE
LAB1, LAB2,... LAB8;

Randomlychooseto branchto the instructionmarkedwith


one of the givenlabels(LABI,LAB2,...).

INITIALIZE
VAR:VAL;
VALcanbe positiveor negative.VALis assignedto VAR.
8)

GET

ZERO?
YES:LAB;
If the contentsof the accumulator
arezero,the program
continuesexecutionfromthe instructionmarkedwithLAB.

VAL;
Thevalueis placedin the accumulator.

4) CHECK

10) STORE
VAR;

3)

VAR
LAB1,LAB2;

or

or

STORENEGATIVE
VAR;
Thenumbercurrentlyin the accumulator
is storedin VAR.If
is indicated,the signof the numberis
STORENEGATIVE
changedbeforeit is stored.

CHECK
VAR
LAB1, -;

or

CHECK
VAR

-, LAB2;
Increasethe value of VAR by one. If it is not zero, the programbranchesto the instructionmarkedwith LAB1. If it is
zero, the programbranchesto the instruction markedwith
LAB2. A dash may be used instead of LAB1 or LAB2. In that
case the programcontinues to the next instruction if that
branchis chosen.
5)

9)

FINISH?
EXTERNAL: VAL;

or

FINISH?
INTERNAL: VAL;
The programterminatesif the numberset on the console accumulatorswitches (external) or if a numbersuppliedby the
hardwarerandomnumbergenerator(internal)is the same as
VAL.
PaulBerg:PILE- A Languagefor SoundSynthesis

11) READSWITCHES
STORE:VAR;
Thenumberset on the consoleswitchesis readandstoredin
VAR.
12) CALCULATE
VAR1 : VALlarithVAL2... ;
or

CALCULATE
VAR1 : log,VAL1,VAL2;
The possible arithmeticoperationsare: +, -, *, i/. No more
than eight arithmeticoperationsmay occur in one line. Operations are performedleft-to-right. The result of the performed
operationsis stored in VARI. Multiplicationand division of
negativenumbersis not possible. The possiblelogical operations are: equivalence,disjunction,conjunction, implication,
antivalence,exclusion. Only one logical operationmay occur
in a line. The result of the performedoperationis stored in
VAR1. Logicaland arithmeticoperationsmay not occur in the
sameline, but they may occur in consecutivelines.

This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Page35

13) SELECT
BITS : CON1,CON2,CON3- CON4...
STORE: VAR;
or

SELECT
MASK: VAR
STORE : VAR1;

or

SELECTNEGATIVE
BITS : CON1,CON2,CON3...
STORE : VAR;

first time SAMPLELISTis executed, the first value will be


placed in the accumulator.Witheach succeedingexecution of
SAMPLELISTthe numberVAL2 positions furtherin the list
will be placed in the accumulator,e.g., if VAL2 is 5, every
fifth numberin the list will be sampled.The currentvalue for
size will be maintainedfor the rest of the programafter the
first execution of SAMPLELIST.

or

SELECTNEGATIVE
MASK: VAR
STORE : VAR1;
A randomnumberis selected, limited (masked),and if then
not equal to zero, stored in VAR. The processis repeateduntil
a non -zero value can be stored in VAR. In the case of
SELECTNEGATIVEthe sign of the numberis changedbefore
it is stored. The numbermay be limited in two ways: 1) the
bits may be specifiedeither separatelyor between two limits,
e.g., BITS:3-10 (both ways may be combined), 2) a mask
may be specified. A logical AND (conjunction)is performed
with the randomnumberand the mask. The use of the mask
limits the rangeof the randomnumber.
14) DECLARE
VAR1, VAR2, VAR3...;
All variablesused in the instructionsmay be declaredso that
storagecan be savedfor them. The names of lists should not
be declared.
Manipulationof lists
15) CREATELIST
NAME:VAR
SIZE:CON;
VAR is the name to be given to the list. CONis the size of the
list. In general,the total size of all lists should not exceed
2500. After this instructionother instructionsshould be given
to formulatevalueswhich would be used in creatingthe list.
Instructionsmay be chosen from most of the other available
instructions, e.g., CALCULATE,RANDOM,SELECT,etc.
This group of instructionsshould end with the instruction
END LIST.
END LIST
SAVE:VAR;
This instructionindicatesthe end of the group of instructions
used to create a list. The value of VAR is stored in the created
list. The instructionsafter CREATELISTare againexecuted,
the next value for VAR is found, etc. until the list has been
filled.
16)

17) SAMPLELIST
NAME:VAR
SIZE:VAL1
INCREMENT:VAL2;
VAR is the name of a list previouslymade using CREATE
LIST or INSERTLIST.VAL1 is the size of the list. VAL1
must be less than or equal to the size declaredin CREATE
LIST or INSERT LIST. VAL2 is the increment. SAMPLE
LISTplaces one value from the list into the accumulator.The
Page36

18) INSERTLIST
NAME : VAR
SIZE : CON
CON1,CON2,...,
..., CON3;
VAR is the name of the list. CONis the size of the list. CON1,
CON2, etc., are constants which are the list. The list
containing CONi through CON3 is inserted in the program.
The maximum size of a list depends on how many lists are
used and how long the programis. In general,the total size of
all lists should not exceed 2500. INSERTLISTmay occur at
any point in a program.
Manipulationof the accumulator
19) RANDOM;
This is the only instructionwhich is complete on one line. A
randomnumber(18 bits) from the hardwarerandomnumber
generatoris placedinto the accumulator.
KEEP
BITS ; CON1,CON2- CON3,CON4... ;
Certainbits of the numberin the accumulatormay be kept.
The accumulatorcontains 18 bits, numbered0-17 from left to
right. CON1, CON2, etc., representthe numbersof the bits
which have been selected. The bits may be expressed
separately,e.g., BITS : 1,5; or between limits, e.g., BITS:
3-10; both ways may be combined.
20)

Manipulationof externaldevices
21)

CONVERT
SEND : VAL
CHANNEL: CON;

or

CONVERT
SEND: CHANNEL: CON;
VAL is sent to converter channel CON. VAL should be
between 0 and 4095. CON may be 0,1,2, or 3. If the
accumulatorcontents are to be sent, a dashis used insteadof
VAL.
22)

SEED
VAL;

or

SEED
-;
A seed (start number) is specified for the hardwarerandom
numbergenerator.Each time the samenumberis specified, the
same number (series) is produced by the hardwarerandom
numbergenerator.If VAL is a variable,it must be assigneda
value before this instructionis used. VAL may not be zero.
If one wished to insert the start value from the console
switches,use a minus sign instead of VAL.

ComputerMusicJournal,Box E, MenloPark,CA94025
This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Volume III Number1

CON
23) CLOCK
FREQ: VAL;
CONshouldbe either1 or 2. VAL
Twoclocksareavailable.
The
shouldbe positiveandis expressedin microseconds.
minimumvalueis 10. Thisinstructionsetsthe speedat which
the clockwillcount,i.e., not howlongit willcount,but how
fast.
CON
24) CLOCK
COUNT:VAL;
CONshouldbe either1 or 2 for Clock1 or Clock2. VAL
shouldbe positive.It indicateshow high the clock should
count(at the speedspecifiedin instruction23).
CON
25) CLOCK
START;
clock is
CONshouldbe either1 or 2. The corresponding
started.Thismeansit willbegincounting.
CON
26) CLOCK
WAIT;
CONshouldbe either1 or 2. Theprogramwaitsfor the clock
to finish counting(if it is not alreadyfinished)before
continuing.
CON
27) CLOCK
STOP;
CONshouldbe either1 or 2. Theclockis stopped.Theclock
shouldbe turnedoff afterWAIT.
Note: Someinstructionsfallintomorethanone of the above
categories.
AdditionalCommentsConcerning
TheInstructionSet
(1)

exampleof the useof CALCULATE

CALCULATE
A: A+ 10
B : A/C- 1
D: B* A
STX1: ANTIV,B,3
VAR2: IMPLIC,B,D
E : A*B+C/D-STX1 *VAR2/5 +79;

(2)

exampleof the useof CREATELIST

CREATELIST
NAME:HERMAN
SIZE: 500;
CALCULATE
C : EQUIV,25,D
D: D+D;
ENDLIST
SAVE:C;
(3)

useof abbreviations

in the firstline of an instructioncanbe abbreviated


Operations
to the firstthreelettersof the operation.In an instruction
whichcouldchangesign(SELECT,
may
STORE)NEGATIVE
be shortenedto N. In all instructionsexcept the clock
instructionsabbreviations
of only one letteraretolerated
beforethe colon,e.g.,
CONVERT
SEND: ALL
CHANNEL
:0;
couldbe
CON
S: ALL
TO :0;
Exceptfor the clockinstructions,differentwordscouldbe
insertedbeforethe colon.Thiscannot be donein instructions
wherevariablesoccur left of the colon (INITIALIZE,
CALCULATE).
References
1. Berg,P.,ASPReport.Instituteof Sonology,Utrecht,1975.
2. Berg,P. LocksandDams,a compositionfor 2-tracktape,
trombone,and 2-tracktape.Scoreavailablefromthe
composer.
3. Scherpenisse,
J., "APseudoRandomNumberGenerator,"
Interface3, p 187-190, 1974.
4. ExcerptedfromBerg,P., PILE2-A Descriptionof the
Instituteof Sonology,Utrecht,1978.
Language,

PaulBerg:PILE- A Languagefor SoundSynthesis

This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Page37

INIT
CNTRIO:
-17
PEAK:40

PART7

berg

paul

CNT: - I

ENVNO
:0
M:I
C:2
A:O;
BRA
T:GI2;
SEL
B:9-11
ST:SWEEP
B:13-17
ST:CFREQ
B:11-16
S: PEAKA;
CALCULATE
PEAKA:PEAKA+PEAK;
SEL N
B: 12-15
ST:DUR;
CAL

GI

knew

never

you

cared

MFREQ
:CFREQ*M/2/C;
INITIALIZE
CNT:DUR;
SAMPLE
LIST

G2

a composition for computer synthesized

N:MODAMP
S:80
I:1;
STORE
SWEAMP;
CALCULATE
SWEVAL:SWEEPtSWEAMP/PEAK;
LIST
SAMPLE
N:CAMP
S:80

sounds

I NeverKnew YouCaredis a 13 minutestereopiece


for computersynthesizedsounds.It has been recordedon
tape.Theentirecompositionis describedin the programfor
or editingoccurred.
it. No externalmixing,reverberation,
Oneperformance
for
the
possibility
pieceis viatapeplayback.
It alsocanbe performed"live"withanycomputerequipped
witha PILEcompilerandtwo channelsof digital-to-analog
conversion.
PILEis a languagefor soundsynthesis.The scorefor
I NeverKnew YouCaredis expressedin this language.The
score consistsof the instructionsa computerreceivedto
producethis piece.Thisscorewas realizedon the PDP-15
computerat the Instituteof Sonology,Utrecht,the Netherlandsandrecordedon tape.Becauseof thelengthof the score
it was dividedinto two sectionsfor realization:section 1
parts1-4, section2 parts5-8.

I:1;

G3

STORE
AMP;
ZERO?
Y:G12;

SAMPLE
N:MOD
S:360

I:MFREQ;

STORE
MODSAM;
CALCULATE
INC:MODSAM*SWEVAL/1000+CFREQ;

SAMPLE
LIST

NAME
:CAR
SIZE:720
INCREMENT:
INC;
STORE
CARSAM;
CAL
OUT:CARSAMtAMP/PEAKA;

SWITCH

POSIT
G4,G5,G6,G7,G8,G9,GIO;
G4
CALCULATE
OUT2:OUT/8
OUT3:OUT-OUT2;
CONVERT
S:OUT2
CH:O

PaulBerg
March1978
Utrecht

(Editor'snote:Sections7 and8 of the scorearereproduced


below.)

G5

S:OUT3
CH: 1;
BRA
T:GII;
CAL
OUT2:OUT/4

OUT3/OUT-OUT2;
CONVERT
S:OUT2
CH:O

S:OUT3

G6

& Section 7

&------------------------------------------------------------&

Page38

PART7

CH: 1;
BRA
T:GI ;
CAL
OUT2:OUT/8a3
OUT3:OUT-OUT2;
CONVERT
S:OUT2
CH:0
S:OUT3
CH: 1;

ComputerMusicJournal,Box E, MenloPark,CA94025
This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Volume III Number1

T:G20;

BRA
T:GII;
CAL
OUT2:0OUT/2;
CON
S:OUT2

G7

SAMPLE

G18

N:ENV4
S:8
I:I;
STORE
E;
BRANCH

CH:O

G8

G9

GI0

Gil
G12

G13

S:OUT3
CH:1;
BRA
T:GI l;
CAL
OUT2:OUT/8*5
OUT3:OUT-OUT2;
CON
S:OUT2
CH:O
S:OUT3
CH:1;
BRA
T:GI I;
CAL
OUT3:OUT/4
OUT2:OUT-OUT3;
CONVERT
S:OUT2
CH:0O
S:OUT3
CH:41;
BRA
T:GII;
CAL
OUT3:OUT/8
OUT2:OUT-OUT3;
CON
S:OUT2
CH:O
S:OUT3
CH:1;
CHE
CNT
G3, G2;
CON
S:0.
CH:0
S:O
CH:11;
CHECK
CNTRL
-,DIV;
INIT
WHICH:;
SEL
B:15-17
ST:POSIT;
CALCULATE
ENVNO:ENVNO+1
MAX:
5-ENVNO;
NEGATIVE

GI5

N:ENV5
S:8
I:1;
STORE
E;
G20

G22

G24

INIT
WHICH:2;
BRANCH
T:G13;
G25

G27
G28

T:G20;
SAMPLE
N:ENV2
S:8
1:1;
STORE
E;
BRANCH

G29
T:G20;

G17

SAMPLE

N:ENV3
S:8
STORE

E;

BRANCH

I:1;
CHECK
SKIP
-,G23;
STORE N
CNT;
BRANCH
T:G22;
STORE
AINC;
CAL
A:A+AINC;
END LIST
S:A;

G23

E;
BRANCH
G16

CREATE LIST
N: CAMP
S:80;
CHECK
CNT
G24,-;
INIT
SKIP:-2;
SAMPLE
N:ENVDAT
S:8

G21

CREATELIST
N:ENVDAT
S:8;
SWITCH
ENVNO
G15,G16,Gl7,G18,G19;
SAMPLE
N:ENVI
S:8
1:li;
STORE

END LIST
SAVE:E;
INIT
A:O
CNT:-1;
SWITCH
WHICH
G21,G25;

G26

-,GI14;
INIT
ENVNO:I;
G14

T:G20;
SAMPLE

G19

CREATE LIST
N:MODAMP
S:80;
CHECK
CNT
G28,-;
INIT
SKIP:-2;
SAMPLE
N:ENVDAT
S:8
I:1;
CHECK
SKIP
-,G27;
STORE N
CNT;
BRANCH
T:G26;
STORE
AINC;
CAL
A: A+AINC;
END LIST
SAVE:A;
SEL N
B:3-1 I
ST: CNT;
SEL N
B:14-16
ST:CNT2;
CONVERT
S:0
CH:0
S:O
CH:1;
CHE
CNT
G29,CNT2

PaulBerg:PILE- A Languagefor Sound Synthesis

This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Page39

ST:M;
-,Gl;
SEL N
B:3-11
S:CNT;
BRA
T:G29;

SELECT NEGATIVE
B:14-17
ST:NEWM;
H6

CALCULATE
A:A+INCR
MAX:PEAK-A;

&

NEGATIVE
MAX

&

&
&
&

H7,-

Section 8

A
-,H8;
INITIALIZE
INCR: -INCR

&-----------------------------------------------------------------------&

A:O;
BRANCH
TO: H8;
INITIALIZE

H7
&
&
&
&
PART8

INCR:-INCR

PART8

A: PEAK;
CHECK

H8
CNT2
INITIALIZE

Hi1,-;

H9

CNTRL:-2500
NEWAMP:-I

ST:CNT2;

DISCNT:-1

RANDOM;

NEWMSK:-I
NEWS:-I

KEEP
B:16-17;

NEWCF:-I

STORE

NEWM:-I
NEWC:- I

INCR;
CHOOSE

AMP:40
PEAK:40

Hl I,H10,H
CNT:-I
A:O

HIO
H I

INC:I
C:5
M:2
CFREQ:40
SWEEP:100;
SELECT NEGATIVE
B:12-17
ST:CNT2;
RANDOM;
KEEP
B:16-17;
STORE
INCR;
INITIALIZE
NEWVAL:-I;
HI

H12

INITIALIZE
CNT:-200;
CHECK
CNTRL

H2

H2,HI9;

CHECK

H13
NEWVAL
H6,-;
INITIALIZE

NEWVAL:-I;
CHECK
NEWS
H3,-;
SELECT
B:2,6,9-12
ST: SWEEP;
SELECT NEGATIVE
B:15-17
ST:NEWS;
H3

H14

CHECK
NEWCF

HI5

H4,-;
SELECT
8:11-17
ST:CFREQ;
SELECT NEGATIVE
B:14-17
ST:NEWCF;
H4

CHECK
NEWC
H5,-;
SELECT
B:14-17
ST:C;
SELECT NEGATIVE
B:14-17
ST:NEWC;

H5

CHECK
NEWM
H6,-;
SELECT
B:]5-17

Page40

SELECT NEGATIVE

B:13-17

H16

INITIALIZE
INCR:-INCR;

,HO1,H10,HI 1;

INITIALIZE
SWEAMP:A;
CALCULATE
SWEVAL:SWEEP*SWEAMP/
1000;
CHECK
NEWAMP
H13,NEWMSK
H12,-;
SELECT
B:13-17
ST:AMPMSK;
SELECT NEGATIVE
B:12-17
ST:NEWMSK;
SELECT
M:AMPMSK
ST:AMP;
SELECT NEGATIVE
B:15-17
ST:NEWAMP;
CALCULATE
MFREQ:CFREQtM/2/C
MAX:360-MFREQ;
GET
MFREQ;
ZERO?
Y:HI4;
NEGATIVE?
MAX
-,H15;
INITIALIZE
MFREQ:359;
BRANCH
T:H15;
INITIALIZE
MFREQ:1;
SAMPLE LIST
N:MOD
S:360
I:MFREQ;
STORE
MODSAM;
CALCULATE
INC :MODSAMNSWEVAL/1I
000+CFREQ
MAX:720-INC;
GET
INC;
ZERO?
YES:H16;
NEGATIVE?
MAX
-,H17;
INITIALIZE
INC:719;
BRANCH
TO:H17;
INITIALIZE

ComputerMusicJournal,Box E, MenloPark,CA94025
This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Volume III Number1

INC: I;
SAMPLE LIST

H17

N:CAR
S:720
I:INC;
STORE
CARSAM;
CALCULATE
OUT:CARSAM*AMP/PEAK;
CONVERT
S:CHANNEL:O;
CHECK
DISCNT
H18,-;
SELECT
B:6-13
ST:DIST;

491,
404,
320,
242,
171,
111,
62,

482,
396,
312,
235,
165,
105,
58,

473,
387,
304,
227,
159,
100,
54,

465,
379,
296,
220,
152,
95,
50,

456,
370,
288,
213,
146,
90,
46,

447,
362,
280,
206,
140,
85,
43,

439,
353,
273,
199,
134,
80,
39,

430,
345,
265,
192,
128,
75,
36,

421,
337,
257,
185,
122,
71,
33,

413,
328,
250,
178,
116,
66,
30,

27,
6,
0,
9,

24,
4,
0,
10,

21,
3,
0,
12,

19,
2,
1,
14,

17,
1,
I,
17,

14,
1,
2,
19,

12,
0,
3,
21,

10,
0,
4,
24,

9,
0,
6,
27,

7,
0,
7,
30,

33,
71,

36,
75,

39,
80,

43,
85,

46,
90,

50,
95,

54, 58, 62. 66,


100, 105, 111, 116

122,

128,

134,

140,

146,

152,

159,

165,

171,

178,

185,
257,
337,
412,

192,
265,
345,
430,

199,
273,
353,
439,

206,
280,
362,
447,

213,
288,
370,
456,

220,
296,
379,
465,

227,
304,
387,
473,

235,
312,
396,
482,

242,
320,
404,
491,

249,
328,
413,
500;

INSERT LIST
N:CAR
S:720

SELECT NEGATIVE
B:3-17
ST:DISCNT;
CALCULATE
OUT2:OUT*DIST/4095;
CONVERT
SEND:OUT2
CHANNEL:I;
CHECK
CNT.
H15,H1;
CONVERT

H18

HI19

SEND:O
CH:0
S:0
CHANNEL:I;
BRANCH
T:DIV;

2064,
2243,
2420,
2594,
2763,
2928,
3085,
3235,
3376,
3507,
3626,
3733,
3828,
3909,
3976,
4028,

2082,
2260,
2437,
2611,
2780,
2944,
3101,
3250,
3389,
3519,
3637,
3744,
3837,
3917,
3982,
4033,

2100,
2278,
2455,
2628,
2797,
2960,
3116,
3264,
3403,
3531,
3648,
3753,
3845,
3924,
3988,
4037,

2118,
2296,
2472,
2645,
2813,
2976,
3131,
3278,
3416,
3544,
3660,
3763,
3854,
3931,
3993,
4041,

2136,
2314,
2490,
2662,
2830,
2992,
3146,
3293,
3429,
3556,
3670,
3773,
3862,
3938,
3999,
4045,

2154,
2331,
2507,
2679,
2846,
3008,
3161,
3307,
3443,
3568,
3681,
3782,
3870,
3944,
4004,
4049,

2171,
2349,
2524,
2696,
2863,
3023,
3176,
3321,
3456,
3580,
3692,
3792,
3878,
3951,
4009,
4052,

2189,
2367,
2542,
2713,
2879,
3039,
3191,
3335,
3468,
3591,
3703,
3801,
3886,
3958,
4014,
4056,

2207,
2384,
2559,
2730,
2895,
3054,
3206,
3349,
3481,
3603,
3713,
3810,
3894,
3964,
4019,
4059,

2225,
2402,
2576,
2747,
2912,
3070,
3221,
3362,
3494,
3615,
3723,
3819,
3902,
3970,
4024,
4062,

4065,

4068,

4071,

4074,

4076,

4078,

4080,

4082,

4084,

4086,

4087,
4093,
4084,
4059,
4019,
FINISH
3964,
3894,
EXT:0;
DECLARE
3810,
3713,
NEWAMP,NEWMSK,AMPMSK,NEWS,NEWCF,NEWM,NEWC,DIST,
3603,
OUT2,NEWVAL,DISCNT,CNT2,AMP,OUT,CARSAM,PEAK,A,
C,M,CFREQ,SWEEP,MFREQ,MODSAM,INC,WHICH,PEAKA,ENVNO, 3481,
3349,
E,MAX,DUR,SKIP,AINC,SWEAMP,SWEVAL,CNT,SWEMSK,
3206,
CFMSK,MMSK,CMSK,CNTEND,OUT3,POSCNT,POSINC,POSMSK,
3054,
REF,POSIT,REPEAT ,MASTER,CNTRL;
INSERT LIST
2895,
2730,
NAME:ENVI
SIZE:8
2559,
2384,
10,4,30,0,30,0,10,-4;
INSERT LIST
2207,
NAME:ENV2
2029,
SIZE:8
1850,
1673,
20,2,10,-1,35,0,15,-2;
INSERT LIST
1499,
NAME:ENV3
1330,
SIZE:8
1165,
20,1,20,1,20,-1,20,-1;
1008,
INSERT LIST
858,
NAME:ENV4
717,
SIZE:8
586,
10,4,20,-1,30,0,20,-1;
467,
INSERTLIST
360,
NAME:ENV5
265,

4089,
4093,
4082,
4056,
4014,
3958,
3886,
3801,
3703,
3591,
3468,
3335,
3191,
3039,
2879,
2713,
2542,
2367,
2189,
2011,
1833,
1656,
1482,
1313,
1149,
992,
843,
704,
574,
456,
349,
256,

4090,
4093,
4080,
4052,
4009,
3951,
3878,
3792,
3692,
3580,
3456,
3321,
3176,
3023,
2863,
2696,
2524,
2349,
2171,
1993,
1815,
1638,
1465,
1296,
1133,
977,
829,
690,
562,
445,
340,
248,

4091,
4092,
4078,
4049,
4004,
3944,
3870,
3782,
3681,
3568,
3443,
3307,
3161,
3008,
2846,
2679,
2507,
2331,
2154,
1975,
1797,
1621,
1448,
1280,
1117,
962,
815,
677,
549,
433,
330,
239,

4092,
4092,
4076,
4045,
3999,
3938,
3862,
3773,
3670,
3556,
3429,
3293,
3146,
2992,
2830,
2662,
2490,
2314,
2136,
1957,
1779,
1603,
1431,
1263,
1101,
947,
800,
664,
537,
423,
320,
231,

4092,
4091,
4074,
4041,
3993,
3931,
3854,
3763,
3660,
3544,
3416,
3278,
3131,
2976,
2813,
2645,
2472,
2296,
2118,
1939,
1762,
1586,
1414,
1247,
1085,
932,
786,
650,
525,
412,
311,
223,

4093,
4090,
4071,
4037,
3988,
3924,
3845,
3753,
3648,
3531,
3403,
3264,
3116,
2960,
2797,
2628,
2455,
2278,
2100,
1922,
1744,
1569,
1397,
1230,
1070,
917,
772,
637,
513,
401,
301,
215,

4093,
4989,
4068,
4033,
3982,
3917,
3837,
3744,
3637,
3519,
3389,
3250,
3101,
2944,
2780,
2611,
2437,
2260,
2082,
1904,
1726,
1551,
1380,
1214,
1054,
902,
750,
625,
502,
390,
292,
207,

4093,
4087,
4065,
4028,
3976,
3909,
3828,
3733,
3626,
3507,
3376,
3235,
3085,
2928,
2763,
2594,
2420,
2243,
2064,
1886,
1709,
1534,
1363,
1198,
1039,
887,
744,
612,
490,
380,
283,
199,

4094,
4086,
4062,
4024,
3970,
3902,
3819,
3723,
3615,
3494,
3362,
3221,
3070,
2912,
2747,
2576,
2402,
2225,
2047,
1868,
1691,
1517,
1346,
1181,
1023,
872,
731,
599,
478,
370,
274,
191,

SIZE:8
20,1,20,1,30,0,10,-4;
INSERT LIST
NAME:MOD
SIZE:360
526,
534, 543, 552,
612,
620, 629, 637,
695,
703, 711, 719,
772,
779, 786, 793,
840,
847, 853, 859,
899,
904, 909, 914,
945,
949, 953, 956,
978,
980, 982, 985,
996,
997, 998, 998,
999,
998, 998, 997,
987,
985, 982, 980,
960,
956, 953, 949,
919,
914, 909, 904,
865,
859, 853, 847,
800,
793, 786, 779,
726,
719, 711, 703,
646,
637, 629, 620,
560,
552, 543, 534,

176,
169,
III,
105,
60,
56,
25,
22,
4,
3,
0,
0,
11,
13,
37,
41,
79,
84,
135,
142,
207,
215,
292, . 301,
390,
401,
513,
502,
637,
625,
758,
772.,
917,
902,
1054,
1070,
1214,
1230,
1380,
1397,
1569,
1551,
1726,
1744,
1904,
1922,

162,
100,
52,
19,
2,
1,
15,
44,
89,
149,
223,
311,
412,
525,
650,
786,
932,
1085,
1247,
1414,
1586,
1762,
1939,

155,
94,
48,
17,
1,
1,
17,
48,
94,
155,
231,
320,
423,
537,
664,
800,
947,
1101,
1263,
1431,
1603,
1779,
1957,

149,
89,
44,
15,
1,
2,
19,
52,
100,
162,
239,
330,
433,
549,
677,
815,
962,
1117,
1280,
1448,
1621,
1797,
1975,

142,
84,
41,
13,
0,
3,
22,
56,
105,
169,
248,
340,
445,
562,
690,
829,
977,
1133,
1296,
1465,
1638,
1815,
1993,

135,
79,
37,
11,
0,
4,
25,
60,
111,
176,
256,
349,
456,
574,
704,
843,
992,
1149,
1313,
1482,
1656,
1833,
2011,

129,
74,
34,
9,
0,
6,
28,
65,
117,
184,
265,
360,
467,
586,
717,
858,
1008,
1165,
1330,
1499,
1673,
1850,
2029,

123,
69,
31,
7,
0,
7,
31,
69,
123,
191,
274,
370,
478,
599,
731,
872,
1023,
1181,
1346,
1517,
1691,
1868,
2047;

&------------------------------------------------------------------------

END

508,
595,
679,
757,
828,
888,
937,
972,
993,
999,
990,
966,
928,
877,
814,
742,
662,
578,

517,
603,
687,
764,
834,
894,
941,
975,
995,
999,
989,
963,
924,
871,
807,
734,
654,
569,

560,
646,
726,
800,
865,
919,
960,
987,
999,
996,
978,
945,
899,
840,
772,
695,
612,
526,

569,
654,
734,
807,
871,
924,
963,
989,
999,
995,
975,
941,
894,
834,
764,
687,
603,
517,

578, 586,
662, 671,
742, 750,
814, 821,
877, 883,
928, 933,
966, 969,
990, 992,
999,1000,
993, 992,
972, 969,
937, 933,
888, 883,
828, 821,
757, 750,
679, 671,
595, 586,
508, 500,

184,
117,
65,
28,
6,
0,
9,
34,
74,
129,
199,
283,
380,
490,
612,
744,
887,
1039,
1198,
1363,
.1534,
1709,
1886,

PaulBerg:PILE - A Languagefor SoundSynthesis


This content downloaded from 193.170.190.253 on Mon, 02 Mar 2015 16:48:50 UTC
All use subject to JSTOR Terms and Conditions

Page41

You might also like