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 

Printing out AMPLINEX information

There are three ways to print out the information seen within AMPLINEX.
You can print out an AMPLINEX file as it is displayed on the screen from within AMPLINEX; you can print the files themselves as you would any other text file; or you can load the files into your own word processor and reformat them as required before printing.
1) To print a file from within AMPLINEX choose the 'SET PRINT ON/OFF' option from the Introduction menu. This allows you to toggle a software 'print switch' on or off. If the switch is set ON then any AMPLINEX file which is displayed on the screen will be sent to the printer. This will continue until you set the switch off again using the same Introduction option. An asterisk is displayed at the top of the screen next to the issue number when the print option is ON and the print status is shown at the bottom right of the screen as text is displayed within AMPLINEX.
2) If you prefer to print the parts you require outside of AMPLINEX - all the data is held in files on the AMPLINEX disc. The files are in directories named according to the sections in which they appear and the file names can be seen at the foot of the screen as they are displayed in AMPLINEX so you can make a note of the ones you require.
The file directories allocated to each section of AMPLINEX are as follows:
$. for Music
A. for the Introduction and Adverts
F. for Features
H. for Hints and Tips
I. for Instruments
N. for News and Reviews
Q. for Questions and Answers
U. for Utilities
In addition to the text files, the AMPLE instrument definitions can also be printed directly from within AMPLINEX. Music and utility programs written in AMPLE can only be printed by LOADing the programs into the Studio 5000 and using the WRITE command (see Studio 5000 User Guide page 100).
3) If you wish to reformat the text before printing you should load the files into your word processor. The files contain unjustified text restricted to 38 columns width. The files contain only printable ASCII characters except for a control code (ASCII 11) which marks the screen page breaks. View treats these as left margin tabs and if necessary they can be removed with a C/^L// command.
Two utilities have been published in AMPLINEX to aid with the reformatting of text files. In AMPLINEX 003 'Hints and Tips' (H.ints003) there were instructions for a Wordwise segment program to automatically format AMPLINEX text files. The segment itself was included in AMPLINEX 004 (H.WWconv).
In this issue is a utility to print formatted 80-column text direct from an AMPLINEX text file. The instructions (U.print/i) and the BASIC program (U.print80) are both within the Utilities section.

Published in AMPLINEX 005, May 1988

Next issue news

The next issue of AMPLINEX is planned for release in mid-July. This means that all applications for a FREE copy (i.e. those containing contributions) must be received by SATURDAY JUNE 11TH. Anyone paying the £2.00 fee has until Friday 8th July to apply.
Already planned for the July issue is a utility to allow you to 'look inside' the BBC's memory as AMPLE is working which complements the feature (F.memlook) in this issue. We will also have our first MIDI utility - to allow a joystick to be used to control MIDI effects such as velocity, modulation or sustain.
We already have some good original music waiting to be heard and would particularly like to hear more examples of imaginative interpretations of other composers' music.
So please continue what has so far been an excellent response by providing your words or music to share with others in issue 006 of AMPLINEX.

Published in AMPLINEX 005, May 1988

How to contribute to AMPLINEX

To receive your next issue of AMPLINEX free of charge you must send a contribution of your own.
This could be an AMPLE music program, an instrument definition, a question or an article about some aspect of the AMPLE language or Hybrid Music System hardware or software, an AMPLE utility, a useful hint about AMPLE, or an answer to another user's question.
Under copyright law we cannot publish programs or music unless we have the permission of the copyright owners or their licensing agent. It is important to realise that in the case of an AMPLE music program, copyright exists in both the program itself and the music it represents. There may even be a separate copyright in the arrangement. If you wish to contribute transcriptions into AMPLE of someone else's music you must credit the copyright owner(s) of the music, the arrangement (if applicable) and lyrics (if included). We can then try to obtain permission to publish.
To protect ourselves from copyright actions we must ask you to sign the copyright declaration on the 'NEXT ISSUE' request form which was sent to you with this issue of AMPLINEX. All submissions made to AMPLINEX will be regarded as permission to publish within the AMPLINEX membership. Beyond this, the submission remains the property of the author.
As part of an exchange arrangement, we may wish to pass on your address if any of your contributions are of interest to Micronet for distribution via their 'Music City' service.
If you do NOT wish your contributions to be considered by Micronet (and thus your address not to be passed to them) please indicate this on the request form in the place provided.
You can also use your return disc to pass on questions which you would like answered on any issue relating to the Hybrid Music System or AMPLE language. We will do our best to answer them (or will pass them over to the other members for help) and publish the results in the Questions and Answers section of AMPLINEX.
You can also use AMPLINEX to advertise any (un)wanted items. Just put the details of your advertisement on to the return disc and we will try to include it in the next issue.
The 'Feedback' section of AMPLINEX contains a utility to allow a note to be written on the screen which can then be saved to disc. This 'note' file can then be included on your disc sent for the next issue of AMPLINEX.
'Feedback' notes can be used to make contributions to any of the text-based sections of AMPLINEX as well as to make comments or suggestions on AMPLINEX itself.
Send all contributions, on a standard DFS format disc (40/80 track).
Please note:
The AMPLINEX magazine is designed to fit on to one side of an 80 track disc. If you use 40 track discs you should send one double-sided or two single-sided discs.
It is not necessary to send printed copies of your contributions - any copies required are printed locally to save on postage costs.
Suggested file formats are:
a) AMPLE Music programs - save these in normal Studio 5000 format.
Please include some comments about the music - how or why it was written, how it could be changed - and put them into a word as comments following a DISPLAY statement. Use of the word 'info' to contain such text is common practice and we would suggest that it is NOT displayed automatically every time the music is played.
b) AMPLE instruments - save these in text form via *SPOOL using the AMPLE 'TYPE' command to save the word(s) you want.
Some description of the sound itself and hints on its use (e.g. which parameters could be changed, which are the most suitable octave settings) would make it more useful. This can be done using comments within the instrument definition itself (by preceding them with a '%').
c) Text (hints, questions etc.) - use the 'Feedback' note facility for short contributions. For longer pieces use View, Wordwise or other word-processor (without embedded format codes or commands). Do not right justify the text.
You can help us operate AMPLINEX more efficiently by careful naming of the files which you send us. Receiving several files called 'hint' or 'quest' can cause us problems in trying to keep track of which contribution came from which member.
Wherever possible, please try and make the filenames of your contributions unique especially where they are for a regular section of the magazine.
Putting a combination of your name or initials and the section for which the contribution is destined is one way of doing this. So if your name is Fred Bloggs you could use FBquest or BlogH&T for contributions to the Questions and Answers or Hints and Tips sections.
Whatever filenames you use, please remember to include your name somewhere in the contribution - this can save us many hours annotating lists and cross-referencing filenames with contributors.
Ensure that your disc is well packed as we will be using the same packaging to return it to you.
Make sure you enclose a return address label and postage and that both the packaging and the disc are marked with your name and address.
Send it to:
AMPLINEX
26 Arbor Lane
Winnersh
Berks.
RG11 5JD
to arrive by the date specified in the 'Next issue' section.
We look forward to reading and hearing your contributions.

Published in AMPLINEX 005, May 1988

Update – changes/corrections/comments

This section is a focus for news about the workings of AMPLINEX, corrections to items in previous issues, and other small items of information which might otherwise be missed amongst the details of each issue.

Stack window utility

Some users of the stack window utility (U.stkwin) in AMPLINEX 004 may have been puzzled to hear a rapid succession of notes being played or to experience a mysterious slowing down as the display unfolded.
These effects were the result of an extra letter 'C' which occurred in the definition
"spc" [FOR(SPC)FOR]
and were dependent on whether a voice and instrument were defined for player 0 (playable at the command prompt) and on the current note length setting (the longer the ',' setting the slower the display).
To rectify these problems the extra 'C' needs to be removed to leave
"spc" [FOR(SP)FOR]

Contributing music to AMPLINEX

A note from G H Richardson asks for clarification of the phrase "AMPLE music programs - save these in normal Studio 5000 format" in the 'How to contribute' section.
The key point here is to ensure that programs developed using the Studio 5000-4 system do not contain any 5000-4 specific words - i.e. those contained in the M4 and KFX modules. This is because such programs cannot be loaded on a standard Studio 5000 system.
To check for the presence of such words use the MCAT command and check whether the M4 or the KFX module has the letter 'W' to the right, indicating that one or more of the modules words are in use in the user program.
If the letter 'W' does appear, use the FIND command to track down the module words ("M4"MSHOW and "KFX"MSHOW will display them all) and remove them before saving to program to disc.

ROM incompatibility

Readers of the 'Questions and Answers' section will be aware that one of the commonest causes of problems with AMPLE software is incompatibility with other ROMs.
In order to be able to provide more specific advice than 'try removing your other ROMs one by one' we would like to compile a list of known AMPLE-incompatible ROMs.
So, if you have identified and resolved a ROM conflict in your machine, please send in the details (with your next disc) giving the ROM name and version number (if appropriate).
Finally, please continue to send us your ideas for improving the workings or contents of AMPLINEX - almost all the changes to date have been prompted by members' suggestions. Also, please let us know if you spot an error or omission - you may be the only one who has noticed.

Published in AMPLINEX 005, May 1988 

Welcome to AMPLINEX 005

Kevin Doyle
In the previous issue we anticipated having a review of the latest addition to the Hybrid Music System - the Music 2000 MIDI interface. In fact we have been able to go one better by providing two views of the new hardware and software to help you decide whether MIDI should be your next step.
This issue also sees the first use of our agreement with MCPS (the Mechanical-Copyright Protection Society) which allows us to publish music which is not the members' own work.
We have several features and utilities designed to aid music composition including one which explains the 'Chord-finder slide rule', a copy of which accompanies this disc.
For those without the luxury of a Music 4000 keyboard, there is a utility which provides a simple music keyboard and produces automatic AMPLE notation from the key presses.
We have a mammoth section of 'Questions and Answers' (with, as usual, more questions than answers) and would like your help to redress the balance in the next issue.
Readers of the June issue of Acorn User will be aware of the article on the Hybrid Music System by Ian Waugh. For those who are not, his article concludes:
"AMPLINEX... hopes to stimulate the interest of AMPLE users enough to make them contribute... (and)... so far the response has been huge... I cannot recommend AMPLINEX highly enough: I think it is simply essential reading."
This is praise indeed for the many contributors to AMPLINEX so far - so give yourselves a pat on the back.
I hope that you will continue this excellent response to make AMPLINEX 006 (completing our first year of publication) even better than the rest.

Published in AMPLINEX 005, May 1988