Part two of last month's feature on the BBC Envelope command has been held over to allow this review to appear first.
Another micro attracts Gary Herman's critical attentions
The Acorn Electron — from the company which brought you the BBC Micro — is, like its celebrated predecessor, about as easy to catch as a cold in a Turkish bath. Acorn have something of a reputation for making their customers wait, and the Electron does nothing to diminish it.
Electron-owners will know what they they've got — essentially a stripped-down version of the BBC computer. The machine is small and solid-looking, with a proper keyboard that is almost as crowded as the Sinclair Spectrum's since it crams in all the BBC's key functions (except shift-lock) plus single-keystroke word entry on a dozen or so fewer keys. In fact, the Electron could be described as a compromise between a Spectrum and a BBC Micro — in both price and performance.
While the Electron uses BBC BASIC, it is considerably slower than its elder brother and it has limited facilities for sound generation, graphics and expansion. In short — and curiously for a new microcomputer — the Electron takes a step or two back from the standard of excellence set by the BBC Micro.
There is no particular advantage in buying an Electron for £200 when serious applications will require the purchase of expensive add-ons. The machine's self-contained music features are woeful compared to any other similarly priced computer. Technically, the reason for the machine's shortcomings has to do with the way in which Acorn implemented its decision to produce a BBC-compatible machine at around half the cost. Much of the BBC's hardware had to be sacrificed to achieve this end — including most of the interfaces, the Teletext character-generator and the 74689 sound generator. In the Electron, one large chip (a ULA or uncommitted logic array) takes on the job of video and sound generation, cassette input/output and logic-gating. Thus, while the Electron's hardware is an advance on the BBC's in strict engineering terms, in functional terms the reverse applies.
Sounds are produced, as with the BBC, through an on-board loudspeaker by use of the BASIC commands SOUND and ENVELOPE. Superficially, these commands are identical to the sound commands on the BBC — but appearances are deceptive.
For one thing, there are only two channels available to the user — one for music and one for noise. Then there is no facility for controlling amplitude envelopes using the ENVELOPE command — ADSR parameters are fixed. These two deficiencies combine to seriously limit the musical applications of the computer.
The two sound commands use the BBC syntax:
In practice, C (the channel number) is only 0 (noise) or 1 (music) and the last six parameters of ENVELOPE are set to 0 since there is no control over amplitude envelopes. Using the SOUND command alone, C sets channel, A sets amplitude (from 0 to - 15), P sets pitch (from 0 to 255, increasing in integer steps of a quarter semitone and covering just over five octaves) and D sets duration (from 0 to 254, increasing in integer steps of 0.05 seconds with - 1 and 255 playing a note of indefinite length).
The SOUND command, then, is pretty standard, offering simple control of pitch or noise quality (using channel 0 and setting P to a value between 0 and 7). There is only one real problem and that is fairly easy to correct. Despite the apparent simplicity of the pitch setting (just add 48 to go up an octave), 'tuning' errors begin to creep in as you move to the highest notes which can, of course, be numerically adjusted.
Unlike SOUND, ENVELOPE has no real equivalent on any other micro apart from the BBC. It is an inordinately complicated command on the BBC and only a little easier to use and understand on the Electron.
The first parameter following ENVELOPE specifies which SOUND command it relates to. Setting the SOUND command, say, to SOUND 1,3,101,10 will call envelope 3. Thus, 3 is the first parameter following the ENVELOPE command relating to this SOUND command. There are 16 possible envelopes — numbered one to 16. The second parameter following ENVELOPE determines the length of each step in the envelope (in hundredths of a second) and turns on or off auto-repeat.
A number from 0 to 127 means that the pitch envelope will repeat — if necessary — for the total duration of a note (as given by SOUND). A number between 128 and 255 means that the pitch envelope will only operate for as long as the ENVELOPE command specifies and will not repeat should the sound last longer than its envelope. Confusing, is it not?
SOUND 1,1,53,40 specifies a sound of two seconds duration (40 X 0.05 seconds). ENVELOPE, 1,10... specifies that each step in the envelope for that two-second sound will be 10 hundredths of a second long — or one tenth of a second. So, there can be at most 20 steps in the two-second sound. Now we come to the hard bit, the next parameters following the ENVELOPE command break the sound up into three parts and specify how the pitch will change (up or down by so many quarter semitones) for each step in each of the three parts and then specify how many steps there are to be in each of the three parts.
10 ENVELOPE 2,25,0,16,12,1,1,1,0,0,0,0,0,0
20 SOUND 1,2,53,120
gives a most interesting effect: three distinct notes repeating for a period of six seconds. The total duration of six seconds is given by the figure '120' in line 20 (interpreted as 120*0.05 seconds). Line 20 also specifies an initial pitch value of 53 — which is middle C — and opens channel 1 and calls envelope 2. Envelope 2 is defined in line 10. Each step lasts 25*0.01 seconds (which is a quarter of a second) and there is one step only in each of the three sections of the envelope (the '... ,1,1,1, ...' in the command). The first section shows no change in the specified pitch (indicated by the first zero in the ENVELOPE command). Therefore, middle C is played for a quarter second. After that, the pitch rises by 16 units for the second section: E above middle C is played for a quarter second. Finally, the pitch rises by a further 12 units: G above middle C is played for a quarter second. This C-E-G arpeggio lasts for a total of 0.75 seconds, and since .25 (the step duration parameter) is less than 128 it repeats until six seconds is up (which is eight times in all). Replacing 25 by 152 (127 + 25) plays C for a quarter second, E for a quarter second and G for 5.5 seconds — the pitch envelope does not repeat.
It is clear that ENVELOPE — even in the Electron's slimmed-down version — is a powerful command, allowing vibrato, siren effects and pitch bending as well as crude arpeggios like the above. Only practice will make perfect, because no matter what is said, the commands are very complicated. Since this is a review of the Electron, however I must conclude by saying-that such practice will be immeasurably more rewarding, musically, on a BBC than on an Electron.
Feature by Gary Herman
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!