Page  00000001 THE FIRST BUCHLA 300 SERIES ELECTRIC MUSIC BOX by Dale Millen University of Arkansas 201 Music Building Fayetteville, AR 72701 dmillen@ comp.uark.edu ABSTRACT: This paper is about the planning stages, the design features, the programming language, and the musical composition applications of the first Buchla 300 Series Synthesizer which was built in 1977. The instrument was designed to be operated in a digitally controlled analog mode, or in a manually controlled analog mode, or in a combination mode using both digital and manual control. Examples of programming for the synthesizer's digital controller written in the Patch IV language are given including programs that implement voltage functions, sequences, and logical choices. In 1974, the electronic music studio at the University of Arkansas consisted mainly of an ElectroComp 101 synthesizer and a four-track tape recorder. An electronic music studio was to be included in a new music building and as early as 1974 I began to plan for a large modular synthesizer for this studio. The earliest document I have from the planning stage for this instrument is a letter from Donald Buchla dated November 26, 1974, apparently in response to a letter from me requesting information and catalogs of current Buchla instrument modules. Buchla's letter states that June would be a good time for a visit to Berkeley. I am fairly certain that I did visit Buchla in Berkeley around June 1975 in regard to obtaining a Buchla instrument for the University of Arkansas although I have no specific memory of a meeting. This was immediately after my study of electronic music with Vladimir Ussachevsky at Columbia University in the spring of 1975. The classical tape studio as developed by Ussachevsky would also be a part of my new studio at the University of Arkansas. The next document I have is a hand written page by Donald Buchla, dated November 1975, suggesting possible changes to a 200 series system "as proposed" and suggestions for a 300 series system. On the back of this document in my hand writing is an outline of a system of proposed units with 300 level numbers. As the 300 series modules were developed, these proposed units evolved into units with other numbers or were apparently dropped. I also have a document which is a Buchla and Associates bid on a 300 series system to the University of Arkansas. This bid list has many units crossed off, with replacements for some indicated by Donald Buchla. The 364 function generator appears on this page as a later comment, in my hand writing, as a replacement for earlier 320, 318, and 381 interfaces. Total bid price for this 300 system was $30,095. Notes written by me dated March 17, 1977, from a phone conversation with Buchla detail changes in the proposed 300 system. There are now to be four dual digitally controlled Model 259 oscillators. The left side of the 259 was to have a variety of basic waveforms and would be able to modulate the right side of the oscillator to produce complex waveforms at the final oscillator output on the right side. The 259 oscillators would have an eight octave range with 2.4 volts per octave. The oscillators were to be capable of amplitude, frequency and timbre modulation and would have a phase lock feature between the two sides. The comment, "Add Function Processor 364", is written in ink on this document as an added feature to the system. Four quad envelope generators (sixteen total) and four quad 292 gates are now to be in the system. There are still differences in the actual final system and this document. There are some references to Patch IV in this document. This phone conversation was possibly the first mention of the Patch IV programming language to me. My notes mention a stimulus field and a higher level field, a definition field, that would permit a stimulus to modify an existing patch. The final module unit configuration for the Buchla 300 Series Music Box for the University of Arkansas Electronic Music Studio was as follows: Kinesthetic Input Port Model 221 (touch keyboard) Dual Voltage Controlled Filter Model 291 (4) Programmable Complex Waveform Generator (2) Dual Mixer Model 206 Model 259 Triple Envelope Follower Model 230 (2) Quad Function Generator Model 281 Quad Preamplifier Model 270 (4) Quad Lopass Gate Model 292 300 Controller/Processor Source of Uncertainty Model 266 364 Multiple Arbitrary Function Generator Dual Voltage Processor Model 257 329-8 Patchbay and 359 Oscillator Interface (2) Frequency Shifter Model 285 Case for the instrument - Model 203 cabinet I first saw this 300 series instrument while attending the Computer Music Conference in San Diego in the fall of 1977. At that time, commercial companies were not allowed to exhibit at the conferences. I went with a group of

Page  00000002 persons that included VIladimir Ussachevsky and Joel Chadabe to a motel where Donald Buchla demonstrated some of the features of the instrument. The Emery Air Freight shipping receipt shows the shipping date to the University of Arkansas as June 29, 1978. The cost of the instrument was over $25,000 including subsequent updates. The 300 processor was updated later with a new video board and PROM system so that the programming language did not have to be loaded from tape but could be loaded by pushing the 'M' button on the front of the processor. A note written by Buchla on top of the updated 300 processor indicated that Patch V could be loaded by pushing the 'M' button. The 300 series was preceded by a 400 series digital synthesizer. The 300 series was a return to an analog modular synthesizer with modules which could be physically patched together but also a synthesizer which provided digital control of certain hardware such as the 259 analog oscillators. The outputs from the digitally controlled 364 Function Generator could be patched to the 200 series module inputs on the instrument. The instrument featured digital control of pitch, function shapes, modulation, timbre, sequences, and logical choices in sequences, but with patchable, hands on, analog capability. Signal inputs and outputs were separate in type from control voltage inputs and outputs on Buchla instruments. The 300 Series Controller/Processor was programmed using the 221 Kinesthetic Input Port touch keyboard which could be switched to a programming mode or to a performance mode by the user. The 221 had 50 real touch sensitive keys which could function in the +0 or in the +50 performance modes. Virtual keys not existing on the 221 could also be used in programming in Patch IV. Special keys for programming in the Patch IV language included CMND, KEY, SEQ, VOLT, FUNC, JUMP, SKIP, INTP, and SET. The 359 Interface to the 259 Oscillators provided for digital control of frequency, timbre, modulation, waveform and other 259 oscillator features. The 364 Function Generator outputs 47 - 63 were dedicated outputs connected to the 259 oscillators. Outputs 00 - 47 from the 364 were available on the 329 patchbay for patching to voltage control inputs on the 200 series modules. These voltage functions could be applied to various aspects of sound including pitch, timbre, dynamic envelopes, and modulation indexes. The 300 series had its own digital processor/controller unit. This unit was designed before the personal computer assumed the controlling function for many computer music systems and it preceded the MIDI standard. The Patch IV programming language was unique to the 300 series processor. Patch IV is described in the reference manual, written by D. N. Crowe, as "a real-time interactive control language for Buchla Series 300 Electronic Musical Instruments." Patch IV was written in 8080 assembly language, and required 28 K bytes of RAM and 8 K of ROM. The Buchla Model 221 Kinesthetic Input Port was used to program the 300 Controller and to initiate or trigger performance events. Crowe describes Patch IV as "a stimulus driven system with potential responses initially determined by the contents of a 'patch table', and complex time dependent responses determined by the contents of a 'sequence table' and a 'function table'." (Crowe 1979) With the update to Patch V in PROM, the user pressed the "M" button on the 300 processor to initiate a memory check and bring up the patch table display on the monitor screen. The 221 touch keyboard had to be reset each time at this point with the reset toggle switch. The user could then touch CRTL on the 221 to enter the programming mode. The cursor controls were used to position the cursor on the display. A Patch IV patch had four fields, Definition, Stimulus, Address, and Data. These fields were displayed on the monitor as follows: DEF STM ADDRS DA Heading Line XXX XXX XXXXX XX Current Line The following mnematics could be entered in the definition field and in the stimulus field: KEY (KEY CLOSURE) KOO-KF9, RLS (KEY RELEASE) ROO-R99, PLS (PULSE) POO-P07 The following could be entered in the address field: VSM (VOLTAGE SOURCE/MULTIPLIER), VLT VOLTAGE), KEY (KEY CLOSURE), SET (SET COUNTER), DTA (DATA), SEQ (SEQUENCE), SUB (SUBROUTINE), VFN (VOLTAGE FUNCTION) The d~efinition field~ could be blank or it could contain a stimulus (KEY, RLS, or PLS) which had~ to be received before the remaining three fields, stimulus, address, and data, were executed by Patch IV. This feature enabled the user to reuse key and pulse numbers in successive patches by redefining what they did. The stimulus, address, and data fields were the body of the patch. When the stimulus in that field was received by Patch IV, the data specified in the data field was sent to the address in the address field. The three kinds of stimuli in Patch IV were as follows: KEY Closures KOO-KF9, KEY Releases ROO-R99, PULSES POO-P07 Pulses had a range of P00 to P07. There were eight pulse outputs on the patchbay which could be patched to pulse inputs on various modules. The address told Patch IV what to do when the required stimulus was received. The address was a KEY, a PULSE, a DATA part to receive data, a SEQUENCE to be started or stopped, a COUNTER to be set, a VOLTAGE to be output, a VOLTAGE FUNCTION to be started, a VOLTAGE SOURCE/MULTIPLIER to be set, or a SUBROUTINE to be called. Data was sent to the 259 oscillators using the DTA address identifier. This data

Page  00000003 specified waveshape, range, frequency, phase-lock, modulation type, pitch offset, symmetry and order of harmonics for the oscillators. Sequences were defined in the sequence table and could be started and stopped by the following example of Patch IV code: STM ADDRS DA KOO SEQ 1 01 (Start sequence) KO1 SEQ 1 FE (Stop sequence) KEY 00 starts sequence 1 at line 01 in the sequence table. KEY 01 stops sequence 1 by sending the program to line FE in the sequence table which contains a STOP in the ACTION field. The normal voltage range for the Buchla 300 series was 0.0 to 10.0 volts. 12.7 volts could be used in specifying oscillator pitch and frequency. Voltage values from 0.0 to 9.9 were expressed as 00 to 99. A 10.0 voltage was expressed as AO, and a 12.7 voltage as C7. There were 64 voltage outputs on the 364 Function Generator which were routed to the Model 329 Interface. There were 64 voltage port identifiers for the 48 voltage outputs available on the patchbay with addresses VLTOO - VLT47 plus the sixteen outputs with addresses VLT48 - VLT63 which were dedicated to the 259 oscillators to control frequency, modulation index, pitch, and timbre from the 300 Controller/Processor. Voltage address 00 had voltage function VFNOO associated with it. Voltage functions were defined by a series of segments which were programmed into the function table. The function table was 256 lines in length, with line numbers written in hexadecimal, line 00 through line FF. The user could start a voltage function by sending the stimulus for the patch. The body of a voltage function patch consisted of a voltage function address and the line number in the data field where the function began, for example, VFN01. The VFN mnemonic was created by touching VLT and then FUNC on the touch keyboard. Control voltages were scaled so that.1 of a volt equaled a quarter tone in pitch and 2.4 volts equaled one octave. The 359 oscillator interface allowed the 259 oscillators to be tuned to 220 Hz by means of an autotune feature. A tuning patch was sent to the oscillators while the autotune feature was employed to tune the oscillators at A 220 using the voltage specified in the patch. K49 VLT 62 72 The above patch could be used to tune the principle oscillator number four to A 220 at 7.2 volts. Sequences were programmed in Patch IV in the sequence table display. Touching CMND SEQ caused the sequence table display to appear on the monitor screen. LN TIME ACT1 ACT2 ACT3 XX XX.XX XXXX XXXX XXXX There were a total of sixteen sequencers available. All sixteen shared the same 256 line sequence table. Each line had a line number ranging from 00 to FF written in hexadecimal. Sequences were started on a specific line number and proceeded until stopped. JUMP or SKIP commands could modify the order of execution. Line 00 was not used to begin the definition of a sequence since it was reserved for the special function of stepping through sequences by direct user stimulus. This is described in the manual under special data fields. When DATA 00 was specified as the object of a voltage function or sequence, that function or sequence was to be incremented. The sequence table fields were: line number (in hexadecimal), time field, action code 1, action code 2, action code 3. The time field specified the time that the sequencer would delay before performing the actions in the action fields. Times were in hundreths of seconds. Actual times in sequences and functions could be modified from the 221 touch keyboard by changing the analog clock control setting. The seven basic types of action codes that could appear in the action fields were STOP, SKIP, JUMP, SET, INCREMENT, DECREMENT, and TRIGGER. There were three global counters, A, B, and C, that were common to all the sixteen sequencers and three local counters for each sequencer, D, E, and F. Touching the SET key and then D and then 01 on the keyboard would set the local counter D to D=01 where the data field was a decimal number ranging from 00 to 99. The data value could be incremented or decremented by 1 and could be tested for equality to any value between 00 and 99. A conditional skip could be placed in action fields one or two. The user could program the skip by touching the SKIP key, then a letter representing a counter, then a data value for the counter skip value. Skip on local counter D equal to 20, in Patch IV, would appear as SD20. The manual states that "When a conditional SKIP is encountered the condition is tested, and if met, the subsequent action code is skipped. Conditional skips may only appear as actions in action codes 1 and 2. If the condition is not met, the next action code will be executed. Skips can test the status of keys or pulses, or the values of counters. " (Crowe 1979) Touching the INCR key and then D would result in INCD being entered into an action code slot to increment counter D. DCRD would decrement counter D. J 30 in an action code slot would result in a jump to line 30 of the sequence table.

Page  00000004 The following example is a Patch IV program which uses local counters and the SKIP and JUMP actions in the sequence table. LN 01 02 03 04 05 06 07 08 09 OA OB OC OD OE OF SEQUENCE TABLE TIME ACT1 ACT2 00.00 D=00 00.12 K55 K31 00.12 K51 K31 00.12 K56 K31 00.24 K52 K31 00.12 SD04 J02 00.00 STOP 00.00 STOP 00.00 E=00 00.00 K57 K31 00.12 K53 K31 00.24 K58 K31 00.12 K54 K31 00.12 SE08 JOA 00.00 STOP ACT3 INRD J09 INRE JOF PATCH TABLE KOO SEQ 1 01 (START Stimulus K01 SEQ 1 FE (STOP) K02 SEQ 2 09 (START Stimulus) K03 SEQ 2 FE (STOP) The tuning patch is defined as follows. K49 VLT62 72 (A 220) K49 VLT60 72 The pitches used are defined by patches similar to the following: K51 VLT62 74 (A#) K51 VLT60 74 (A#) K52 VLT62 76 (B) K52 VLT60 76 (B) The envelope function patch is: K31 VFNOO 01 The function for this envelope is defined in the function table beginning on line 01 as: LN TIME I VL CTRL 01 00.000 AO 02 00.100 I 00 STOP Voltage functions were generated by the 364 function generator to appear at any voltage output port on the 329 patchbay. A voltage function consisted of a series of line segments in the function table. A voltage segment consisted of a line number, a time field, an interpolate flag, a value field, and a control field. The line number was written in hexadecimal and ranged from 00 to FF. The time field was specified in lOOOths of a second with a range of 00.000 to 65.000 seconds. The time field gave the time for the voltage to reach the terminal value if the interpolate flag was set. It gave the length of time the value was to be held before going to the next line in the function table if the interpolate flag was not set. The value field gave the final value for the segment. It was entered in a mixed base hexadecimal form and had range of 00 to C7 (0 to 12.7 volts). The control field for the function table could be set to the blank, STOP, ENABLE, SUST, or J _ (JUMP). Functions ran until stopped. SUMMARY The Buchla 300 Series was capable of interactive performance as a part of an ensemble. Programmed sequences of events could be started or stopped by the performer controlling the synthesizer. Sequences could be stepped through one line at a time controlled by the performer's touch. Perhaps the compositional style most characteristic of the instrument was one that used a number of sequences which could run at the same time to result in complex and constantly evolving sound textures. The physical condition of the first Buchla 300 Series Music Box is very good. It shows little wear on the modules and on the case. The 300 Processor/Controller is operational at the twenty year mark (1998). Electronically, the instrument is in need of repair, the most critical need being the repair of the 259 oscillators. Only one of the four oscillators operates at near the original specifications at the present time. They should be restorable to original performance, however. Some of the outputs on the 259 Patchbay do not operate properly, including the PULSE outputs and a few of the voltage outputs. There are other small items that need repair. Only one of the quad spatial modulators on the 227 System Interface works with all four outputs. Being in relatively excellent condition after twenty years, the instrument is a good candidate for restoration and preservation as a part of the history of electronic music in the United States. References Crowe, D. N. 1979. Patch IV, A User's Guide to the Buchla 300 Series Electric Music Box, Buchla and Associates, Berkeley, CA. Millen, D. 1980. Buchla 300 Series Programming, Document written for class instruction.