Gary Herman turns a BBC-B into a keyboard and throws in some echoes for free
Echo and reverberation are not just musical spice or a garnish on the work produced by synthesists and computer musicians. On the contrary, they are integral to tone quality. The most basic kinds of electronic instruments often sound soulless and mechanical without reverb — tones jar and do not blend well with other instruments, transitions from note to note are jerky.
This programme essentially demonstrates the quality of reverb by adding it to simple monophonic sounds produced by the BBC computer. With varying degrees of reverb, the user can simulate audible echo, phasing, staccato and pizzicato. A moderate amount of reverb simply adds depth and body to the tones produced.
The programme is entirely self-contained — music being produced from the BBC's internal loudspeaker — unfortunately, the BBC has no audio output socket. The programme converts the computer into a real-time synthesizer — the keyboard being formed from the top two rows of character keys with 'TAB' as B below middle C, 'Q' as middle C, '2' as C sharp and so on up to '_' (A). The top row of keys (excluding '1', '4', '8' and '-') are black notes.
The red function keys allow you to change reverb parameters while playing: f1 and f1 increasing and decreasing 'delay'; f2 and f3 increasing and decreasing 'number of cycles'; f4 and f5 increasing and decreasing 'note duration'; and f6 to f9 increasing and decreasing 'decay constant'. These parameters are changed by playing a note while pressing the relevant function key. The figures are displayed on the screen.
The keyboard scale can be changed by altering the value of the variable BASE in line 20 — a feature which can be used to 'tune' the computer. The basic envelope of the notes is set by entering figures for peak amplitude (MAXVOL), sustain amplitude level (SUSVOL), attack-decay constant (AD) and sustain-release constant (SR). I have had to compromise with these parameters, which do not fully exploit the complexity of the BBC's envelope generating facility. The compromise seems to work and a little practice should reveal its quirks. The programme also asks whether you want to turn off the BBC's keyboard repeat feature or not (although this may not seem to make a big difference it does have an effect) and asks you if you want to use simple or complex envelopes — which brings us to an essential point.
Echo and reverb are complex phenomena. It would be possible and relatively easy just to play a note and repeat it after a given time interval. In fact, computers using programmable sound generators (PSGs) are ideally suited to such simple repetition. However, the effect would be unconvincing. 'Real' reverb involves variable delays, variable rates of decay for each echo and variable numbers of repetitions. It also involves subtle changes in tone quality between the original sound and its echoes. Once again, I've compromised by introducing the option of using 'complex' envelopes — which actually means using three slightly different envelopes (see lines 550 to 590). You might be able to achieve better results by altering the envelope parameters in lines 570 and 580. Then there is DELAY (see lines 330 and 350) which controls the interval between the three primary occurrences of the played note. The number of cycles (variable REPT) controls the number of times these three are repeated (see the FOR...NEXT loop in lines 300 and 380) — this is rather like setting the number of heads on tape delay system while DELAY sets their distance apart. The decay constant (variable K) effectively sets the rate at which the sound decays between cycles (see line 370) and note stretch (variable DUR) is the same as the BBC's envelope duration parameter (it specifies the length of each step in the envelope in hundredths of a second). Once again, a little experimentation in the handling of these variables might be worthwhile — as it stands, the programme is the result of only so much trial and error. Some trial inputs to this programme are given in the table below:
Feature by Gary Herman
Previous article in this issue:
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!
Please note: Our yearly hosting fees are due every March, so monetary donations are especially appreciated to help meet this cost. Thank you for your support!