Magazine Archive

Home -> Magazines -> Issues -> Articles in this issue -> View


Computer voltage control for up to eight synths, and much more!


  • Microcomputer Peripheral for Music Applications
  • Microcomposing!
  • Polyphonic Sequencing!
  • Patch Programming!
  • Dynamic Rhythm Control!

The use of computers in electronic music production can be divided into roughly three categories.

1) Digital recording: where the music is digitised, stored, perhaps edited and converted back to an audio signal using a DAC. This requires fast audio convertors and lots of storage (about 540 bits/sec of music).

2) Direct digital synthesis: where the sound is calculated from various formulae, perhaps Fourier components or Walsh functions. In this case the speed of the computer is paramount since we require about 40K sample/per sec for a 15kHz bandwidth.

3) Control: here the computer supplies sound generating equipment e.g. synthesisers or sound chips with parameters to alter the sound. The common denominator of most synthesisers is that they are voltage controlled and that the voltages vary fairly slowly in computer terms.

Since the average personal computer is either not fast enough or has insufficient storage, method (3) at the moment has the most to offer the home musician. Certainly using a computer as the controller/supervisor element in an electronic music system can be very rewarding since the computer can be regarded as a logic board whose wires are the program.

There exists a definite relationship between logic hardware and computer software to the point that they are almost functionally indistinguishable. This being the case all we require is a general hardware system upon which we superimpose the 'personalities' of different programs to perform different tasks.

The OMDAC (Octal Music Digital to Analogue Convertor) is a step in this direction, it offers a very general layout of digital to analogue conversion, sample and holds, a multiplexer and digital in/out channels. The function of the system is under software control and be configured to suit specific requirements. For example OMDAC could be used to provide an eight channel polyphonic sequencer, a drum machine controller with programmable dynamics or memory storage for 1,000's of voltage controlled parameters in banks of eight. Four external clocks or switches can be connected to synchronise software processes. The ADC provides a means to input quantised control voltages for storage or modification.

Figure 1. OMDAC block diagram.

Circuit Description

The original test circuit was implemented on a 6502 based system, the ACORN ATOM, but provision has been made for SPECTRUM compatibility simply by changing three PCB links. Several ATOM programs have been included to demonstrate the capabilities of the OMDAC and the equivalent SPECTRUM programs are currently under development and will be published soon. In addition the OMDAC is expected to form the basis for several SOFTMUSIC features and new software such as a polysequencer will appear in forthcoming issues.

Layout of the OMDAC can be seen in Figure 1, the block diagram. In order to make full use of the OMDAC it is necessary to understand the relationship between various functional blocks.

The ADC and PIA (Parallel Interface Adaptor) are connected directly to the computer's data buss and selected by decoding its address lines. The PIA has 3 ports which are configured as shown. Port A sends data to the DAC, Port B provides trigger outputs while Port C is split to control the multiplexer and allow user connections into the system.

Eight sample and holds are used to store the multiplexed voltages and provide 8 control voltages. LEDs give a visual indication of the trigger status or can be configured to display program information.

A temperature compensated reference voltage is provided which has presets allowing the ADC and DAC to be 'musically scaled' to 1V/Octave.

Figure 2. OMDAC circuit diagram.
(Click image for higher resolution version)

A complete circuit diagram showing the system in more detail is given in Figure 2. The ATOM and the SPECTRUM differ radically in the sense that the ATOM has memory mapped I/O whereas the SPECTRUM uses special I/O commands. Table 1 gives the relevant addresses at which the ADC and PIA appear relative to both machines. Although the address decoding is tailored for the ATOM and SPECTRUM it would be a simple matter to wire the inputs of IC's 15, 16 and 17 differently to the address lines of other machines to decode their address spaces.

The ADC is really separate from the rest of the circuit since it only shares the data bus and the RD signal. When the circuit is powered up TR1 delivers an initial 'Start Conversion' pulse to the ADC and thereafter the ADC continually quantises the voltage appearing at the 'Analogue In' pin. Conversion data can be read by the computer by executing a PEEK (ATOM) or an IN (SPECTRUM) statement at the address decoded for the ADC.

Op Amp, IC2, buffers and limits the external input voltage to a safe range of (0-5.6)v which gives just over 5 octaves. Inserting a jack plug into the 'Analogue Input' disconnects the internally wired parameter control from the ADC.

The rest of the circuit is controlled by the 8255 PIA. This has three I/O registers which are configured by a Control Word register.

Table 2 gives the value of the control register for various Port configurations. It is important that this register is set before any attempt is made to use the Ports.

Port A is used as an output since it supplies the DAC with digital data. The output from the DAC is buffered and scaled by Op Amp IC6 and fed to a multiplexer. The multiplexer is an electronic switch which connects it's input, in this case the DAC, to one of eight outputs selected by a three bit address (23=8). Port C is divided into two groups. Bits 0-2 control the address of the multiplexer and determine which sample and hold the DAC voltage is routed. To prevent glitches appearing on the output channels the multiplexer has an Inhibit control. When this is HI all channels are off and the DAC voltages are blocked from the sample and holds regardless of the address selected. Bit 3 of Port C controls the Inhibit and it's proper use is very important during rapid scanning of the sample and holds.

Figure 3. Inhibit control timing tor the multiplexer.

The rule is very simple: when changing the multiplexer address
a) bring the Inhibit HI, i.e. set bit 4 of PC.
b) change the address without changing bit 4 of PC.
c) bring the Inhibit LO i.e. reset bit 4 of PC.

This is shown in Figure 3 and is quite easily achieved by simple programming.

The remaining 4 bits of Port C PC4-PC7 can be used as general digital I/O channels. Port C is the only port that can be split with a dual I/O function by setting the appropriate control word. This means that we can use the lower four bits to control the multiplexer and still accept or output data with the remaining top bits.

Port B must be configured as an output and will usually be used to trigger analogue modules such as envelope shapers. It is connected to buffers with pull up resistors so that the outputs have a 12v ON state suitable for synthesiser triggers. Obviously this is no longer TTL compatible. The LED's mirror the output of this port and can be useful for displaying ADC data or trigger outputs.

OMDAC with The Acorn Atom.

OMDAC with the Sinclair Spectrum.

Figure 4. Component overlay for the OMDAC.
(Click image for higher resolution version)


Assembly should be fairly straight forward since all the parts, apart from the transformer, are mounted on a PCB. Using the component overlay shown in Figure 4, the links, IC sockets and the molex connectors should be soldered in first. Next mount the resistors, capacitors and the presets. The diodes, three regulators and TR1 can then be soldered in and the circuit powered up to check that the correct voltages are supplied to the IC sockets. If every thing is OK insert the IC's with the power off taking extra care with the 40 pin 8255 PIA. All that remains is to house the PCB in a suitable case and wire up the pot, sockets and LED's as shown in the photographs.

The completed PCB.

Testing and Calibration

Before calibration first check that the OMDAC is working properly. The ADC can be tested by running a simple single-line program.

ATOM 10 DO P.?5000;U.0
SPECTRUM 10 PRINT AT 0,0; IN 31; " ": GOTO 10

This will cause the current conversion to printed on the screen. If all is well then the parameter pot should sweep the value printed through the range of 0-255. The ADC can be calibrated by injecting a known reference voltage into the 'Analogue Input' and adjusting RV1 until the desired number is printed on the screen. The preset RV2 is provided to allow for an offset on the external voltage.

The ADC can be used to test the PIA. We must send a control word to the CR to configure the Port. Next PEEK (or equivalent) the value of the ADC and send to PB. This should result in the digital code of the current version being displayed on the LED's.

ATOM 10 ?#7003=#80
20 DO ?#7001=#5000;U.0
SPECTRUM 10 OUT 255,128
20 OUT 191, IN 31 : GOTO 20

The sample and hold channels can be tested by sending the ADC value to the DAC and supplying addresses to multiplexer via PC. A control voltage that varies directly with the ADC should appear on the selected channel.

ATOM 10 ?#7003=#80
20 ?#7002=0
30 DO ?#7000=?#5000;U.0
SPECTRUM 10 OUT 255, 128
20 OUT 223, 0
30 OUT 159, IN 31 : GOTO 20

The DAC can be calibrated by sending a suitable number via one of the output channels and adjusting RV2 until the desired voltage is obtained. Preset RV5 can be used to add a small negative offset voltage of about 1.2v to the DAC output. This is useful since the DAC generates only positive voltages.

Internal view of the OMDAC.

Figure 5 Power Supply circuit diagram.

Acorn Atom application programs.
(Click image for higher resolution version)
Acorn Atom application programs.
(Click image for higher resolution version)

Acorn Atom application programs.
(Click image for higher resolution version)


Three complete ATOM programs are given to illustrate channel scanning and to demonstrate the possibilities of the OMDAC. The 8 channel sawtooth program outputs the same low frequency 256 step sawtooth waveform via all the sample and holds. A much more useful program is the Interrupt Scan. The program assembles a short routine which is pointed to by the Interrupt request (IRQ) vector set by lines 70 and 80. Included in the program is an 8 entry table starting at location #3b40. When the routine is triggered by an IRQ the values stored in the table are multiplexed to their corresponding output channels, 1-1 2-2 etc. A suitable circuit for generating IRQ pulses was given in Softmuse article (Feb. '83). This should be connected to pin 28a of the ATOM connector.

The interrupt routine has many applications since we can develop programs to fill the table, perhaps from music keyboard data, and have the sample and holds continuously refreshed by an external and transparent interrupt.

'Front Panel' program display.

The 'Front Panel' program is much more self contained. It presents the user with a digital readout showing the value being scanned on each of the sample and holds, see photo. By selecting a number (1-8) on the ATOM keyboard we can open a direct link between the ADC and any of the output channels. The current conversion value of the ADC is also mirrored on the LED's. A good use for this program is to connect each of the eight output channels to a different voltage controlled parameter on a synthesiser and set them up using the ADC parameter control. The 0-63 range should be used since this will result in the ADC control stepping in semitones (provided the system has been calibrated for 1V/Octave). Every twelve steps should give rise to an octave.

OMDAC offers endless possibilities and can form the basis of many computer controlled music systems for little expense and a little programming effort.

Table 1. Port Addresses.

Atom Spectrum Selection
#5000 31 ADC
#7000 159 Port A
#7001 191 Port B
#7002 223 Port C
#7003 255 Control Word

Table 2. Definition of 8255 Port control, Mode 0.

Control Word Ports
Dec Hex A B C(Upper) C( lower)
131 83 OUT IN OUT IN
137 89 OUT OUT IN IN
145 91 IN OUT OUT IN
146 92 IN IN OUT OUT
147 93 IN IN OUT IN
152 98 IN OUT IN OUT
153 99 IN OUT IN IN
155 9B IN IN IN IN


Resistors — all ¼W, 5% carbon film
R1 100R
R2 4k7
R3,4 220R 2 off
R5 2k7
R6,7,8,9,11,18,20 10k 7 off
R10,13,14 15k 3 off
R12,19 100k 2 off
R15,16,17 5k1 3 off
R21,22,23-30 470R 10 off
R31 1k
SIP1,2 4k7 Resistor package 2 off

RV1,2 1k 15 turn pre-set 2 off
RV3 10k lin
RV4.5 10k pre-set 2 off

C1 100pF ceramic
C2 1uF 16V PCB mounting
C3 150pF ceramic
C4,6-18,20,22,25 100nF polycarbonate 17 off
C5 10nF polycarbonate
C19 2200uF 25V axial
C21,23,26 10uF 16V PCB mounting 3 off
C24 1000uF 25V axial

D1,2 1N4148 2 off
D3 5V6 400mW zener
D4,5 5V1 400mW zener 2 off
D6-9 1N4001 4 off
D10-17 LED 8 off
TR1 BC108B
IC1 LM723
IC2,6 1458 2 off
IC3 ADC0804
IC4 INS8255
IC5 DAC0801
IC7 4051
IC8,9,10,11 TL082 4 off
IC12,15 74LS04 2 off
IC13,14 7407 2 off
IC16,17 74LS30 2 off
IC18 7812, 12V, 1A
IC19 7805, 5V, 1A
IC20 79L12 -12V, 100mA

JK1 ¼" jack socket with DPDT
JK2-25 3.5mm open jack socket 24 off
LED holders 8 off
T1 12-0-12 500mA transformer
F1 1A 20mm fuse
20mm fuseholder
SW1 SPST mains switch
European mains connector, plug and socket 3A mains cable
10 way Minicon latch plug 6 off
10 way Minicon latch housing 6 off
5 way Minicon latch plug
5 way Minicon latch housing
20 way ribbon cable, 1M
6BA nuts and bolts
Connector to suit computer IC sockets

The PCB for the OMDAC is available from E&MM, (Contact Details) at £5.95 inc. VAT and P&P. Please order as: OMDAC PCB.

More from these topics

Browse by Topic:


Construction / Build

Electronics / Build

Previous Article in this issue

Industry Profile - Simmons Electronics

Electronics & Music Maker - Copyright: Music Maker Publications (UK), Future Publishing.


Electronics & Music Maker - Jun 1983

Previous article in this issue:

> Industry Profile - Simmons E...

Help Support The Things You Love

mu:zines is the result of thousands of hours of effort, and will require many thousands more going forward to reach our goals of getting all this content online.

If you value this resource, you can support this project - it really helps!

Donations for December 2021
Issues donated this month: 0

New issues that have been donated or scanned for us this month.

Funds donated this month: £4.00

All donations and support are gratefully appreciated - thank you.

Please Contribute to mu:zines by supplying magazines, scanning or donating funds. Thanks!

Monetary donations go towards site running costs, and the occasional coffee for me if there's anything left over!

Small Print

Terms of usePrivacy