Computer Drum Machine project
A multi-channel sequencer hardware/software project that among other things turns an old Soundmaker project into a drum machine.
Andrew Jeffers has modified an old ES&CM project to enable you to link a drum synth to a BBC micro; the result is a versatile drum machine.
When the drum synth project was originally published in ES&CM Oct '83, it had a design feature which allowed it to be externally triggered by positive pulses. Being an owner of a BBC model B micro, the idea came to me of linking the drum synth to my computer. The end result produced a simple, effective and versatile drum machine.
The computer controlled drum synth project consists of, the control software, the interface and the two voice drum synth. The software enables the drum synth to be programmed, by offering many of the functions found in the Roland drumatix. Some of the features offered are:
1. Six voice output capacity.
2. Sixteen patterns containing sixteen beats.
3. A graphical display of the patterns.
4. Variable tempo for each pattern.
5. The number of beats, held in a pattern, can be varied.
6. Drum patterns can be "chained" together to form a song.
7. Patterns can be saved and read from cassette or disc.
The interface unit simply takes positive pulses, of +5 volts, from the user port on the BBC micro. The output produces a two channel trigger pulse, to the drum synth's external trigger input. An indicator light is also included to show that the unit is on. The interface is connected to the computer, by a 20 way ribbon cable and IDC socket. A stereo lead is needed to connect the drum synth to the interface.
The BBC micro's user port has eight input/output lines (called PB0 to PB7) plus two handshake lines. These input/output lines can be turned on or off, producing 0v and +5v respectively. Since the software can control up to six independent voices ie. three drum synth units, six out of the eight input/output lines are used. The interface unit is designed to control a two voice drum synth. So, as far as the design of the interface goes, it needs to only concern itself with two of the user port's eight input/output lines (PB0 and PB1).
The design of the interface is so simple, that there is no need for a circuit board. All the connections can be wire linked together.
The wiring should not cause any problems, see Fig 1. Connection, of the interface to the computer is made using a 20 way ribbon cable fitted with a 20 way IDC socket. Try to buy this as a socket and head together. When connecting up the cable, be careful to get it the right way round, and make sure that none of the heads are swapped over. Make sure that the LED is connected, to the limiting resistor, the right way round i.e the +VE end which is the longest lead.
Holes should be drilled in the small vero box in order to house the LED, its holder and the ¼" stereo jack socket. The ribbon cable can fit tightly between the body and cover of the box. The cover may need to be slightly filed down.
R1, 330R, ¼ watt 5% carbon film.
Approx. 2ft of 20 way ribbon cable plus IDC socket
¼" Stereo jack socket,
Small vero box 93 x 70 x 49mm.
(available on the cassette).
The control program is written entirely in BBC BASIC, with the inclusion of a small machine code graphics routine. The Mode 7 screen mode is utilised.
The program is written in a modular form, and is relatively straight forward.
The functions offered by the software are:
Function Key Definition (key f0)
This function displays on the screen the definitions of the keys used by the software. The < and > cursor keys are used to control the tempo.
< — speeds up the tempo.
> — slows down the tempo.
Pressing the ESCAPE key, will exit from this function. The pattern previously used will again be displayed.
This function is used to select the voice chosen to be programmed in a pattern. The range of voices is 1 to 6. Voice 1 is the default, if only RETURN is pressed in response to the prompt.
Once a voice has been selected, a "key template" is positioned underneath the voice display.
Pressing a key will turn on a chosen beat (a red block will appear). Pressing the same key again will turn the beat off (a white block will appear). Once in this mode, the cursor keys (<, >) can be used to set a tempo speed.
Programming a pattern, is in real time ie once you set a beat you will hear what it sounds like. This is achieved by a yellow cursor moving around the pattern, infinitely.
Pressing the ESCAPE key, will exit from this mode.
This function allows you to alter the number of beats played in a pattern. This is denoted by the position of the "+" sign. The range of beats is 1 to 16. Sixteen beats is the default, if only RETURN is pressed in response to the prompt.
This function allows you to choose which particular pattern you want to use. The range of patterns is 1 to 16. Pattern One is the default, if only RETURN is pressed in response to the prompt.
This function will play a chained sequence of patterns. It can only work if a chained sequence has been defined. Pressing the ESCAPE key, will exit from this mode.
This function allows you to define a sequence of patterns, in order to produce a song. The maximum number of steps (chained patterns) is 256. In this mode, you will be prompted for the pattern number and the amount of times to play it. The pattern number range is 1 to 16, and the amount of times a single pattern can be played is 255. Pressing key F5 will exit from this mode.
This function allows you to save, patterns and the chained sequence, onto tape or floppy disc. It will only work if at least one pattern has been defined. The filename can contain alphanumeric characters and be 1 to 7 characters in length.
This function allows you to read, previously saved patterns and the chained sequence, from tape or floppy disc. The conditions for the filename are the same as for function Save. If a file does not exist, then an error message is output.
This function allows you to clear all of the memory, and to set the software back to the default stage.
In all of the functions available, the DELETE key can be used to erase mistakes. The RETURN key should be pressed once a choice has been made.
Load the software by the CHAIN "DRUMSOFT" command. Connect the interface to the computer's user port. The LED indicator should light up. If this does not happen, re-check the wiring of the interface for a bad connection. Using a stereo lead, connect the interface to the external trigger input on the Drum Synth.
Pattern One is displayed on the screen. Six rows of sixteen white blocks represent the six voices and their sixteen beat capacity. The tempo default speed (set to 150) and the number of beats (set to 16 — the "+" sign), are displayed at the foot of the screen. The flashing yellow prompt, in the top right hand corner of the screen, indicates that software is waiting for a command.
To familiarise yourself with the software, an example session now follows. Set channel 1, on the drum synth to a snare sound, and channel 2 to a bass drum sound.
|2 RETURN||2 RETURN|
Since the software can cater for six voices, the interface can be modified to trigger three drum synth units, rather than one. This modification will require the building of two more drum synths.
With six channels, the full sound of a drum kit can be emulated. For example:
Voice 1, snare
Voice 2, bass drum
Voice 3, low tom
Voice 4, high tom
Voice 5, hi hat
Voice 6, cymbal
IF ANY READER WOULD LIKE A COPY OF THE ORIGINAL DRUM SYNTH PROGRAM OR A DETAILED BREAKDOWN OF THE SOFTWARE OR THE PROGRAM PRINTOUT PLEASE WRITE TO US ENCLOSING A SAE TO, Electronic Soundmaker, Drum Synth Project, (Contact Details).