When Is A Computer? (Part 4)
Andy Honeybone strides manfully through microfloppies, mini-memories and Van Neumann's architecture (eh?). What the best dressed keyboard player will be using for storage this year.
Dustbin contents have great forensic value. This is because much of a person's character can be revealed from his rubbish. In a similar way, the pockets of a musician can contain clues to his chosen instrument.
A drum key or plectrum wouldn't provide much of a challenge to a would-be sleuth, but how about a Chinagraph pencil and throat lozenges? Odds on it's a producer. Cable clamps from XLR connectors would identify a lazy engineer and Elastoplast could give away a bass player.
Within a year it should be safe to pin 'keyboard player' on someone found with a pocketful of microfloppies. It may sound painful but the microfloppy is the latest way of carrying digital information around. Like its brothers, the eight and five and a quarter mini floppies, the microfloppy is a disc of magnetically coated material which can be spun within a protective outer case.
The difference is that the microfloppy is housed in rigid plastic and has a sliding shutter over the window through which the read/write head makes contact with the delicate surface. This ruggedness combined with its small size (about 3.5in square) makes the microfloppy definitely pocket-sized and more like something capable of standing up to stage use.
At present, few musical instruments need to use any type of floppy disc for voice or sequence storage, but the Fairlight and Emulator are showing the way ahead. So why are they necessary? From the previous articles we have seen how, in an instrument such as an analogue polyphonic synthesiser, the internal computer organises data from the front panel and memory and sends control signals to the sound producing circuitry. This isn't a very demanding task and there are usually enough voice memories to store most of the useful sound repertoire of the instrument. In this application the computer has only one function and this is never likely to be changed.
A Computer Musical Instrument, sur l'autre main, like the Fairlight or Alpha Syntauri/Apple, demands that you can run a whole range of programs such as waveform editors, sequence editors, music composition languages etc, etc, and most importantly, utility programs which do not yet exist!
This demands a great deal of memory, and when storage for the infinite possibilities of sound sampling is added, the sum comes to more than the overworked micro can handle. By using a floppy disc or some other form of backing store, the program or voice of interest can be loaded into the computer's limited memory area to run until you decide to load something different.
Apart from having a fair sized capacity, floppy discs are very much quicker in operation than using cassette tapes. Another advantage is that any improvements made to the program can be issued as a software update on a new disc and your instrument becomes this year's model without you lifting a screwdriver.
In case you think this sounds too good to be true, software updates don't come cheap.
Computer memory holds two separate entities: the program and data. In most microcomputer designs these are not kept apart (Von Neumann architecture). Memory can be thought of as a collection of pigeon holes each with an exclusive address (like 1, 47 or 19745, rather than Beverly Hills) which is the residence of a 'word'. Computer people like to say word when they mean number.
When power is first applied to a microprocessor it calls up a certain address (usually zero) and sees what word is there. These words are coded instructions and they usually manipulate the contents of other memory addresses (data).
When the first instruction has been executed, the microprocessor looks at address location 1, carries out the instruction coded there, and then looks in address location 2, and so on.
Some instructions are more than one word long and some may cause the microprocessor to jump and start executing at a different address. If the microcomputer is fitted with a disc drive then a bootstrap loader program will be activated at power-up which will cause the main program to be downloaded from disc and then executed.
The speed at which the instructions are carried out is determined by a high frequency crystal clock oscillator. The actual fabrication process used to make the microprocessor dictates the frequency limit, but we're talking in the range 1-8 million cycles per second (upper limit of hearing is about 18,000). An instruction usually takes several clock cycles to complete, but even so, that's pretty fast.
One of the most simple ways to make a microprocessor produce musical tones is to utilise this instruction execution delay to set the on and off time of a single bit on an output port. A port is a memory address location which is accessible to the outside world. By creating a loop of 'do nothing' instructions, longer delay times can be created.
One cycle of a square wave would be produced by a program which sets the output bit high, pauses for the length of the delay, sets the output bit low and finally pauses again. If the program was repeated endlessly we would have a musical waveform at a frequency related to the length of the delay. A shorter delay gives a higher frequency and so a list of suitable delays can be worked out to give a chromatic scale. You can probably see that there is no easy way of incorporating a tuning control — such is digital. A drift-free frequency is great unless you want to move it!
It would be economically crazy to tie up a microprocessor just to generate a single frequency. What is needed are frequency generating peripherals which the micro can control. These take the form of programmable counter/timers which are very complex and can operate in several modes. All the micro does is select which mode is required and then load a large number into the chip. The counter/timer then begins merrily subtracting one from that number every time it is clocked from a master oscillator.
When zero is reached the counter clears its output line, reloads the number and repeats the process. The principle is the same as in the previous example but the resulting output frequency is much easier to establish because it relates directly to the count-down number. It also frees the microprocessor to supervise other counter/timers for polyphonic applications. This scheme could be the basis of a Digitally Controlled Oscillator (DCO), although some extra electronics would be required to convert the hollow sounding square wave produced into something more musically interesting.
Both the previous approaches have forced the micro to become an oscillator or an oscillator bank. Although this eliminates drift and tuning problems it does not really unleash the 'power of the micro' (as we technical writers like to say at least once an issue). The all-digital way requires lots more maths but that's what computers are good at.
Sampling theory is used again but this time in reverse. A clock oscillator at twice the frequency of the highest harmonic we want to reproduce is used as a reference input. For each clock pulse received, the micro has to work out what the amplitude of each of the voices would be at the instant, then sum them and feed the result to a digital to analogue converter.
After filtering to remove the clock frequency, we are left with an audio signal which appears to sound as though the oscillators actually existed. When you think that all the envelope and modulation effects have to be calculated as well, then it's amazing that the micro can get through all those sums before the next clock pulse arrives.
This speed limitation chops the possible bandwidth down and is noticeable on relatively slow computers such as the Apple. The sound can be very dull with 5kHz as the highest frequency component.
There are many ways to make the computer faster, and they all have expense in common. Firstly, you can jack up the system's clock rate and pay for a premium grade microprocessor. This won't give you a fantastic improvement and could land you in a lot of trouble. Any other suggestions? Try another type of microprocessor. The historic 8080 and 6800 have g now been superseded by the Z80 and the 6809 models. If these new boys can do a job in one instruction that would otherwise take two or three, then you're winning. Sobering thought of the month: the Fairlight uses 6800s.
Still not fast enough? If you're absolutely positive that your program is totally efficient and economically coded then you have two ways left open to you. Number one is to go multiprocessing, number two is to use a microprocessor which operates on double-length words (16 bit).
Multiprocessing is a technique where various functions are hived off from the main processor and given a 'brain' of their own. These slaves communicate with each other and the master processor by passing 'tokens' in shared memory areas. Because the extra processors usually cost less than the carrying handle of the instrument they are part of, the technique is very cost-effective. The keyboard controller is a prime target for its own microprocessor as are digital voice channels. The speed advantage comes from each processor doing less.
Until a few years ago, the most popular general purpose microprocessors were characterised by having an 8 bit data bus. This means that all information passing to or from the processor was in the form of a number ranging from 0 to 255. Handling larger numbers required fetching them in lumps and wasting lots of instructions borrowing and carrying ones, and checking for overflow. Faster arithmetic results from using a processor capable of biting off man-sized 16 bit chunks of data, and having an instruction set which takes advantage of the extra information presented.
The Neve Digital Signal Processing (DSP) desk is the world's first example of a totally digital mixing console and uses both 16 bit microprocessors and multiprocessing. You may recall that a resolution of one part in 65,000 is necessary for quality audio digitisation, and this just so happens to correspond to the value represented by 16 bits. Each channel of the Neve mixer has its own 16 bit micro to perform the sound treatments. The overall addition which corresponds to channel mixing is performed by a 24 bit processor. Crumbs!