AMPLINEX 005

image
AMPLINEX issue 005 was published in May 1988. Each AMPLINEX magazine is stored as a 200K single-sided 80-track disk image file (.ssd file type). The image can be used to create disks for a BBC Micro or can be loaded into a BBC emulator. For the disks to run, the BBC (real or emulated) must have an AMPLE Nucleus ROM installed and be running the Hybrid Music System.

Music 2000 MIDI interface

In this issue we have two reviews of the latest addition to the Hybrid Music System - the Music 2000 MIDI interface.
In the first review, Rick Cocker (who has been doing field trials on the unit for Hybrid Technology) gives a detailed description of its hardware and software facilities. In the second review, Jim Redfarn gives his first impressions of the package and of its ease of use for a MIDI novice.

The Music 2000 MIDI interface

Rick Cocker
At last the long-awaited Music 2000 MIDI interface has been released. On delivery you receive the following: installation sheet, Music 2000 interface unit, User Guide, Issue disc and System disc label.
The Music 2000 is encased, 5000-style, with 3 MIDI-out sockets at the back plus a MIDI-in. The MIDI-in is operable but as yet no software is available. When data is transmitted one of three LEDs on the front of the unit will flash for each MIDI lineout.
Once you have created a system disc (using the same procedure as when installing the 5000 or 4000) and made a back-up copy, you then simply transfer the new files over to your existing Music 5000 or 5000-4 System Disc.
The new !boot file activates the Music 2000 and installs the new M2 module prior to other modules (as it resides below address &3000).

The User Guide

The User Guide is very comprehensive, giving full explanations, plus many examples, of the new M2 words. An introduction to MIDI (Musical Instrument Digital Interface) plus a MIDI specification summary is also included.
To make the most of the Music 2000 you will require the AMPLE Nucleus Programmer Guide (see AMPLINEX 003 file N.HTnews) which is a prerequisite for any serious programming. Once again there is no index - but no doubt an AMPLINEX member will be able to supply one.
Although the guide is very informative it does require careful reading. The first issue contains a few errors but Hybrid Technology assure me that all existing owners will be notified of corrections by the time this issue of AMPLINEX is published, which is why I have not listed them here.

The M2 Module

The M2 module contains all the system words to control MIDI instruments alongside the Music 5000 within the AMPLE environment.
A list of the new words plus a brief summary of their purpose is given below:

GATE

Sets the current voice or voices to ON or OFF.

PITCH

Sets the pitch of the current voice or voices in semitone units.

VEL

Sets the dynamic level of the current voice or voices. This is equivalent to MIDI velocity level and takes the range 1-127.

MIDIBEND

Sets amount that pitch is 'bent' above or below normal pitch. This simulates the pitch bend wheel fitted to many keyboards.

MIDICHANNEL

Sets the number of the MIDI channel to be used by the current voice or voices. There are 16 in total for each of the 3 MIDILINE outputs.

MIDICHPRESSURE

Sets the amount of key pressure effect (channel pressure) applied to all notes on the current voice's MIDICHANNEL. It can be used to control such things as amplitude or pitch envelopes to create a more dynamic playing style.

MIDICONTROL

Sends control change messages to the receiving instrument. Used to control an instrument's front panel or internal controls (for modulation effects, breath control, sustain etc.) and its MIDI reception mode (1-4).

MIDILINE

Sets which MIDI output line is to be used by the current voice or voices. The range of 1 to 3 relates to the MIDI-out sockets on the back of the Music 2000. Each line may carry up to 16 MIDICHANNELs.

MIDIOUT

Sends a single byte directly to the MIDI output line of the current voice. This is where the real fun starts as it enables AMPLE to control the parts other computer-based systems cannot reach.
Random byte transmission can produce 'music concrete'; drum machine patterns can be chained in real-time; access to MIDI system exclusive data can provide control over undefined functions used by manufacturers for specific purposes, e.g. glide time on a CZ synth.
Once MIDI-in software becomes available for the Music 2000, MIDIOUT system exclusive messages can request voice data dumps, providing sensible management of your computer/music environment, overcoming the slow and unreliable storage offered by cassettes and/or the cost involved with buying plug-in cartridges.
As I have already mentioned the MIDI-in is operable but without the software - perhaps the more adventurous among you may be able to provide some of the above now. I will say no more!

MIDIPRESSURE

Similar to MIDICHPRESSURE but provides key pressure effect to individual notes on the current voice. Not many instruments support this but in theory it is of more use.

MIDIPROGRAM

Selects the sound to be used for the current voice or voices by sending a 'program change' message. May be used at the start or during a piece to change a sound. With a multi-effects processor such as a Yamaha SPX90 inserted into the MIDI chain, you can change effects such as reverb or echo during playback.

MIDIRT

Assigns a real-time control voice to the current voice position. Used to synchronize drum machines or sequencers to the Music 2000. Transmits 24 ticks per quarter note. Allows tempo changes with AMPLE's =T, +T and -T.

MIDIV

Assigns a voice at each of the current voice positions. Where a Music 5000 voice might be assigned by
1 SHARE 4 VOICES Upright
a MIDI voice would be assigned by
1 SHARE 4 VOICES MIDIV

MIDIWOUT

Sends two bytes directly to the MIDI output line of the current voice. Its use is similar to MIDIOUT but is more efficient for some applications.

In use

Nine parts are available if using the PLAY instruction plus an extra part if using the P()P structure (AMPLE Nucleus Programmer Guide page 170).
Each part can have up to 12 voices either MIDI, 5000 or unused. A total of 32 MIDI voices are available. The free mixing of MIDI and 5000 voices is one of the sources of AMPLE's creativity and power.
Some MIDI freaks have underrated the Music 5000's sound. Instruments such as the piano are infinitely better on the Music 5000 than on a TX81Z. But there is no denying that with the inclusion of FM, phase distortion, sampled voices, etc., the Music 5000/2000 offers a dramatic increase in sonic potential.
Try playing a MIDI and 5000 voice in unison to appreciate this.
Programming the Music 2000 is on the whole the same as the Music 5000 with the exception that the MIXING desk does not support MIDI voices. This means that a separate mix word is defined for the Music 2000 voices. For example,
"mix9" [
5 SHARE 8 VOICES MIDIV
1 MIDILINE
6 SHARE 4 VOICES MIDIV
2 MIDILINE
PNUM SHARE
]
This can be added to the existing 5000 piece with
"123456-9abcad" PLAY
where the '9' brings the MIDI parts into play.
The music notation is scored and named in the usual way (e.g. 'part2a'). The inclusion of section letters is mandatory because of the use of 'mix9' in PLAY.
Using the P()P structure rather than PLAY offers greater freedom in the naming of words plus an extra part.
The real-time clock MIDIRT requires special attention. It is placed on a voice in the same way as MIDIV, e.g.,
9 SHARE 1 VOICES MIDIRT
X (ON GATE) starts the clock at the beginning of the piece or resumes from the last position if stopped by ^ (OFF GATE)  which allows a pause or stop within the piece.
Drum patterns programmed on the drum machine and ordered into complete song sequences, can be synched from within a playing piece with the use of these start and stop instructions.
One of the reasons for the delay in releasing the Music 2000 has been the need to interpret the various ways manufacturers implement the MIDI start and continue commands. Examples in the use of these, plus applications such as 'fermata' (pauses), are included in the User Guide.
Drum patterns may be programmed within AMPLE using notes or hits (X) without the need for MIDIRT or by a combination of the two.

Using the Music 2000 and 4000 together

MIDI instrument voices are played on the keyboard in the same way as Music 5000 voices. For example,
READY 8 VOICES MIDIV
will play the slaved MIDI instrument with defaults of 1 MIDICHANNEL and 1 MIDILINE.
When the 'keyboard' option from the MENU is chosen, the word 'KEYB' is called into Notepad, and then 'Simpleins' can be changed to MIDIV. 'MAKE' the word and you have the beginnings of a keyboard panel which you can alter to suit your own performance setup or for experimentation.
The Recorder section will require MIDI instruments to be made; for example,
"cz5000" [
MIDIV 2 MIDILINE 4 MIDICHANNEL 35
MIDIPROGRAM]
plus a MIDI mix to play the MIDI parts. You can then continue as normal.

Possible problems

I've found that timing errors can occur when using MIDIRT at fast tempos. The BBC micro is slow compared to more modern computers, whilst add-on boards (I have a SOLIDISK 256K and DFDC installed for my sins) can place an undue load on the system.
Careful programming can limit timing errors but many Music 5000 parts alongside many Music 2000 parts are probably best avoided, especially when using the Mixing Desk. This can become sluggish in response and in practice it is better to take MIDI parts out of play when adjusting the Mixing Desk.
Add on Shadow RAM boards may cause problems. I cannot use the Music 2000 with the aforesaid 256K board (so what’s new?).
If you have a BBC Model B and a Music 4000 keyboard, the three modules (M5, M4 and M2) take up a lot of memory, limiting the use of the STAFF editor. I have two !boot setups; one including Shadow RAM, M5, M4 and STAFF; the other M2, M5, M4, no Shadow RAM and no STAFF.
The BBC Model B's lack of memory places a restriction on the programming of long pieces but a saving can be made if MIDI voices are used in place of Music 5000 voices. This is due to the fact that MIDI voices are defined in the slave instrument.
I would stress that the problems I am talking about are extreme cases, but it is better to be aware of these possibilities.

In conclusion

If viewed solely as a MIDI sequencer, lacking dynamic control for real-time input, and with the Recorder section which requires setting up in advance (although Hybrid say this will change in the future), some may feel the Music 2000 is not as viable as other systems. They, however, would be missing the point!
The Music 2000 should be seen as an extension of the AMPLE-based (5000/4000) system not simply as a computer-based MIDI sequencer.
At a purely MIDI level the ability to program your own system-exclusive control words makes the Hybrid system extremely versatile.
As well as offering great compositional power and the ability to create a personalised working environment, experienced programmers will find that the Hybrid Music System provides more control over slaved MIDI instruments than most other systems (including those based on the ATARI ST).
Finally, if MIDI is to be introduced into music education, great insights to its workings could be gained from use of the Music 2000.

Note: I have been using a Music 2000 for the last few months whilst carrying out field-trials for Hybrid Technology. I have it connected to a Kawai R50 Drum Machine, Yamaha TX81Z, Casio CZ5000, Yamaha SPX90 multi-effects processor, AKAI S612 sampler and Music 500.

The Music 2000 - first impressions

Jim Redfarn
My Music 2000 MIDI interface was delivered a little while ago, and I've had time to do no more than tinker a little. However, perhaps you'd like to hear my first impressions as a novice user. In a word, brilliant!
We Hybrid Music System users need no longer be limited to music with a maximum of eight parts and sixteen channels. With the Music 2000 no fewer than thirty-two simultaneous parts are possible, given sufficient MIDI-compatible instruments through which to play them.
I actually have just one MIDI-compatible instrument, a Yamaha PSR90 portable keyboard. However, this instrument is a 'multi-timbral' device, which means that it will simultaneously play five different parts, in addition to the eight parts that can be played on the Music 5000.
So far, I've only written music requiring two extra parts to be played by through the Music 2000, but I have been delighted to discover that I can also accompany the music in real time on the keyboard.
Putting these extra parts into your AMPLE composition is simple, as I will explain; but first, how to set up the equipment.
Firstly, you plug the supplied ribbon cable into the 1MHz bus extension socket on the Music 5000. If, like me, you have a computer-powered disc drive you plug its power line into the back of the Music 2000 unit, leaving the power unit on the computer free for the Music 2000 power line. You then connect a supplied lead between the musical instrument's MIDI IN socket and one of Music 2000's MIDI OUT sockets. Finally, you add a new module (M2) to your existing Music 5000 software disc, following simple instructions supplied with the equipment.
To add an extra part or parts to your composition for playing via MIDI, you simply write the extra part and include it in a special mix called "mix9".
The software actually provides you with a ready-made mix9 which you can load into your program using *EXEC. This contains a comprehensive list of commands which you can implement by removing the comment character '%' from the start of the lines. Those lines with the '%' still in place won't be implemented. Alternatively, you can write your own mix9.
Finally, you include the mix9 into your RUN word, for example,
"12345-9abc" PLAY
and away you go!
The User Guide is, as usual with Hybrid, clear and precise. The second half of the guide contains a long list of command words of which I have so far only used one, MIDIV. This assigns parts to the MIDI-compatible instrument and is used in mix9.
Examples of other words include MIDIBEND and MIDIPRESSURE which control glissandi (note bending) and key pressure respectively on instruments with such facilities (mine has neither). There are examples of the use of each word but, unfortunately, there is no general index.
The Music 2000 is, of course, compatible with the Music 4000 keyboard. It will also control drum machines and sequencers.
You will appreciate from my brief comments that I have hardly begun to explore all the Music 2000's possibilities, particularly its range of controls over the sounds and rhythms coming out of the MIDI compatible instrument. There is also a MIDI IN facility, although the User Guide says nothing about this except to acknowledge its existence. However, I've got more than enough to learn and enjoy already.
Any snags so far? Well one small snag is that mix9 parts do not appear on the Mixing Desk, but you can, of course, try out parts there before allocating them to mix9.
The only other problem concerns electronic recording on to a tape recorder. It seems to me that I will have to feed the different sound sources through a mixer. I've seen 4 input mixers for around `40. Some of these also have a microphone input which would allow me to add natural real time sounds, such as a human voice to my AMPLE music. Such possibilities!
My unsolicited advice to any Music 5000 owner with a MIDI-compatible instrument is: get a Music 2000 now! It's worth every penny of its £161.

The Music 2000 MIDI interface is available from:
Hybrid Technology Ltd.,
Unit 3, Robert Davies Court,
Nuffield Road,
CAMBRIDGE CB4 1TP
Telephone: (0223) 316910
priced £161.00 inclusive of VAT, postage and packing.
The Music 2000 is supplied for use with a single Music 5000 (or upgraded Music 500) identified by its ROM ID.

Published in AMPLINEX 005, May 1988

Yuck!

by Mark A J Mulders

Solo played on Music 4000 keyboard

Composed, arranged, performed & programmed by Mark A.J. Mulders.
Remixed by Mark A.J. Mulders.
Recorded from 2-02-88 to 10-02-88
Remixed on 11-02-88
Polished on 10-04-88
Equipment used : Music 5000, Music 4000, BBC B

This is a digital recording.
This is not a Stock, Aitken & Waterman Production.

(c)1988 Mark A.J. Mulders
van Rooylaan 55
4871 SE Etten-Leur
The Netherlands
 

Source: AMPLINEX 005 disk, file $.YUCK!


Published in AMPLINEX 005, May 1988

Trio VII in E-flat major

by R Sapolsky

Composed by: Mozart

For piano, clarinet and viola. Schirmer's library of musical classics vol. 1403 pp2-11

 

Source: AMPLINEX 005 disk, file $.TRIO7


Published in AMPLINEX 005, May 1988

Randomination

by Bob Cornford-Wood

With acknowledgement to Kevin Jones.

This is randomly-generated music and so this recording is just one example of the music that could be produced when the generating program is run.

This program generates its own music. It's different every time it runs! Eight players calculate their own parts - rhythmically ("rhythm" divides time up into exact beat divisions), and pitch-wise. Pitches are selected either randomly, or on a random walk principle (Brownian Motion!). The random walk is extended in one part to a fractal-like process - intervals tend to be small rather than big or totally random as in the "rndseq" word. Also, parts pick their own instruments, volume & stereo position. To change instruments just alter "changemix".
 

Source: AMPLINEX 005 disk, file $.RANDO


Published in AMPLINEX 005, May 1988

Palm Garden

by Andrew Hunt

Composed by: Thomas 'Fats' Waller

 

Source: AMPLINEX 005 disk, file $.GARDEN


Published in AMPLINEX 005, May 1988

Oxygene part 2

by Bernie Dawson

Composed by: Jean-Michel Jarre

Atomic no. 8 Atomic mass 16

Hope you enjoy this attempt at one of JMJ's finest tracks. You might need to remix this to get the best out of your sound system. I especially like the contrast between the two mixes. If you alter it in ways that you think improve the music then why not send a message to where you got this from, or to me? PRESTEL 014464404---Bernie

SLIDINS has a simple tone to simulate a bomb falling. The explosions/gunfire are a compromise of only 2 CHANS. FILTINS is meant to be a filter giving rapid bursts as it is opened up. It ended up sounding like a pigeon cooing when used at low pitches!! NOISE1 is a click-ratchet sound that JMJ uses quite a lot. It is used with very short notes + rests to give the required effect. The notes have a slight pitch change to give interest to the sound.
 

Source: AMPLINEX 005 disk, file $.OXYGEN2


Published in AMPLINEX 005, May 1988

From a Night Train Window

by Michael Mellor

A passenger gently awakes and looks from a train window and sees slowly moving dark shapes in the distance and the faster trackside objects lit by the train. The train passes over the points and at one point in the piece another train passes in the opposite direction its lights flashing into the compartment as each carriage goes by. As the scene passes the passenger again falls asleep.

Michael Mellor - Prestel Mbx 919992731
 

Source: AMPLINEX 005 disk, file $.TRAIN


Published in AMPLINEX 005, May 1988

Floe (from Glassworks)

by Mark Whippey

Composed by: Philip Glass

A piece by Philip Glass. This is from the collection of short pieces called "Glassworks" which is probably the best place to start listening if you are just getting into this so-called "minimalist" music. I don't know what his views on computer music are but I rather suspect he would be on the anti side.
 

Source: AMPLINEX 005 disk, file $.FLOE


Published in AMPLINEX 005, May 1988

Bright Eyes

by G Siegwart

Composed by: Mike Batt

 

Source: AMPLINEX 005 disk, file $.BRIGHT


Published in AMPLINEX 005, May 1988

AMPLINEX 80-column printer utility

Jimmy Ryan
This utility is written in BASIC and will produce a fully justified 80 column printout of AMPLINEX text files.
To get going return to BASIC and enter
LOAD "U.print80"
ensure that the current drive (selected with *DRIVE) contains the AMPLINEX disc and then RUN the program.
The first thing the program does is to catalogue the current disc and to prompt you to enter the AMPLINEX issue number.
Here you have three options:
1) To enter the AMPLINEX Issue Number (e.g. 005)
2) To press <RETURN> which will assume the same issue number as that last entered
3) To enter * (or anything beginning with a '*') to catalogue the current disc.
Next you are prompted to enter an AMPLINEX text filename. Here you can use the COPY and cursor keys to enter up to 31 filenames. Once you have finished entering the filenames press <RETURN> to print them out.
Note: the program is designed to work with 80-column printers. If your printer will print more characters than this you should force it to finish at column 80 by setting a right margin via software commands (e.g. VDU2,1,27,1,81,1,80,3 for Epson compatible printers).

Related files on this disc:
U.print80 - BASIC print program

Published in AMPLINEX 005, May 1988 

Quick entry chords

Ken Hughes
The utility by Bill Mellor in AMPLINEX 003 (file U.chord/i) was described as a 'quick chord namer'. It was also meant to be a shorthand method of entering chords.
Unless some part of the article was missed out the method failed to work for two reasons.
1) As each chord played the pitch became higher
2) After playing one of the 4 note chords a following 3 note chord would have the fourth voice of the previous chord still playing.
The first problem is easily solved by adding an octave setting in front of the chord notes. For example,
"Cm" [-1:G(CE)]
The second problem requires a rest to be added on all the 3 note chords e.g.
"Cm" [-1:G(CE^)]
Bill did say, "if anyone feels they could improve on the chart please feel free to have a go" so I have taken the liberty of renaming the chords to give them more meaningful names.
I have used the chord letter plus a variation letter for the type of chord. Whilst the use of the letters A to G on their own must be avoided, you may use them as part of a two letter word (e.g. aM) providing that the second letter is not A to G and you leave a space before the word in your program.
I have used the following variation letters:
M  major
m  minor
m7 minor 7th
M7 major 7th
7  7th
I have not included the other chords or checked them all. You may find that some of them need -2: instead of -1: or alternatively a small letter for the first note instead of a capital letter.

Related file on this disc:
 U.Chords2 - New chord definitions

Published in AMPLINEX 005, May 1988 

AMPLEKEY – automatic AMPLE notation

Kevin Doyle
For those without the Music 4000 keyboard, this program is designed to provide a simple musical keyboard on the BBC Micro and a means to compose quickly and easily into AMPLE notation. If, like me, you know the sound of the notes you want but find using the Staff Editor or typing in lines of AMPLE notation a frustration of trial and error, then this program is for you.
The program takes key presses from the BBC keyboard and plays notes on the currently selected voice(s) whilst displaying those notes and their duration in AMPLE notation. This enables you to select an instrument and play whatever you like without having to think about the staff or AMPLE notation. Also, because the AMPLE notation is displayed as you play, you can stop at any point and copy a phrase you like into an AMPLE word. This is particularly useful when 'playing along' with an existing piece to find a suitable accompaniment.
The program uses two rows of the BBC keyboard to represent the available notes. These are arranged to mimic the layout of a musical keyboard using the upper row for the 'black' notes, the lower for the 'white'. Because the span of the BBC keyboard is fairly limited you can only play across 20 notes (an octave and two-thirds); but you can switch between any of the 11 available octaves at the press of a key.
Because the note lengths in AMPLE are measured in very small units, a facility is provided to round (or 'quantise') the note lengths played, to the nearest multiple of any number from 1 to 999. This can be very useful in composing multi-part pieces when the parts on each voice must keep time.
 The program is quite simple to use. It is in *EXEC format and should be read into your AMPLE program using:
*EXEC U.AK
To hear the effect of your key presses you must have set up a voice and instrument ready to play (e.g. by typing 1 VOICES 1 VOICE Upright SCORE). You can check this before you start by typing some notes at the % prompt. Then all you have to do is to enter 'AK' to start the program.
The first thing that happens is that the screen clears and the AMPLEKEY display appears. The display is divided into three sections:
1) On the top two lines are the title and a line showing the current note and the rounding number in effect.
2) The middle section is the area where the notes you play appear in AMPLE notation - at the start it only shows the middle octave indicator '0:'.
3) The bottom three lines show the relationship between the keys on the BBC keyboard and the musical notes they represent. Sharps are shown in green (the AMPLE notation also uses sharps).
If you press one of the keys indicated you will hear the sound and see the note appear in the 'Current note' field. If it was a sharp then the AMPLE notation '+' will appear in front. If you now press another note you will see it replace the previous one in the 'Current note' field and the previous note will appear next to the octave indicator with its length in AMPLE notation. This will continue for each note you press. If you play notes more than an octave apart the correct AMPLE notation (using '!') will be shown. To play a rest, press the space bar.
To switch to another octave range on the keyboard press the "<," or ">." keys. These move you down or up an octave respectively. You should not press the SHIFT key - nearly all the keys in AMPLEKEY only work when just the caps lock is on. The new octave will now be displayed at the start of the next line.
If you type enough notes to fill the screen (something over 120), it will scroll up, a line at a time, to accommodate more. If you would like to clear the screen and start again then press the TAB key. This again displays the current octave at the start of the AMPLE display area.
To use the 'rounding' facility press the '?/' key. Once pressed, the word 'Rounding' under the title starts to flash and the only usable keys are the up and down cursor keys (to adjust the rounding number), the SHIFT key (to increase the effect of the cursor keys by a factor of 10) and the RETURN key (to 'fix' the rounding number and return to the keyboard). Once a rounding number is established, the length of all future notes is adjusted up or down to the nearest multiple of this number. Make sure you don't set the number too high because note lengths of less than half the rounding number become 0 and will not play if copied into a word.
Because note lengths in a tune will often be the same for several notes in succession, the program will suppress the display of the note length if this is the same as the last note. This is more likely with a rounding number in effect.
To ensure a neat display, suitable for copying into an AMPLE word, the program always displays the note length at the start of each line and will not split the display of a note over two lines. You can start a new line (with the current octave displayed) at any time by pressing the RETURN key.
If you type notes in very fast the program will not be able to process these quickly enough and they will be stored in the keyboard buffer. Because this means that the note lengths will not be exactly as you played them, a warning is given by the 'Rounding' display near the top of the screen turning red. Once the buffer is empty it will change back to its normal cyan colour. The shortest note length that can be accurately recorded by the program is about 12 hundredths of a second (i.e. a note length of 12 with the 'standard' tempo of 48, 125=T).
The new octave, clear screen, new line and rounding keys described above will stop the current note playing. The length of the note will be measured to the point at which the new key was pressed.
To end "AK" and return to the % prompt, press the ESCAPE key. This clears the information from the top and bottom of the screen, but leaves all the displayed notes intact. Any note currently playing is stopped. You will now be able to copy any of the displayed notation into an AMPLE word. You can also see the equivalent staff notation by prefixing the notation with %STAFF and calling the word into the Staff Editor.
The program ("U.AK") operates in MODE 7 and uses about 1800 bytes of memory including the storage of its working variables. In order to save memory the program has been packed into the smallest space possible - it is not meant to be an illustration of good programming technique!
The version of AMPLEKEY provided is designed to be *EXECed into existing pieces. If you wish to use AMPLEKEY when developing new pieces, you should create a master program containing just AMPLEKEY. To do this, *EXEC AMPLEKEY into a new program and then SAVE it. You can then LOAD this program when starting a new piece of music and build the rest of your program around it.

Related file on this disc:
U.AK - AMPLEKEY utility (to be *EXECed into an AMPLE program)

Published in AMPLINEX 005, May 1988 

Instruments

To make the best use of disc space we have combined several instrument definitions into one file. These can be saved individually if required either by loading/saving via a word processor or from within AMPLE using the commands:
*SPOOL insfile
"insname" TYPE
*SPOOL
where 'insfile' is the file on which the individual instrument definition is to be held and 'insname' is the word containing the instrument definition.
"fuzzsyn" [2 CHANS
1 CHAN
  ON  RM 150 FM
 Round       Delvib      Long
  3 POS
2 CHAN
 Sharp       Flat        Verylong
  100 OFFSET 128 AMP     -3 POS
EVERY CHAN
   ON PHSET
% Try changing Long to Reverse on
% channel 1 for a different effect.
% by Jo Ward
]
"leadgt" [4CHANS
1 CHAN
  Hollow      Drop      Verylong
  ON SYNC     100 SHIFT
2 CHAN
  Syncer      Flat      Peaked
3 PAIR CHAN
  Hollow      Slowvib   Soft
4 CHAN
  20 OFFSET
EVERY CHAN
  128 AMP
% Lead guitar with sustained effect.
% Use with echo for authentic sound.
% by S Wilkie (based on hotbass4)
]
"breath" [2 CHANS
1 CHAN
 Hollow      Vibrato     Tailed
  ON RM      193 SHIFT
2 CHAN
 Round       Slowvib     Soft
 128 AMP
EVERY CHAN
% Sounds like a slightly drunk hamster
% blowing into a milk-bottle... no
% seriously, it's swelling and gently
% decaying breath sound with a hard
% edge.
% by Scott Mackie
]
"banjo" [2 CHANS
1 CHAN
 Watery    Delvib    Echohit
2 CHAN
 Broad     Flat      Percuss
EVERY CHAN
 ON PHSET  128 AMP
% A banjo-ish plucked sound.
% Works best played fairly fast
% in octaves 0 and 1.
% by David Westbrook
]

Published in AMPLINEX 005, May 1988

Hints and tips

Saving memory via modules

Roger Cawkwell
Further thoughts on saving memory. I usually don't use the full Studio 5000 setup for my own pieces. This means I don't have to install M.MENU. Most of the time I use my own instrument definitions, so no M.INS1 either. If I do decide to use one of the 'presets' it's still more economical on memory to re-define it as a user word.
When modules are INSTALLed by the standard Studio 5000 !BOOT file you can't get rid of them, so this means writing your own !BOOT file, leaving out what you don't need. The savings are quite substantial. When I start up the Studio 5000 using the standard !BOOT file MEM shows that I have 15793 bytes to play with. If I use my own !BOOT file I get 18373! These numbers may be a little different on your machine, depending on what you have on board, but the saving will be similar.

Reading AMPLINEX files

Jeff Parton
The answer to the problem of stepping back a page (or skipping a page) when reading a file (A.intro2 in AMPLINEX 002) is to load the file directly into a word processor. You can then scroll backwards and forwards at will.
When I receive my copy of AMPLINEX, I load each file in turn into View (using an 80-column mode). As I read through each file, a single key press on each paragraph formats the text in 80 columns, and at the end I save the file in its 80-column format on side 2 of the disc, ready for printing when required.

Music 4000/Symphony keyboard stand

Jack Wrigley
Anybody who finds difficulty positioning their music keyboard in a convenient arrangement next to their computer might be interested in the keyboard stand in the current Argos catalogue. I bought one and at £14.99 it suits the Symphony keyboard well.

Function keys in Notepad

Jeff Parton
In case anyone hasn't noticed - when in Notepad, function keys 6 to 9 can be used as in View, i.e.
f6 - insert line
f7 - delete line
f8 - insert character
f9 - delete character
(This also works in AMPLINEX Feedback)

Published in AMPLINEX 005, May 1988

Notes on 'Randomination' music program

Bob Cornford-Wood
One aspect of composing with AMPLE not mentioned in the feature in AMPLINEX 004, was that of using the computer as a means to generate its own music, rather than just reproduce an arrangement.
My program 'Randomination' is an attempt to do just this.
Before describing the program, it might be worth considering the (probably unanswerable) question "What is music?" For John Cage's 5 minutes 33 seconds (of silence), music is the ambient noise of the audience and concert hall. For most of us brought up in Western musical traditions, it can be considered as an organised collection of rhythms, pitches and timbres - usually conforming to the tonal system. How one actually organises these elements determines one's acceptance of the piece as music or as noise.
What I am leading up to is - don't approach 'Randomination' with a tonal (i.e. traditionally Western) frame of mind. Some people might consider it meaningless sound - but it is an organised collection of rhythm, pitch, timbre, dynamics, and spatial sound. I think it IS music (though not, by any means GREAT music!), and as such worth listening to. It is something that AMPLE might have been created to do!
The program uses 8 players which play one of three basic types of note generator. 'rhythm' is the basic word which generates patterns falling on exact subdivisions of the beat (which is supplied as a number). 'rndseq' is a variation of this where the 'hit' is replaced by selection of another note. The recursive nature of these words (necessary to fill the beat with notes or hits adding up to the right length) produces repetitive notes if the first generated duration is not equal to the supplied number.
Another variation on this is 'rndseq2', where the recursion is made to 'rndseq', producing more note changes within the beat number supplied. By altering the recursion to itself, note changes on every hit would be achieved.
Two players do the random walk. Note intervals are never more than 1 in each direction, and repetition of a note is allowed. The numbers supplied to 'randwalk' are the starting pitch and number of notes to be generated. These are played at a steady 'walking' rhythm.
An extension of this is 'fractal', where intervals, although randomly selected, are biased to lower numbers. The numbers supplied are as for 'randwalk'.
To allow for changing textures, a variable 'pause' is built in (in 4/4 bars) - the word is supplied with the minimum number of bars pause required and with the range of the pause. Also, most parts have the ability to change instruments, volume and stereo position.
The program will produce a different result each time it is run. If you want to produce predictable results, the random number generator will have to be seeded. A possible way of doing this might be to ask for a key to be pressed and then take the ASCII number of the key as the seed. With numbers available for all the alphanumeric and symbol sets, over 50 'preset' runs could be incorporated into the program.
Other refinements could take the form of restricting mix changes for individual players (to ensure that the instruments suit the note ranges), and giving 'randwalk' and 'fractal' notes varying rhythmic patterns.
I think that the fractal aspect could be considered further. By making 'fractal' recursive on a number of levels, a musical equivalent of the Mandelbrot Set might be constructed - each generated note being the starting note for the next recursive call. Does anyone know how many levels of recursive calls AMPLE can handle?
Lastly, the title. Why 'Randomination'? Played through the Mixing Desk, the piece produces random animation, though the less charitable among you might have thought it stood for 'random abomination'!
I would be happy to hear of any developments of the ideas in this program, even if you only incorporate one stochastic element into an otherwise 'normal' program. Perhaps you could specify a chord progression and get AMPLE to generate its own improvisation?
Happy tinkering!

Related file on this disc:
$.Rando - 'Randomination' music by Bob Cornford-Wood

Published in AMPLINEX 005, May 1988 

Chord-finder slide-rule

Roger Sapolsky
I personally do a lot of chord programming on my AMPLE System. For this purpose I have used in the past a BASIC program running in a small SHARP computer which displays the component note names of a chord of a given type. I later adopted a simple device faster in operation, let's call it a 'chord-finder slide-rule'. More about this later.
Before going any further, I will briefly describe the syntax used to define chords in sheet-music parts. All 'symbols' begin with a capital letter, the chord Base note, which can be followed by a sharp/flat. If nothing (or 'maj') follows, the chord is major. If 'min' or 'm' follows the chord is minor. Other alternatives are:
'7', '9', '11', '13' -> dominant 7th to 13th
'dim' or 'o' -> diminished (7th)
'aug', '5+' or '+' -> augmented (5th)
'min7', 'm7' or '-7' -> minor 7th
Take the example of a C7 chord. It includes the tonic C, the major 3rd E the perfect 5th G and the minor 7th Bb. If the 5th is lowered a 1/2 tone, the symbol becomes C7-5 or C7b5. The altered interval is here indicated in the symbol.
A variety of chords may be created from 'normal' chords by altering one or several of their component notes. It would be pointless to list them all. C7b5#9 or b5+9 or -5/+9 has an augmented 9th added. Symbols such as Eb7/4 (sus4) or Gm6/9 simply indicate that a 4th must be added to the Eb7th chord, and a 9th to the Gm6th chord. Double symbols such as Db/G apply to 2 different chords played simultaneously. The chord-finder will demonstrate that Db+G = G7-9+11. Strange arithmetic!
The chord-finder is shown on the sheet that accompanies this disc. It is self-explanatory.
Even if you don't have a great academic musical knowledge (which I don't), it will give you, at a glance, the composition of any chord, whatever its complexity.
Much of the colour and originality of a piece of music will be lost, should the chords be 'simplified'. Perhaps some members will question the need to know all of the 6 notes included in a 13th chord, for instance, since the AMPLE system seldom has 6 voices to offer us for accompaniment. In fact, the notes of a chord have an unequal importance, some are essential, others not.
The following notes will help the user make a selection.
The 3rd must be kept in all types of chords, because it makes them major or minor. In a dom7, use at least 3 and -7 (minor 7th). Add T and 5 in order of importance. In chords such as 7, 9, 11 and 13 ('Dom' and the ordinals are implicit) the intervals included in the symbol must be used. For example, a chord including 3, -7 and 13 is a 13th (without T, 5, 9).
Obviously, the altered intervals in a chord give it its special flavour - they mustn't be dropped. Thus, while a 7 doesn't suffer too much from the loss of its 5, a 7-5 , or a 7+5 is inseparable from its altered 5th.
Since 'dim' and 'aug' have equal intervals (1½ and 2 tones respectively), all of their notes have an equal importance. It may be of interest to say that dim chords played at 1½ tone intervals do not change their name. Try the well-known effect: Cdim 3@Cdim 6@Cdim etc. (4@ 8@ etc. with Caug). 'C' is just an example.
On the slide-rule itself, several of the listed chords have their 'important' notes underlined, as a reminder of what has been explained here.
Chord symbols read in sheet music parts, and words to define them in AMPLE programs can be made identical, with 2 exceptions:
1) Use a lower-case letter to begin the word.
2) Don't use standard note names for your chord word. Calling your chord word, for example, 'g' will just cause confusion. Using 'gk' or 'gz' will identify the chord you have defined. In case of a Gflat chord, name it 'g-', not ‘gb’ of course.
Using this method allows easy comparison with sheet music when debugging. Also, the contents of a chord word should be apparent from its name.
Octave settings included in words will obviate the need to keep track of the successive chords' first notes.
The transposition word '@' is also a boon when creating new chords from existing words, provided the preceding number is small enough to locate the new chord in a register not too distant its neighbour's, though a shift of register is often acceptable.
Two further possible applications of the chord-finder:
1) It makes the composition of a counter melody easier. Here is one bar taken from a solo played in Dmin, the underlying chord being A7 (A+CEG). It goes like this:
+CEG-B+CEGf
 It is clear that 6 out of 8 are notes of the A7 chord. Hence the counter melody can go like this:
a+CE/A+CE/
To avoid going into details, I suggest that you experiment and trust your ears to find suitable matches for Bb and f. I suggest G and d. The pair 'fd', by the way, belongs to the Dmin chord related to A7 and is used often in neighbouring bars. No wonder f and d go well together.
2) Along the same lines, elementary bass part composition is also made simpler, using segments of known arpeggios arranged with discretion on the bass clef stave. The result, always acceptable can later be improved by adding passage notes, accents, by varying the number and duration of notes taken from each arpeggio (2, 3 or 4 different chords may be used in a bar), etc..
The chord-finder won't, unfortunately, do the programming for you. However, your manually programmed chords may have greater variations and subtleties than have those yielded by a computer. In slow tempo jazz ballads, this may be particularly appreciated, when compared with monotonous chord patterns.
A few tips concerning chord programming.
'Closed' chords played on the lower part of the register sound fuzzy when Upright is being used. For example, a chord such as
-1: c(EGC)
should be avoided. Spacing out its three upper notes, for example,
-1: c(GEC)
makes it acceptable. For some mysterious reason, -1:C(EGC) sounds 'lower' than c(GEC)!
The Upright instrument loses much of its realism when playing low pitch notes; say, lower than -1:C. Using an alternative instrument for the voice in charge of low notes brings a marked improvement.
Starting from the definition of 'Upright' enter
1 CHAN 192 SHIFT
below 2 CHANS, then change 200 OFFSET to 110 OFFSET. Leave other values the same. This instrument will sound good in the pitch range -3: to 2:.
Having a different player in charge of the 'low' note rather than having 4-note chords played by one player will make rhythmic or harmonic effects easier to program. For example, when a note needs to be sustained during a progression of chords.
For those who wish to experiment, I have listed 2 sets of chords for the accompaniment of a 12-bar Bb blues.
1) 'Traditional':
Bb     | Eb7    | Bb     | Bb7
Eb     | /      | Bb     | /
F7     | /      | Bb     | Eb7 F7
2) 'Be Bop':
Bb     | Eb7    | Bb     | Bb7
Eb     | Bbdim  | Bb Cm7 | Dm7 Dbm7
Cm7    | F7     | Bb     | Eb7 F7
Note: If different chords played in succession have one or more identical notes, these notes should be similarly located on the stave. The dissimilar notes should go to the nearest suitable locations. For example, when
"b-" [-1: -b(DF-B)]
is followed by
"E-7" [-1: -b(-D-EG)]
the note '-b' doesn't move.
The purpose of this is to obtain a smooth progression without large displacements in registers.
'Bass' notes followed by chords played in a medium register sound better than a monotonous guitar-like strumming of chords.
This example (two bars of the Bb blues) uses alternating bass notes and chords:
48, 2: '-b      !F(-BD)
       '!f(^^)  !F(-BD)
       '!-e(^^) !G(-B-D-E)
       '!b(^^^) !G(-B-D-E)
       0,^;
The low pitch note is often the tonic with the 10th added, for example, -b(!D).

A copy of Roger Sapolsky's chord-finder slide rule is included with this disc.

Published in AMPLINEX 005, May 1988 

Inside AMPLE memory

A G Walduck
This feature takes a look 'behind the scenes' at some of the inner workings of AMPLE.

Memory, modules, vectors and IRQs

In a BBC Model B with standard DFS and no other ROMs claiming private workspace (i.e. OSHWM (PAGE) at &1900), and with the standard Studio 5000 (or Studio 5000-4) !BOOT sequence, the fixed modules are loaded at the following locations:
Music 5000 setup
M.INT      at &1900 - &1CFF
Workspace  at &1D00 - &202B
M.M5       at &202C - &2FFF
M.EW       at &3000 - &32FF
M.MENU     at &3300 - &36FF
M.FX1A     at &3700 - &3AFF
M.INS1     at &3B00 - &3EFF
Music 4000 setup
M.INT      at &1900 - &1CFF
M.M4       at &1D00 - &20FF
Workspace  at &2100 - &243B
M.M5       at &243C - &33FF
M.EW       at &3400 - &36FF
M.MENU     at &3700 - &3AFF
M.FX1A     at &3B00 - &3EFF
M.INS1     at &3F00 - &42FF
Any temporary modules (e.g. M.PAD, M.MIX) will then load at &3F00 or above (&4300 or above for M4000).
Although the length of none of these modules is an exact number of pages of memory, the shortening of (most of) these programs to start at a page boundary is a consequence of the irreversible process of INSTALLing them.
Examination of the first few bytes of each module shows some interesting features, which can change between the version on the disc, and the version finally resident in memory. To date I have noticed the following locations (relative to the start of the module):
- in the disc image
00/01 file length
02/03 zero
04/05 pointer to relocation data
06/07 loading offset (e.g. &32C (or &33C) for M.M5)
08/09 ? (pointer to location near end of module)
   0A
   0B
- in the version in memory
00/01 new length (shorter than above)
02/03 location of start of module in memory ('base' page)
04/05 zero (as relocation data now incomplete)
06/07 unchanged from above
08/09 unchanged from above
   0A incremented by 'base' page
   0B incremented by 'base' page
The relocation data is a series of consecutive byte offset increments, terminated by three consecutive zero bytes, starting at the location given by the pointer at 04/05 in the disc image.
The list always starts with the bytes 04 07 01, corresponding to the need to increment locations 03,0A and 0B, as mentioned above, by the module 'base' page value.
If a zero byte exists in this list (as it does in M.M5) then the following two bytes are used as a two-byte increment for the adjustment process. This explains the need for a string of three consecutive zero bytes for termination of these lists.
If the module is fixed then, when this process is complete, the relocation data is no longer needed. The new length of the module can therefore be set to the first convenient page boundary after the start of the relocation data. Since subsequent modules or programs will overwrite this data, the relocation data pointer is zeroed.

Vectors and interrupts in AMPLE

The OSBYTE vector (BYTEV) points to location &6EC in a short section of code between &6C0 and &6FC, where interception of OSBYTE &8E (enter language ROM) occurs. Other OSBYTE calls are redirected via &54C to the default OSBYTE entry (at &E772 on a BBC Model B with OS 1.20).
The default AMPLE IRQ1V points to &6D4 in the same code section, but in a fully working environment it will point to &1941 (i.e. in M.INT).

Locating user routines

On page 65 of the AMPLE Nucleus Programmer Guide it states that "AMPLE leaves locations &8E and &8F free for use by user routines". Whilst this may (or may not) be true for Nucleus alone, it certainly is not true for Nucleus plus the normal complement of modules. I have instead (illegally) resorted to using zero-page locations &90-&9F (reserved for Econet) with no ill effect on a non-Econet machine.

The next issue of AMPLINEX will include a companion utility (also written by A G Walduck) which gives a dynamic display of any area of memory as AMPLE is working.

Published in AMPLINEX 005, May 1988

Piano realism using the ACT command

Richard Bettis
For some time I have been attempting to use the Upright instrument to its full potential in transcriptions of piano music. One of the problems in achieving this in a straightforward manner lies in the fact that a piano can hold one note while playing another, an effect which can be achieved by holding a note down while playing the next, or by using the 'loud' pedal.
In AMPLE, it is easiest to program a part using one voice, but this leads to a 'clipped' style. For example
"cutoff" [SCORE 24, CDefG 0,^]
A more realistic sound needs further effort.
One technique that I had tried was to give each line several voices, and swap the notes between voices:
"sustain" [READY 2 VOICES Upright
SCORE 24, C(^)/(D)e(/)/(f)G(/)^(^)]
Since AMPLE assumes that you want a 'hold' on any voice you don't give explicit instructions for, this can be reduced to:
"sustain" [READY 2 VOICES Upright
SCORE 24, C /(D) e /(f) G ^(^)]
though I've kept the spaces to show each 'new' note.
However, I found using this technique required a lot of time in Notepad, and made a simple transcription from sheet music on to the Staff Editor virtually impossible. It is the AMPLE equivalent to holding down the piano keys, and it required nearly as much programming time as you might spend practising to be able to achieve the same effect on a real piano.
I also found I wasn't alone in using this technique - for another example see the Pilgrim Beart piece ('ppach') in AMPLINEX 003.
Then I read (in AMPLINEX 002) of the joys that only the ACT command can bestow - could I use ACT to automate this 'voice swapping', to give me an AMPLE 'loud' pedal?
It seemed I could use it to cycle round a number of voices in turn, keeping track of where it was using a 'voice' variable. This would need a separate variable for each player, but that was solved in the 'Data Storage' article from AMPLINEX 002:
"voice" [PNUM 8 DIM ARRAY]
which gives each player its own space in an array.
I then had to find out the significance of the three VOICE commands described in Andy Thomas' ACT article. Perhaps the Programmer Guide would tell me all this, but it appeared that a new note has all three set to the required VOICE, a hold has all three set to '0' and a tie has the PITCH voice set, but VEL and GATE voices as '0'.
So I wrote a new ACT command to swap between voices for each new note, using the GATE voice as a check that a new note was required:
"act" [1 voice #!
ON ACT(5 FVAR #? 0 #=
IF(1 FVAR #?
   0 #= IF(1 FVAR #?)ELSE(voice #?)IF
             VOICE 2 FVAR #? PITCH
   3 FVAR #? VOICE 4 FVAR #? VEL
   5 FVAR #? VOICE 6 FVAR #? GATE
   7 FVAR #? DURATION
   )ELSE( voice#? 1 #+ #11 3 #>
   IF(#2 1 voice#!)ELSE( voice#!)IF
    voice #? VOICE 2 FVAR #? PITCH
    voice #? VOICE 4 FVAR #? VEL
    voice #? VOICE 6 FVAR #? GATE
                   7 FVAR #? DURATION
   )IF)ACT
]
By way of explanation (AMPLE words like this always strike me as incomprehensible) this is how it works:
- The first line sets the 'voice' variable to 1, ready for the first time the new ACT is used.
- The next line checks if the GATE voice is zero.
- If it is, then the PITCH voice is checked. If this is zero, then zero is used, otherwise the last value of voice is substituted.
- Over the next four lines, the ACT command is carried out.
- If the GATE voice wasn't zero, a new voice is required. The current 'voice' is retrieved, 1 is added and a copy of this new voice number is made. This is checked to see if it is too big (in this example there are 3 VOICES).
- If it is too big, the current number is dropped and 'voice' is set to 1; otherwise 'voice' is set to the incremented value.
- The value of 'voice' is then used as an otherwise normal ACT command carried out.

Related files on this disc:
F.pACTex - an example of the ACT command discussed in the above article

Published in AMPLINEX 005, May 1988 

Questions and answers

Question: Transferring instruments

There are some excellent instrument definitions to be found in the various releases for the Music 5000, particularly Pilgrim Beart's 'Cosmix' disc. I have been experimenting with these and other sounds but the only way I have found to transfer one particular instrument between two different pieces is to load in the first piece, go into command mode, press CTRL B, enter
"instrument-name" TYPE
and then press CTRL C.
This gives me a listing of the definition on the printer. I then have to load the second piece and re-enter this listing in Notepad. Is there a way of saving individual definitions to disc without having to save all the other words as well?
J Pugh

You are already half way there with your current technique. All you need to do is to open and close a file rather than start and stop the printer.
To open a file for your instrument definition you should use
*SPOOL insfile
You should then list the instrument definition as before with
"instrument-name" TYPE
and then close the file with
*SPOOL
To use your instrument definition in another program, you use
*EXEC insfile
which will read in your definition and create the instrument in your current program.

Answer: Mixing desk problems

In response to Jim Redfarn's problem with the music skipping in his 'Harzat' piece: all I can say is that on the BBC Master, although the piece plays well normally, as soon as it is transferred to the Mixing Desk and any of the controls varied I found the same disorientation he mentions - but it does sort itself out again after a few bars. As to why - I haven't a clue.
G H Richardson

Question: The 'Syncer' waveform

Can anyone explain the waveform 'Syncer'? The manual gives no wave shape and no harmonic spectrum, so I assume that strictly speaking it isn't a waveform at all - so what does it do?
Jeff Parton

Question: Tuning systems in AMPLE

I would like to get the Music 5000 to play in tuning systems other than the default equal temperament. To do this, modifications to pitches would have to be stored and selectively applied whenever a 'normal' (i.e. equal tempered) note needed 'tweaking'.
My first thoughts are that the ACT command needs to be used, but how? And can calling notes be tested for their identity? A further problem is that enharmonic notes may disappear: i.e. C sharp may have a different frequency to D flat.
The PITCHF command allows fine tuning, by dividing the octave into (I think) 192 parts. I don't know, however, if this gives a fine enough resolution. Set out below is a table giving the diatonic scales for Equal Temperament and Just Intonation. Given a certain reference frequency, Just intervals are calculated by applying the ratios given to the reference frequency. By finding the difference between ET frequencies and JI frequencies, a 'computed' PITCHF number can be found, which has, however, to be rounded to a whole number.
In the table below, ET reference is given as C = 261.63Hz. One PITCHF unit works out to C' minus C divided by 192:
(523.25Hz - 261.63Hz)/192 = 1.363Hz
Dividing the difference between ET & JI frequencies by 1.363 gives the computed PITCHF value before rounding.
    –E.T.– –––J.I.–––              PIT
      Hz   ratio Hz   Diffc CompPF CHF
    –––––– ––– –––––– ––––– –––––– –––
C4: 261.63 1/1 261.63  0     0      0
D4: 293.66 9/8 294.33 +0.67 +0.492  0
E4: 329.63 5/4 327.04 -2.59 -1.9   -2
F4: 349.23 4/3 348.84 -0.39 -0.286  0
G4: 392.00 3/2 392.45 +0.45 +0.33   0
A4: 440.00 5/3 436.05 -3.95 -2.898 -3
B4: 493.8815/8 490.57 -3.31 -2.428 -2
Once a general method of implementing different tunings has been found, the tuning should be able to be altered during the progress of a piece of music, enabling satisfactory modulations to be carried out, thus overcoming the limitations of 'discarded' tuning systems. By retaining a particular reference frequency (not always the tonic), the general harmonic sense of a piece should be retained.
As an example, D might be chosen as a reference frequency for the key of C. In the example above, where C is the reference, a D minor chord is decidedly odd since the A is very flat.
I feel the Music 5000 has the potential to accomplish all this, and some lateral thinking by AMPLINEX members might help me greatly. Thank you!
Bob Cornford-Wood

Answer: Locking Symphony keyboard

My 'locking' note problem (AMPLINEX 003) appears to have been solved. One of the keys failed completely and on examining the keyboard's interior the fault was obviously a broken contact wire.
This is an 'L' shaped length of gold plated wire soldered to the printed circuit board at one end with a push fit through the underneath of each plastic key at the other. As each key is played the wire is moved down to make contact with a gold plated bar that runs the full length of the keyboard.
Presumably, before breaking completely, the loose wire occasionally remained in contact with some other component and the resulting short 'locked' the system.
Attacking printed circuit boards with a hot soldering gun is not my idea of fun, so my first idea was to contact ATPL. This prompted a "we don't sell them anymore - it could take months" type of response!
Eventually, the Cavalry arrived in the form of Andrew Smith, an audio-visual colleague, who found suitable replacement wire listed in his Maplin Electronics Supplies catalogue (Gold Wire XBOOA) for £2.40.
He's now confident that he could repeat the exercise should anybody experience the same problem. Andrew can be contacted on 0706-227233.
Since replacing the wire the fault has not re-occurred.
Jack Wrigley

Question: Acoustic instruments

One of my interests in using the Music 5000 is the simulation of acoustic instruments.
To do this from scratch by ear is very hit-and-miss, and extremely time-consuming. Information such as harmonic spectra would be invaluable - can anyone suggest any sources for information like this? I have tried my local library and I look in the electronic music magazines regularly.
Jeff Parton

Question: Defining envelopes

I have found that I really miss being able to define my own envelopes (as I could with AMPLE BCE). In particular I find it very annoying that the only envelope with any release on it ('Tailed') has a slow attack. I would like an envelope which has a fast attack, as for a piano, but no decay, with the note dying away when a rest is played and the release stage of the envelope is entered. Is there anything I can do?
Nick Ridley

Question: Watford mouse

I was interested in the AMX mouse article in AMPLINEX 004. However, I own a Watford mouse with Quest Paint software. Is it also possible for me to enjoy the time-saving offered by using a mouse?
N Varley

Question: Opus Challenger disc system

I have access to a Music 5000 system at City University, but do have my own Music 500 which is tape-bound due to an Opus Challenger disc system. With the RAM disc it's great to use, but why didn't Opus design it to work legally so that the Music 500 can use it? Approaches to Opus at user shows have met with a blank response (to put it kindly) when it's pointed out that the Challenger is not "fit for the use for which it was designed"...
Have any AMPLINEX members had similar problems with the Challenger and solved them? Is it worth pursuing Opus? I know that Slogger have taken over support from Opus, but it's not really their problem. Any helpful comments gratefully received.
Bob Cornford-Wood

Question: Transposing music

Does anyone have a program, or can anyone tell me how to write a program, to transpose music in AMPLE? I would like to be able to transpose music from awkward keys into the key of C and then be able to see it in the Staff editor.
My understanding of the AMPLE language is very limited to say the least, so I would be interested to know if this is possible.
Ken Hughes

Question: Converting BCE to Nucleus

Can someone explain to me exactly how to convert AMPLE BCE programs into AMPLE Nucleus ('exactly' means in simple language!). I haven't got a word processor.
Better still, is it possible for someone who is EXTREMELY clever to write a program to convert AMPLE BCE to AMPLE Nucleus?
Diccon Maude

Notes on converting AMPLE BCE to AMPLE Nucleus were given in AMPLINEX 003 (file F.BCE2Nuc). As to a conversion program - such a thing may be possible. Any offers?

Question: *ACCESS and *DRIVE problems

Having a dual disc drive I like to put my 5000-4 system disc in drive 0 and other discs in drive 1. To do this I type *DRIVE1 in command mode after tabbing from the Main Menu. Frequently the computer hangs up and I have to press BREAK and try again. Sometimes it takes four or five goes before it operates properly.
I have similar problems when locking or unlocking files within the Studio 5000 system. The *ACCESS command hangs the system up but this time I have to use Control Break to get out and then reload it before I can try again.
Am I missing something? I do not have either of these problems outside AMPLE.
G H Richardson

Some ROMs are known to conflict with AMPLE and to cause problems with disc commands. These include View 1.4 and some Toolkit ROMs. Disabling or removing any such ROMs in your machine might identify the cause of your problems.

Question: Screen Designer size

In AMPLINEX 002 you produced a Screen Designer, which looked mighty useful, but it is too large to load into my BBC Model B. Is it possible, therefore, to make a slimmed down version that will load?
Graeme Shaw

The Screen Designer software was written on a standard BBC Model B within the Studio 5000 environment. It may not work if you have installed extra modules (i.e. more than those specified in the standard !boot file) or if you have a non-standard DFS or ROMs which decrease the amount of user memory (see Studio 5000 User Guide page 89).

Question: Using 4-channel instruments

I have been endeavouring to improve a cello instrument definition, but have come across a peculiar problem which (not being a technical man) baffles me. Instead of using 2 CHANS as in my original definition I thought I would use 4 CHANS to enable use of the 3rd, 5th and 6th harmonics.
This produced the following definition:
"cello4" [
4 CHANS
 1 CHAN
  Reedy         Vibrato       Tailed
 2 CHAN
  -64 SHIFT     35 AMP        Onoff
 3 CHAN
  -112 SHIFT    35 AMP        Onoff
 4 CHAN
 -144 SHIFT     35 AMP        Onoff
EVERY CHAN
 ON PHSET
]
Since 4 CHANS were involved I assumed that 2 voices would be required and accordingly allocated 2 voices to player 1, and 1 voice to players 2 and 3 respectively, making 4 voices in all in the mix.
When I came to allocate the instruments to the players in the Mixing Desk, player 1 collared 4 instruments ('cello4') whilst players 1 and 2 merely took their one instrument each ('piano') as expected, making 6 instruments in total. I tested that 'cello4' sounded on each of the 1-4 instruments by pressing RETURN but when I came to play it only the first 2 instruments of 'cello4' and instruments 5 and 6 ('piano') were active - the other two (3 and 4) were completely inactive. I accordingly removed 3 and 4 and remade the mix so that I now had 1 and 2 playing 'cello4' and 3 and 4 playing 'piano' as intended.
When I examined the mix, however, I found that player 1 was allocated only 1 voice although it was playing the 4 channel 'cello4'. At this stage I thought either I or the Music 5000 was going round the bend because I had always understood that 1 voice had only 2 CHANS and that 4 CHANS required 2 voices. Furthermore, when I came to GET 'cello4' I got the message "Too many channels in player 1". Can someone please explain what is happening?
G H Richardson

Your confusion arises, in the main, from the relationship between voices and channels and the way these are represented in the Mixing Desk.
The sixteen channels available on the Music 500(0) can be shared amongst any of the eight possible voices in groups of two.
Thus, eight two-channel voices or one sixteen-channel voice are both possibilities. The instrument allocated to the voice will normally determine the number of channels which it will use. For example,
1 SHARE 1VOICES cello8
would allocate 8 channels to voice 1 if that many were defined within the 'cello8' instrument definition.
Obviously, since the number of channels is limited to sixteen, allocating more than 2 channels to a voice restricts the number of additional voices which can be used.
In the Mixing Desk, the display is set out to show how the synthesiser's 16 channels are being used. It does this by displaying 8 sets of information - one for each 2-channel pair.
The player-voice numbers above each column of information indicate the player number (as specified in the SHARE command) and the voice number on that player. If, as above, you had specified player 1 as having one voice, this would show '1-1'.
The instrument name which is shown below this number indicates how each two-channel pair is being used. If a voice has been allocated, say, an eight-channel instrument, the instrument name would be shown four times - but each occurrence would be headed by the same player-voice numbers.
By showing many-channel voices in this way it is easier to see how many channels are still available for use by other voices.
In short, use one voice for one instrument - you will be able to see how many channels are in use via the Mixing Desk display.

Question: Problems with Feedback

In using Feedback for the first time I encountered a difficulty. Having written and saved several notes, I tried to load one of them back to edit, and got the error message "! No room in memory". I subsequently got the same message when I tried to write a new note, and have had to break out of AMPLINEX and load it again to write this one. I shall now save this note and try to load it back in...
Well, that worked - so what did I do wrong last time?
Incidentally, it would be a great help if the Feedback menu gave the option to change drives, thus saving a lot of disc swapping.
Jeff Parton

I have been unable to reproduce the errors you report within Feedback. To try and track down the source of the error I would need more information about the particular sequence of events and the configuration of your hardware and software.
Have any other members experienced this problem?
A new option has been added to the Feedback menu ('OS or AMPLE commands') to allow drives and/or directories to be changed.

Question: Crashes in AMPLE

I have experienced some problems when trying to play some of the pieces available in the AMPLE jukeboxes on both the Music 5000 System disc and in each issue of AMPLINEX to date.
I am not sure if there is a fault in my system disc, or some incompatibility exists within my set up. I have a BBC Model B with Watford DFS and ROM board, which contains various ROMs.
Some of the pieces that have presented problems so far, together with the error message or problem encountered are:
Mexico Suite 3rd Movement (Music 5000 System disc) - system crashes straight away without even the % prompt appearing.
Alien (AMPLINEX 001) - 'No string in part3a in player 3' appears at start.
Cantata (AMPLINEX 002) - 'No number' error message occurs after a while and the AMPLE system disc has to be re-booted.
Sleepy (AMPLINEX 003) and Velos (AMPLINEX 004) - after the piece has been playing for a few seconds, the computer crashes leaving the last notes sustained. No error message appears. Break has to be pressed and the AMPLE disc has to be re-booted.
Gymnopedie No.1 (AMPLINEX 004) - if 'info' is called up, after a couple of pages the computer crashes.
I wonder if anyone else has experienced such problems, or can suggest a possible cause.
N R Varley

If the problems you list are the same each time a specific piece is run then the cause is likely to be a ROM which is disrupting AMPLE workspace. If this is the case you should try removing successive ROMs to isolate the offender.
If the problems are not repeatable, but occur in a random way, then hardware problems are likely to be the cause and you should have your machine checked by an expert.

Question: AMPLE DCT 'split' utility

I expect that some members will have seen the 'split' utility on AMPLE DCT. I can't make it work and all this ACT stuff is beyond me. Any boffins like to put something similar on to AMPLINEX for the Music 4000?
Robin Johnson

Symphony keyboard diagram

In issue 3, Graham Firth offered to supply the circuit diagram of the Symphony keyboard.
I should certainly be interested in obtaining this diagram but as no mention was made as to how to get hold of it I can only assume that it is through this column.
Tim Holgate

Yes, we have passed your request on to Graham Firth. Anyone else interested in this offer should also write to Graham Firth via AMPLINEX and we will forward letters to him. Please ensure that your envelopes are marked with Graham Firth's name.

Question: 'Ocean' sound effects

The sounds of the waves and seagulls in Philip Wormall's 'Ocean' (AMPLINEX 004) are very effective, although they would be more so if the volume of the waves could be varied. I presume this is not possible because it is a single sustained 'note', but there must be some way round this problem particularly in this case where it is a noise rather than a note as such.
G H Richardson

Question: Booting with the ADFS

I have recently purchased an ADFS ROM for my BBC Model B, in order to have more structured filing of tunes and instruments. However, I can't seem to boot up the Studio 5000-4 disk as it won't run the C.PREPARE file.
Could someone please tell me: firstly, what the C.PREPARE file does, apart from setting the function keys, and secondly, how I can get it to work correctly in conjunction with the Acorn ADFS chip?
Graeme Shaw

There is a known problem with the use of the ADFS in a BBC Model B and the Studio 5000 which relates to the value of PAGE expected by the C.PREPARE program (which reclaims memory for AMPLE use). If you contact Hybrid Technology (sending a blank disc) they should be able to provide a special version of your Studio 5000-4 disc.

Editor's note:
The comments following some of the questions above are only my opinions on the subject and should not be taken as definitive answers.
Your comments are most welcome on any of the questions posed, whether they supplement, confirm or correct any I have expressed.

Published in AMPLINEX 005, May 1988