AMPLINEX 017

image
AMPLINEX issue 017 was published in May 1990. 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.

News and reviews

In this section we have a review of two new music disc releases, and comments on compatibility problems with commercial music discs.

Ashes by Michael Harbour

Roy Follett
Another good disc of music. I seem to be repeating myself of late but there is no doubt that Music 500(0) owners are being spoilt with good offerings. In this case an inventive selection from Michael Harbour - all of them originals, all of them tuneful, all of them with good sounds.
'Sunburn (air on a 5-DIN lead)' has some really low notes which the Studio 5000 instrument 'mexbass4' puts to good use. The resulting sound makes my speakers work overtime and sends shivers down my spine.
I sometimes wonder, however, what prompts a programmer to write 'words' that seem, to me anyway, totally unnecessary. Load 'Out of the frying pan' and look at 'v':
'Thanks. Mum and I will be safe, don't worry.' said Doctor Lampe. 'Goodbye Rhybid.' said Mrs Lampe.
The console started a faint ticking noise. The doctor and his wife closed their eyes.
And I am totally lost as to the meaning of 'part1':
192,1:deaf-deface-cabbage-facade
It is very difficult to review music - one either likes or dislikes it. I am beginning, however, to realise what helps me make up my mind: and that is 'listener fatigue'.
Do I end up listening to the last piece wanting more, or am I glad it's all over. If I reach for f9 before each piece of music has come to its natural end, I am getting my first clue.
Apart from his desire to insert superfluous 'words', Michael's 'Ashes' is a superb offering and I play it over and over again. There is, for me, zero 'listener fatigue' on this disc.
An example piece from 'Ashes' is included on this disc, in the Music section.

'Take a bite' by Phil Comber

Roy Follett
Yet another collection from the prolific Panda - this time the work of Phil Comber under the title 'Take a bite'. There are thirteen titles, ten of which are Phil Comber originals.
It is marvellous how some programmers are producing good instruments, giving the Music 5000 box a chance to break away from its familiar sound. Phil's certainly managed to do that.
This disc contains music with a modern beat and repetitive tunes - a bit too repetitive for my tastes. But one thought kept coming to mind: 'this would make a good TV theme'. These were attention getters, but after a few bars not much to keep me listening. As I said 'a bit too repetitive'
Don't get me wrong, though, this is a good disc. Phil's compositions fare well against the competition. The pieces written by Chris de Burgh and The Pet Shop Boys don't stand out from the rest. On a scale of nought to five, I'd give it a 'listener fatigue' level of two.
One further point, not a criticism of this disc, but of Panda. On June 1st all their discs went up to £6.00. A 20% increase is rather a lot, I think.
'Ashes' by Michael Harbour costs £4.95 (inclusive of postage and packing) and is available from:
Hybrid Technology Ltd
273 The Science Park
CAMBRIDGE
CB4 4WE
'Take a bite' by Phil Comber costs £6.00 (inclusive of postage and packing) and is available from:
Panda Discs
Four Seasons
Tinkers Lane
Brewood
Stafford
ST19 9DE
See also the Advertisements section in this issue.

Music file compatibility problems

Julian Benton
In recent issues of AMPLINEX there has been much said about producing programs that are compatible with both the Music 5000 and the Music 2000.
However, at this time, I think it is also important to ensure that programs will run on all issues of the Studio 5000 software. It is well known that Studio 5000 issue 6 requires voices to be declared UNUSED before other players may use them. This is the issue that I own.
In the past, when programs have failed to discard unnecessary voices, it has been quite straightforward to edit the mix using the Notepad. However, I feel compelled to write after the Panda Discs' 'Moments in Time' demonstration program, featured in AMPLINEX 016. Not only did this program have the same problems, refusing to run beyond the introduction, but was impossible to correct, as the relevant parts of the program had been protected.
All these problems could have been easily avoided by more structured programming. By only allocating voices when required, and discarding them with the UNUSED command when finished with, all programs could be made to run on any issue of software. Thus, I do not see why I, and probably many others who also use the issue 6 software, should have to obtain an updated version of the Studio 5000 software, or spend time correcting programs, simply to hear the music. As good programming structure is always encouraged, it is a pity that many contributors let themselves down in this area, as their music, once running, is excellent.
Finally, concerning the 'Moments in Time' disc. I feel it very unlikely that I would risk purchasing this album, in case the programs on that disc also featured the same problems and protection system. It is a great shame, as the music sounded promising.

Published in AMPLINEX 017, May 1990

Yo!!

by Colin Homer

I'm at a present a pupil at Perry Beeches school (the one that nearly burnt down) and am currently in revision for my exams. With the number of rap songs that are in the charts there must be a trend - so I decided to have a go.

Make your own words up and try to rap if you can.
 

Source: AMPLINEX 017 disk, file $.YO


Published in AMPLINEX 017, May 1990

The Waters of Babylon

by Michael Mellor

Composed by: Don McClean & Lee Hays

No, it's not that one!

There is a MIDI version available

0203 416653
 

Source: AMPLINEX 017 disk, file $.BABYLON


Published in AMPLINEX 017, May 1990

Sunburn

by Michael Harbour

From the album 'Ashes'

Courtesy of Hybrid Technology

 

Source: AMPLINEX 017 disk, file $.SUNBURN


Published in AMPLINEX 017, May 1990

Sun

by Tim Sketchley

This piece has been going through my mind (like most of my compositions) for many years.

In programming it, it was apparent to me how simple the piece is.

I often struggle over thinking of titles. In this case I considered "A Quiet Evening" and "Gemstone". Then "Sun" came to mind, probably because of the good summer we have had. Even so, this need not be a summer piece; even in winter-time the sun is still there, lighting up the Earth.
 

Source: AMPLINEX 017 disk, file $.SUN


Published in AMPLINEX 017, May 1990

Soft as Diamond

by Michael Lefevre

This piece was supposed to be Heavy Metal, but it doesn't quite make it.

Note that if you choose not to have lyrics, the music misses the section with words. I thought the words sounded quite good when I wrote them, but now I think they sound a bit silly.

Section e was originally in a separate piece, but it was very similar so I put it in this piece instead.

Those of you without Music 3000s are missing a Yakbell part, which isn't terribly exciting. The 3000 version also uses larger instruments (bassguit4, snare4 and drum4). I made bassguit from bassguit4 but it doesn't sound anything like as good. If you don't have a Music 3000, you can hear what the 3000 version sounds like by typing:

"1234-4iabc"PLAY

(this only plays the bass and percussion parts).

MJL

Lyrics:

Soft as diamond,
Hard as silk,
Light as jet,
Dark as milk.
Quiet as thunder,
Loud as lasers,
Sharp as spheres,
Blunt as razors.
 

Source: AMPLINEX 017 disk, file $.DIAMOND


Published in AMPLINEX 017, May 1990

Sargasso

by David Westbrook

 

Source: AMPLINEX 017 disk, file $.SARGASS


Published in AMPLINEX 017, May 1990

Safe Sax

by Frank Dudley

J Roden and F Dudley proudly present

 

Source: AMPLINEX 017 disk, file $.SAFESAX


Published in AMPLINEX 017, May 1990

Rotation Number Seven

by Bill Buckley

 

Source: AMPLINEX 017 disk, file $.ROTATE


Published in AMPLINEX 017, May 1990

The Jazzman

by Diccon Maude

This is the first long(ish!) piece I have composed for the Music 5000. The bass instrument, mysyn, is a variation of Moog. I often change Moog like this because it doesn't otherwise give a precise start to repeated notes. Elecins (thanks to AMPLINEX issue 004) is a renamed 'jarre-4'. Mydrum is a low Yakbell.

This piece started life as a school music project. And after just two days since I first programmed the bass line into my Music 5000, here it is!

Diccon Maude (14) 27/3/88
 

Source: AMPLINEX 017 disk, file $.JAZZMAN


Published in AMPLINEX 017, May 1990

I've Got You Under My Skin

by F J Fornerod

Composed by: Cole Porter

 

Source: AMPLINEX 017 disk, file $.IGOTYOU


Published in AMPLINEX 017, May 1990

Highly Strung

by Jason Perry

Composed by: Christopher Norton

From More Microjazz II by Christopher Norton

Remixed and edited by Jason Perry 1990

Originally for the piano, this piece consists of a 'synthesised' bass, with electric piano as the main tune.

More Microjazz pieces to follow:Fine
Line

Thank you for listening!
 

Source: AMPLINEX 017 disk, file $.STRUNG


Published in AMPLINEX 017, May 1990

En Vacances

by Alan Minns

Composed by: Deodat de Severac

Ou l'on entend une vielle boite a musique

Ou l'on entend une vielle boite a musique
Deodat de Severac (1873-1921)
arr. Alan Minns
Very little needs to be said about this French miniature.
It is pure 'picture music', very short, no special effects, not even stereo!
Just press a key, sit back, listen and (I hope) enjoy.
 

Source: AMPLINEX 017 disk, file $.VACANCE


Published in AMPLINEX 017, May 1990

Eine Kliene Nachtmusik

by Jeff Bennett

Composed by: Mozart

1st movement. Allegro

Space - the final frontier...

No seriously, the biggest problem was how to fit this piece in without making the whole thing one mad scramble. My copy of the score was almost unreadable with notes showing repeated sections. I also wanted to use four-channel voices for each part but ended up having to split the first and second violins into separate instruments to cover all of the notes. Anyway, I'm pleased with the result - I hope you are too.

JSB May 1990
 

Source: AMPLINEX 017 disk, file $.EKNACHT


Published in AMPLINEX 017, May 1990

Close Encounters of the Third Kind

by Ian L Hubbard

Composed by: John Williams

 

Source: AMPLINEX 017 disk, file $.CLOSEEN


Published in AMPLINEX 017, May 1990

Chanson de Matin

by Graham M Tipping

Composed by: Edward Elgar

Arranged by Bothwell Thomson

I found this arrangement in a book called The Music Lovers Album dated October 1934.

It was the first piece I tried in AMPLE and I'm quite pleased with it although I haven't added any dynamics or changes of tempo.
 

Source: AMPLINEX 017 disk, file $.CHANSON


Published in AMPLINEX 017, May 1990

The Big Bag

by Mike Dobson

 

Source: AMPLINEX 017 disk, file $.BIGBAG


Published in AMPLINEX 017, May 1990

Programmable Jukebox – version 2

Allan Gardner
These notes describe the new version of my Programmable Jukebox - the original version was published by A&B Computing magazine in November 1988. The program has been rewritten and improved for use by AMPLINEX members.
The main improvements over the original version are:
a) The menu layout has been much improved and tidied up, presenting a less 'cluttered' screen
b) The highlight cursor now has full wrap-around in all four directions, making getting to the file you want much easier and quicker
c) Ten pages of on-line help are available at the press of a key
d) The program can now present a menu from both sides of a double-sided disc
e) There's the option of generating a 'playing sequence' of files from all four surfaces of a double-sided dual-drive disc system
f) If desired the entire sequence can be set to auto-repeat indefinitely
g) This Jukebox can sort the filenames into 'ASCII-betical' order, helping you to find that elusive file.
These improvements have resulted in a complete re-coding of the program.
All the features of the original program, including automatic updating of the menu, programming of sequences of up to 63 files and self-generation of 'CHAIN' words, have been retained.
However some of the keys and commands have been changed from the original, as has the coding of the sequence buffer.
The keys and commands now used are:
CURSOR   highlight filename
 KEYS    (no change)
<COPY>   enter file into sequence
         (no change)
<RET>    play file or start sequence
         (no change)
<DEL>    wipe sequence/re-catalogue
         (previously <r>)
<d>      swap drive on dual-drive system
         (new command)
<r>      enable/disable autoRepeat
         (<r>-previously restart)
<s>      sort filenames in ASCII sequence
         (new command)
<ESC>    stop program or enter command mode
         (no change)
CHAIN    generate CHAIN words on disc
         (previously chaingen)
save     saves 'Jukebox' to disc
         (no change)
"double" [ON]
         to use double-sided discs
         (new word)
"double" [OFF]
         to use single-sided discs
         (as above)
<f9>     "Jukebox" LOAD RUN
         (no change)
<f4>     "Jukebox" LOAD run
         (no change: but note that a
         'bug' in the original version
         existed where a 'sequence' of
         one file meant that function
         key four was programmed to
         contain "Jukebox" LOAD run
         (instead of CLEAR). This is
         now corrected).
The writing of the sequence buffer has been altered to include the autoRepeat feature and to add disc drive-numbers to the filenames.
This does mean that a sequence buffer written with Jukebox version 1 is unreadable by version 2 but this will not cause any problems, as the buffer is cleared by both versions before the programming of sequences is begun.
Note that the program is supplied to suit single-sided drives to avoid generating an error when trying to read the 'second' side of a single-sided system.
The word 'double' should be edited to suit your disc-drive(s).
P.S. if anyone can come up with a quicker sort routine - I'd be very interested.

Published in AMPLINEX 017, May 1990

Hints and tips

AMPLE in the press

Jim Redfarn
In the Hints and Tips section of AMPLINEX 009, there was a request to send in details of any published articles about AMPLE and/or the Hybrid Music System. I submit two that may have not been picked up. Both were written by Ian Waugh.
The first was published in February of last year in the Keyboard Player. It is entitled 'The Micro and Music' and is an excellent morale-boosting description of the Hybrid Music System.
The second was published in the BEEBUG magazine for April 1990. It is called 'Music Programming in AMPLE' and is the first of a series of articles, to be published in succeeding months. As always with articles by Ian Waugh, it is clearly written, with lots of useful ideas.

The use of the Slide command

Alan Minns
I believe that previous discussions of the Slide command rather missed the essential points of the facility.
1) An =L value before the ON Slide fixes the dynamic level which is sustained throughout the slide (and after).
2) An =L value after the ON Slide fixes the pitch offset for the start of the slide.
3) If no pitch offset is defined, the existing value of dynamic level is used, which by default means that the slide starts at a tenth interval above the starting note!

Problems with the FX1A module

Richard Bettis
For a while now I've been noticing odd quirks in my system when I play some of the AMPLINEX tunes. Recent examples are 'In The Night' from AMPLINEX 014 and 'The Last Patrol' from AMPLINEX 015. Both of these crashed with a 'Too many voices' error before starting to play (see Questions and Answers in AMPLINEX 016). By chance I was using my original Music 5000 system disc and decided to sort out one of these pieces - and it ran perfectly!
I traced the problem to different versions of the FX1A module, which contains the PLAY word. Using MCAT, I found that my normal system had version 1.0 and the original had version 0.6. I replaced the newer version on my !BOOT disk, and have had no problems since.
I thought the purpose of updates was usually to REMOVE bugs?

Published in AMPLINEX 017, May 1990

New words demonstration

% by Kevin Doyle
% For more details see F.NewWord
% Published by AMPLINEX May 1990
% Can be *EXECed into AMPLE
% Define new words as GVAR
"findword" [GVAR]
"wordname" [GVAR]
"nextword" [GVAR]
"wordshow" [GVAR]
% Set up the above words with the
% values required
15 findword #! &2E findword 1 #- #B!
15 wordname #! &59 wordname 1 #- #B!
15 nextword #! &73 nextword 1 #- #B!
15 wordshow #! &B8 wordshow 1 #- #B!
% Use new words in utility
"FREE" [
OFF            % Set start value of 0
               % for nextword
REP(           % Begin main loop: this
               % loop gets the token
               % for each user word.
               % This token will be
               % the object searched
               % for in each user word
               % in the sub-loop below
 6 nextword    % Get address of first
               % (or next) user word
)UNTIL(        % Continue whilst more
               % words
 OFF #212      % Put OFF flag on stack
               % and copy object word
               % address to top. OFF
               % flag is used to
               % indicate the initial
               % state - i.e. that no
               % occurrence of the
               % object token has been
               % found
 4 #+          % Add 4 to address to
               % point to word name
               % length byte
 #11           % Duplicate address
 #B?           % Read word length byte
 15 AND        % Remove top bit (&80)
               % to give word length
 #+            % Add word length to
               % address to point to
               % end of word name
 1 #+          % Add 1 to address to
               % point to word token
 #?            % Read word token bytes
               % (i.e. token + &00)
 #B12          % Reverse bytes to give
               % &00 + token, the form
               % of the token used in
               % word definitions.
               % This gives the object
               % token to be searched
               % for in the next loop
 OFF           % Set start value of 0
               % for nextword
 REP(          % Begin sub-loop
  6 nextword   % Get address of first
               % (or next) user word
 )UNTIL(       % Continue whilst more
               % words
  #2121        % Duplicate top two
               % items on the stack
               % (i.e. the object word
               % token and the target
               % word address)
  4 #+         % Add 4 to address to
               % point to word name
               % length byte
  #11          % Duplicate address
  #B?          % Read word length byte
  15 AND       % Remove top bit (&80)
               % to give word length
  #+           % Add word length to
               % address to point to
               % end of word name
  3 #+         % Add 3 to address to
               % point to start of
               % target word
               % definition
  findword     % Find next occurrence
               % of object token in
               % target word. Returns
               % address ON if found;
               % OFF if not found
  #11          % Duplicate find flag
  IF(          % If found:
   #12 #2      % Delete found address
               % from stack
   FRAME       % Set frame pointer to
               % top of stack
   FRAME?      % Read frame pointer
   ON          % Set fourth element
   4 FVAR      % on stack to ON to
   #!          % indicate that the
               % object token has
               % been found in the
               % target word. This
               % will replace the OFF
               % flag put on the
               % stack near the start
    FRAME!     % Write frame pointer
  )IF          % End of conditional
 )UNTIL(       % Repeat above until
               % object found in
               % target word
 )REP          % End of sub-loop
 #2            % Delete target address
               % from stack
 #2            % Delete object token
               % from stack
 NOT           % Reverse flag - i.e.
               % OFF (not found) => ON
 IF(           % If object token not
               % found in any target
               % word
  #11          % Duplicate address of
               % object word
  4 #+         % Add 4 to address to
               % point to word name
               % length byte
  wordname     % Return string
               % containing word name
  wordshow     % Pad out to fixed
               % length and print
 )IF           % End of conditional
)REP           % End of main loop
#2             % Delete last address
]
% Type FREE to use the utility

Published in AMPLINEX 017, May 1990

Finding new words in AMPLE

Kevin Doyle
AMPLINEX members who read the Feature in AMPLINEX 008 by Tony Walduck will know that all AMPLE words are stored in memory as tokens much as the words in BASIC programs are. In his feature, Tony identified the tokens which corresponded to each of the user-accessible (UA) words available in the AMPLE Nucleus. It was clear from his notes, however, that a lot of tokens were not used for such words.
Anyone examining the contents of AMPLE modules (rather than user programs) will notice that some tokens are used which are not in Tony Walduck's list - i.e. which are not UA words. These non-UA AMPLE tokens allow the modules to perform tasks which are impossible with only the UA words. The same observation applies the AMPLE Nucleus ROM itself, which it written, in part, in AMPLE.
Recently, in order to write a utility, I examined the use of some of these tokens and, by trial and error, worked out the function of a few of them. For the benefit of those who may also wish to extend their AMPLE programming range, this article introduces some of the ways in which these non-UA features can be used.
Since such tokens are not accessible through a user word, a way has to be found to write the token value directly into a user program. This can be done by the careful reading and writing of bytes in a user program in memory, but this is rather awkward, and liable to error.
In addition, since such tokens cannot be translated back into a user word via TYPE or WRITE, editing such programs within AMPLE is impossible.
To get around such problems, I decided to write my utility program in a word processor and EXEC it into AMPLE. This way I could write the program, then try it in AMPLE, with no danger of corrupting the program in the process.
This also meant that I had to find a way of introducing a token into a program via an EXEC file.
The technique I decided to use, was to define some new words to contain each of the tokens required. I initially defined the word using GVAR, for example,
"test" [GVAR]
The reason for using GVAR is that it returns an address which refers to two bytes located immediately after the GVAR token, within the word definition, which are normally used to store the value assigned to the word. The memory map looks like this:
00 01 02 03 04 05 06 07 08 09
-----------------------------
74 65 73 74 nn 00 12 lo hi 20
 t  e  s  t    [    GVAR    ]
where 'nn' is the user word token, and 'lo' and 'hi' are the two bytes which store the GVAR value.
The fact that GVAR returns an address which is at a known position in the user word means that it can be used to allow the contents of the user word to be directly altered in memory.
In the above example, typing 'test' will return the address of the 'lo' byte in the word definition.
We can thus obtain this address, and overwrite the token for GVAR with a new one. This still leaves the other two bytes - 'lo' and 'hi'. I decided to overwrite these with the token for a comment (&0F) and a zero (which would be regarded by AMPLE as indicating a comment of zero length).
So, the following definition would allow the word 'test' to be set up with a token value of &60:
"test" [GVAR]
15 test #! &60 test 1 #- #B!
giving a memory map like this:
00 01 02 03 04 05 06 07 08 09
-----------------------------
74 65 73 74 nn 00 60 0F 00 20
 t  e  s  t    [      %     ]
Having devised a way to set up words to contain the tokens I required, I began to test the tokens I had seen in use in the modules to find their effects. The utility I was writing was one which would identify user words which were not used elsewhere in the program - to show which ones might be able to be deleted.
I discovered four tokens which I needed for this program: &2E, &59, &73, and &B8.
Defining their operation was a matter of trial and error, but I think the following descriptions are correct.
&2E - returns the address of the next occurrence in a word definition of a specified token. Thus, it can be used to check whether a particular word contains another word.
number address &2E -> address ON
                   -> OFF
It takes a number (which is the token to be searched for), and an address for the start of the search. The search ends when the end of the word definition is reached. If the number is found, &2E returns the address of the occurrence, and the ON flag. If the number is not found it returns the OFF flag.
&59 - pulls a word name string from a specified address. Thus, if the start address of a word definition is known its word name can be found.
address &59 -> namestring
The byte before a word name in a definition contains the value &80 + the length of the name. Thus the word 'test' would have the value &84 in the byte preceding the word name. The address of this byte is passed to &59 and it returns the word name string.
&73 - returns the address of the start of the next word, alphabetically. This can be used to step through the list of user words in sequence.
address code &73 -> address OFF/ON
It takes an address of the start of a word, or 0 to find the first word. The code is set to 6 for user words - I do not know the meaning of other values. The address returned points to the next word in ascending alphabetical sequence (as displayed by SHOW) and the OFF flag. If there are no more words the input address is unaltered and the ON flag returned.
&B8 - pads out a word name string to a number of characters which allows a columnar display, and prints it to the screen.
string &B8 ->
If the number of characters in the string is greater than 9 the string will be padded with spaces to the right to bring it up to 10, 20 or 40 characters, whichever is the next highest of these figures. It then prints the result to the screen. It is used by SHOW to display a list of user words.
Having identified the operation of these words I used them to write a small utility to show unused words. This was published in AMPLINEX 013 (Utilities section) and an annotated version of the program is included on this disc to illustrate the use of the words described above.
The utility takes each user word in turn and checks for its occurrence in each user word in turn. Those words which are not found in any other words are displayed on the screen.
The challenge I would like to offer AMPLINEX members, however, is to identify more of these non-UA tokens in order to build a base for more extensive use of the AMPLE language.
There are over 80 tokens undefined in Tony Walduck's list. For those without a copy of AMPLINEX 008, there are no user-accessible tokens between &72 and &82; between &99 and &A3; and between &F4 and &FF.
One word of warning - do not try out these tokens with any program that you have not already saved, as many of them may corrupt memory!
Happy hunting - and don't forget to let AMPLINEX know your results.

Related file on this disc:
F.NWdemo - annotated utility to show the use of AMPLE words not normally accessible

Published in AMPLINEX 017, May 1990

Questions and answers

Answer: Use of *TYPE

In AMPLINEX 015 Allan Gardner said that he had experienced problems when using the *TYPE command within AMPLE.
The answer may well be the Watford DFS. In using any of the commands *TYPE, *LIST or *DUMP, page &1200 is used as a buffer - but, in addition, the first few bytes of page &1300 are corrupted. So far as I know, the quirk is unique to this DFS. In the case of *TYPE, the first 4 bytes in page &1300 are set to zero.
So if, for example, the Aries control block is at &1300 or if the Staff display characters are suppressed and a module loads at this address, the use of *TYPE will cause the system to lock up. When using BASIC, the problem is unlikely to arise since page &1300 is normally unused.
The answer (if this is the cause) is to put the Aries control block at &1400 and set OSHWM to &1500 with *FX179,21 (note: 21=&15) before booting the system disc. If the *FX command is included in the !BOOT file, it must precede the */C.PREPARE R S K line.
Alan Minns

Question: Mixing Desk mystery

Can anyone please explain why the mix changes when I switch to command mode and back to edit mode in the Mixing Desk? If I run a program from the Mixing Desk, then press Tab to enter command mode (whether I enter a command or not makes no difference), and then Tab to go back to edit mode, I find that the channels have swapped themselves about.
I know it isn't a ROM clash as they are all unplugged. Ordinarily, this isn't much problem, but occasionally it has caused a few mutters because if I MAKE a mix, it makes the new setup. Is this a bug peculiar to my system, (BBC+ 128 and two double-sided disc drives), or is it just one of those things? Any advice would be surely welcome.
Bob Hanson

Question: Music City on Prestel

I have access to a modem, with membership to Prestel. Could you tell me if you have any pages on this system or a similar system, and how to access them. I have tried 'Music City' in Micronet through a gateway in Prestel, but so far have found nothing in there that shows any relevance to the Music 5000.
I have a copy of the album 'Music City II', where it explains where the songs on the album came from. It says they came from contributors of the Micronet Viewdata service. Where is it?
Philip Robert Hunter

AMPLINEX has no links with any such service. We do not know the status of Music City - perhaps other members can help? For some members comments on the use of other telephone-based sources of AMPLE, see the Features section of AMPLINEX 008.

Answer: What's a player?

In answer to David Bloxham's question in AMPLINEX 016, a player is one of the things that plays the musical parts. When a PLAY instruction is given, part1 is played on player 1, part2 on player 2 and so on. There are 10 players - only 1-9 are available with PLAY, but 10 can be used by a P(...)P instruction, although this is not necessary for most music. As well as the ten there is player 0, the master player which is used by instructions typed at the keyboard.
A definition of the word 'player' can be found on page 155 of the Music 5000 User Guide (in the glossary) and more information is given on page 12 in the introduction under 'concurrency'. I have found that this manual, and especially the tutorial section, covers most things like this, which you may not know or may have forgotten.
Michael Lefevre

Question: AMPLINEX Staff Printer (1)

Having seen Bob Ord's Staff Printer (AMPLINEX 016) working on a BBC Master it looks to be a very useful program, especially where several parts need to be printed out together. Can anybody advise on the changes required to run it on a BBC B with Aries B-32 Shadow RAM? On my BBC Model B, Shadow RAM is selected by default, but running Bob's utility simply displays the request to check lines 9-11 for Shadow RAM suitability.
I believe the lines '*FX114,0' and '*SHADOW' select the Master's Shadow RAM, but I can't find '*FX20,3' in the BBC Master User Guide. Deleting lines 9-11 results in a 'Bad program' message when the program is run. Any solutions please, boffins?
Jack Wrigley

Question: AMPLINEX Staff Printer (2)

Help! Bob Ord's Staff Printer utility published in AMPLINEX 016, gives up at line 40 in U.AS2 unless I REM out the 'CALL code%' command in that line. The JSR call at line 350 seems to be causing the trouble.
Using a BBC Model B with Aries B32, I have altered U.ASP to suit. With code% removed all the program functions seem to work OK - am I missing anything?
Neil Walker

Question: Waveform design utility

Concerning the waveform design utility published in AMPLINEX 014: having created your waveform, how do you store it and use it in other instruments? If you can't do this, what is the point of the program? If I can store waveforms for use in other instruments, then this will prove to be an extremely useful utility.
David Bloxham

Answer: 'In The Night'

In reply to Richard Bettis (AMPLINEX 016): the problem of 'too many voices' or 'too many channels' is caused by the PLAY word in older releases, like release 6. The word gives all the players a Simpleins voice if there is no word called 'mix'. Programs like 'In The Night' which have words like 'mix1' and 'mix2' (but no 'mix') are given a Simpleins voice on each player, although they are not needed. When the program tries to use its mix, there are no more voices (or channels) because they have been taken by Simpleins instruments.
Making all the other voices UNUSED is one solution, a much simpler one is to have a dummy mix word which can be created with:
"mix" []
However, it is still a good idea to get a new version of the system disc, which recognises mix words with a number.
Michael Lefevre

See the Hints and Tips section for Richard Bettis's own solution to this problem.

Question: Mozart's musical dice-game

Does anyone have any information on Mozart's musical dice game? All I know is that it is a means of assembling together a series of 'preset' musical phrases, by throwing dice, and consistently generating an acceptable musical result (waltzes, I think). It's been featured in a few magazines over the years (Practical Electronics, and Your Computer to name two) but I can't lay my hands on the back-issues. Armed with a suitable algorithm, I'd like to try coding it in AMPLE.
Vincent Fojut

Question: MIDI drum kit problem

As a newcomer to the delights of using the Music 2000, can someone solve the following problem? Page 41 of the Music 2000 User Guide gives an example of the use of VEL to balance instruments in a kit, but I can't get it to work.
The guide shows
5 SHARE 10 VOICES MIDIV
 1 VOICE 35 midikey 80 VEL
 2 VOICE 38 midikey 60 VEL
 3 VOICE 39 midikey 75 VEL
 ...
and seems to have been written with Roland gear in mind because the midikey numbers on page 40 correlate with the drums on the Roland D10 I've been using.
However, trying to apply this to the D10 causes every voice in the kit to be the same volume. The tip given recently in AMPLINEX of using [number] 7 MIDICONTROL has the same effect and cannot be used on an individual VOICE within a kit.
If anyone knows how to solve this I would be happy for you to phone me reverse charges on 081 953 6867 (before sending the answer to AMPLINEX for the benefit of other members - Editor).
Bernie Dawson

Answer: The 'M.M5' module

In AMPLINEX 016 Michael Lefevre asks about the meaning of various words in the M5 module. Referring to the Music 500 User Guide may throw a little light on some of these:
number AENV - select amplitude envelope (number in range 1-10)
number PENV - select pitch envelope (number in range 1-10)
These could well be the functions of AEN and PEN, though I cannot find any equivalent for ONEN. Maybe they access envelopes by number, rather than by name - but the available envelopes are contained in the EW module, not in M5.
I have not actually tested any of these findings, however, so I cannot be sure of their effects. Perhaps someone with more knowledge of the sound generation process would be better placed to advise.
Tony Walduck

Question: Watford Shadow RAM

I am the owner of a BBC Model B, as well as the Music 5000, 4000 and 3000. In my computer I have fitted the Watford Shadow RAM, and have found that for some reason AMPLE will not recognise it as free memory, giving about the same memory it would if it wasn't there at all. Thanks to Bob Ord in AMPLINEX 015 I gained about 1K. What has happened to the other 31K?
I also want to know whether it would be advisable to buy a second processor for my computer, as using the Shadow RAM seems to slow the computer down so much, that the music it is playing jumbles-up, as if the CPU can't keep up. Would a second processor solve this problem?
Philip Robert Hunter

Question: Shadow RAM choice

Like others I am thinking of expanding my system with a Music 3000. I have a BBC Model B and Music 4000 and would like to expand my memory with Shadow RAM. I am quite a new member and in some of the back-issues of AMPLINEX which I have received people have noted problems with Shadow RAM.
What I would like to know is: is there anybody with a Shadow RAM that works well with the music system and also doesn't interfere with other programs like games?
I would be very grateful for any assistance in selecting one.
Keith Taylor

Question: Long-playing music discs

Does anyone know of a way of chaining items of music so that all of the files on a disc can be played without user intervention - i.e. as on a long-playing record?
F Isaac-Dixon

See the Utilities section in this issue.

Answer: Music 3000 system disc (1)

In reply to David Bloxham's question in AMPLINEX 016: the Music 3000 system disc does not create an entire set of new modules; instead it updates any system disc by replacing the MIX and M5 modules and C.PREPARE. This means that the amount of memory available depends on the system disc you started with: which release it is, and what type (i.e. with or without a Music 4000, 3000, or 2000). With Shadow RAM, the screen memory, which takes up different amounts depending on the mode, is gained.
On my system, which is a Studio 5000-4 release 2 updated with the Studio -3 disc, I get 16049 bytes (nearly 16K) free with no editors loaded. With the Mixing Desk loaded I have 10664 bytes free.
Michael Lefevre

Answer: Music 3000 system disc (2)

I have obtained the following free RAM amounts with the configurations shown:
System  ------- modules loaded -------
disc    'Basic'  PAD   MIX STAFF   REC
5000     15537 10929 10673  2737   --
-4       14505  9897  9641  1705  8873
-4D      14505  9897  9385  1705  8873
-3       14257  9649  8872  1457   --
-4D-3    13225  8617  7840   425  7593
These figures are without using Shadow RAM. Using Aries Shadow RAM increases space by 768 bytes generally, but by 7936 bytes in the Staff editor.
Tony Walduck

Question: AMPLE disassembly

I have performed a cursory disassembly of the AMPLE ROM and am overwhelmed by the task of deciphering all the data. Could other AMPLINEX members who have already trodden this path offer any time-saving tips and hints - e.g. addresses of key routines, data areas, embedded AMPLE code, key memory locations, etc?
Vincent Fojut

Question: AMPLINEX and ADFS (1)

In order to save disc space, I have transferred all of the past issues of AMPLINEX to ADFS format discs, storing each issue in a different directory (e.g. 016 for issue 016). Following a tip given in an earlier AMPLINEX issue, I changed the required line in the word 'lr' to access the correct directory.
However, on issues 015 and 016 I have been unable to do this, getting a 'too long' type message when trying to TYPE the word. Can you please tell me how to get around this as I am unable to access the Music menu from my ADFS discs?
Graham M Tipping

Question: AMPLINEX and ADFS (2)

Normally I transfer AMPLINEX to an ADFS disc, which will take three issues. However, on issues 015 and 016 when I attempted to change the 'lr' word to read '$.FIFTEEN' or '$.SIXTEEN' (so that on returning from a piece of music to the music menu I stay within the appropriate directory) I met with difficulties. I change 'lr' by *SPOOLing the word to disc, loading the file into View, making the alteration and *EXECing it back into the A.MPLINEX program.
However, when *SPOOLing the word it gives the message '! Too many characters'. I assume this is because you have COMPILEd the program with Toolbox. On attempting to DISCOMPILE the program I continually get the message '! No room' no matter how many modules I do not load. Can you suggest a remedy?
M F Mellor

The reason you cannot *SPOOL the word 'lr' is indeed because it has been COMPILEd to save memory. However, the word has not been changed, so use an issue 014 disc to *SPOOL the word and then continue as before.

Question: Microphone input

I have a piece of literature advertising the Music 5000 synthesiser from Peartree Computers. On the back are examples of various screens. One of them shows a sample menu on which one of the selections is 'microphone input'.
Can this be done, or is it a bit of someone's imagination? The literature does not appear to make reference to the MIDI system so can it be attached somehow to the Music 5000 Unit?
Keith Taylor

In answer to a similar question in AMPLINEX 010, Hybrid Technology commented: "we made and demonstrated a working microphone input add-on prototype, but development was halted in 1986, and this is unlikely to appear as a product in this form. Frankly, though the unit works well, the whole principle is not as useful as you might expect."

AMPLINEX in drive 1

Like David Bloxham (AMPLINEX 016) I too have had problems in running AMPLINEX from drive 1. My AMPLINEX issues arrive on two 40-track discs which I now transfer to a single 3.5" disc. I have problems in starting (in my first issue I didn't discover the musical intro as my system went straight into the menu) and issue 016 would not load A.MPLINEX but gave a 'Too big' error.
I have solved my problems by creating a duplicate AMPLE system disc with a modified !BOOT file especially for AMPLINEX. In this !BOOT file I have deleted the 'MAIN' command and appended
*DRIVE1
"A.MPLINEX"LOADRUN
So if I now put the system disc in drive 0 and AMPLINEX in drive 1 and press <SHIFT><BREAK> AMPLINEX will run. Furthermore, all of my difficulties have gone away!
To create your own customised AMPLE system disc is easy:
1) Load the system disc and enter '*TYPE !BOOT'.
2) Enter '*BUILD !BOOT' and load a new formatted disc.
3) Use cursor arrow keys to copy the displayed lines until 'MAIN' is reached. Don't copy 'MAIN'.
4) Now enter *DRIVE1 (or any other drive number).
5) Enter "A.MPLINEX"LOADRUN then hit <ESCAPE> to save the file.
6) Enter '*OPT 4,3' and then '*ACCESS *.* L'
7) Copy from your system disc all prefixed files (all except the $. files
8) Stick a write protect tab on the new disc and label 'AMPLINEX BOOT DISC'
Fred Isaac-Dixon

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 017, May 1990

Printing out AMPLINEX information

There are three ways to print out the information seen in 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 re-format 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.
It is now also possible to print out part of a file from within AMPLINEX. There are two ways to do this:
a) To print a single page of an AMPLINEX file, make sure the 'print switch' is OFF and then select the menu option which displays the file. When the page you wish to print is displayed, and the 'Press RETURN to continue' prompt is showing at the bottom of the screen, press the letter 'P' on the keyboard. The page being displayed will then be sent to the printer. Pressing RETURN will then continue to display the file without printing.
b) To start printing part-way through a file, you can turn on the 'print switch' by pressing the CTRL and 'P' keys together when the 'Press RETURN to continue' prompt is displayed. Subsequent pages which are displayed will then be sent to the printer. The 'print switch' can be turned off again in the same way.
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 re-format 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 re-formatting 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 AMPLINEX 005 there was 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. A modification to this program (to provide a wider margin) was included in the 'Hints and Tips' section of AMPLINEX 006. See also the Update section of AMPLINEX 008 for a note concerning BASIC 1 users.

Published in AMPLINEX 017, May 1990

Next issue news

To try to bring the AMPLINEX timetable back on schedule, and fit in with summer holidays we are only having a short gap between this and the next issue.
This means that all applications for a FREE copy (i.e. those with discs containing contributions) must be received by FRIDAY 27TH JULY. Anyone paying the £2.00 fee should apply by Friday 10th August.
We are planning to include a review of the Music 5000 Synthesiser Universal (mentioned in News and Reviews AMPLINEX 015) and the first music disc specifically for Music 3000 users. Most of the content, however, depends on your contributions between now and then - so please let us have your words or music as soon as possible. In fact, why not type that question, answer, hint, or comment right now using our Feedback utility? Or copy your latest piece of music on to another disc ready for AMPLINEX?
We look forward to reading and hearing your contributions.

Published in AMPLINEX 017, May 1990

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 member'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 other software publishers.
If you do NOT wish your contributions to be considered for publication elsewhere (and thus your address not to be passed to anyone else) 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 or to make contact with other members. 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- or 80-track).
It is not necessary to send printed copies of your contributions - any copies required are printed locally to minimize postage costs.
40-track disc users 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.
Suggested file formats are:
a) AMPLE music programs - save these in normal Studio 5000 format (e.g. by selecting 'Save program' from the Studio 5000 Main menu). Since many members do not have the Music 4000 keyboard please ensure that your program has no M.M4 or M.KFX module words present. To make sure, try loading the program using your Studio 5000 system disc.
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 017, May 1990

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.

Music 3000 files

In this issue we have a couple of music files ('Close encounters...' and 'Soft as diamond') which can be played on the Music 5000 alone, or in combination with the Music 3000. This combination - using two virtually identical synthesisers - is relatively easy to program, and does not suffer from the compatibility problems which arise with Music 2000 MIDI pieces (which will never sound the same on a different MIDI instrument). We would like, therefore, to receive more such files from members with this equipment.

Uses of the Hybrid Music System

We plan to put together a feature on the different uses to which members put the Hybrid Music System in the next issue of AMPLINEX. We are looking for examples of its use in, say, performance, recording or audio-visual work and would welcome further contributions from members describing their application.
We always welcome suggestions for improvements in the workings or contents of AMPLINEX - most of the changes made to date have originated from members' suggestions. So, if you have an idea to improve AMPLINEX, let us know.
Also, please let us know if you spot an error or omission in the contents of AMPLINEX - you may be the first one who has noticed.

Published in AMPLINEX 017, May 1990

Welcome to AMPLINEX 017

Kevin Doyle and Roy Follett
In this issue, in addition to a larger than usual Questions and Answers section and our regular Hints and Tips, we have two utilities: a demonstration program to help in the creation of drum patterns and a new version of Allan Gardner's jukebox program which offers a number of useful features for linking music files together to form an automated musical sequence. We have a feature on gaining access to new AMPLE functions and reviews of two new music discs.
We have sixteen pieces of AMPLE music, some original, some which may be familiar, including a couple which have dual-purpose settings to suit both the Music 5000 synthesiser and Music 3000 expander unit.
We hope you enjoy the disc and we look forward to receiving your contributions to AMPLINEX 018.

Editor's note: we are running rather behind schedule with this issue because of my commitments to the course I am taking. These last few months have been particularly heavy, with only very short gaps between periods of course work.
Things will still be behind schedule for the next two issues (but less so than this one, I hope), with things getting back to normal at the end of the year.
Thanks for your patience and your tolerance of this erratic timetable.

Published in AMPLINEX 017, May 1990