Showing posts with label Features. Show all posts
Showing posts with label Features. Show all posts

Music 5000 and a hard disk

Bryan Anslow
Note that although the reason for writing this article was the need to change Richard Bettis' !MENU program, (Features, AMPLINEX 015) for a hard disk, it may be of use to anyone with the new '!SYSTEM' type of Hybrid software release.

Setting up

Prompted by the purchase of a hard drive for my Master 128, I needed to re-organise the many floppies which had various versions of Music 5000 software with and without the Music 4000, Music 3000 and Music 2000 add-ons, not to mention the AMPLE Toolbox utilities and vast amounts of Music 5000 programs obtained from various sources.
Fortunately, help was at hand from the !MENU program and !BOOT files which appeared in AMPLINEX 015. Now, as I recently obtained a software upgrade from Hybrid, and have a BBC Master, things are not quite as they were when that previous article appeared.
The 'M' directory contains only one file called !SYSTEM and the 'C' directory contains everything else: ROM image, loader etc.
Even when the Music 2000 and Music 3000 code is installed, it is just absorbed into the existing files and is not visible externally, only the sizes of the files change.
I decided, therefore, to create a directory for each system: M50 for the old Music 5000-1 (which I still use sometimes), M54 for the Studio 5000-4, M53 for the Studio 5000-4 plus Music 3000, M52 for the Studio 5000-4 plus Music 2000 and M51 for the Studio 5000-4 plus Music 2000 plus Music 3000, each with their own 'C' and 'M' sub-directories. Note that the short directory names are required as the MPREFIX command will only accept a maximum of 9 characters.
I have even set up a directory for good old AMPLE BCE, having renamed the AMPLE file to 'BAMPLE' to prevent conflicts with the AMPLE ROM.
Then, having copied all of my music and instrument files (obtained from AMPLINEX, Hybrid, Telesoftware, etc.) all to the same disk, things really seemed to be more manageable.
Using the !MENU program as a basis, I wrote a new version which would display an endless number of menu selections. When a menu item is selected, a directory 'path' which is associated with it is switched to, and a !BOOT file in that directory is *EXECed. The menu names and directory paths are held as DATA statements within the program, making it extremely easy to add, delete or move entries within the menu.
This can obviously be extended to almost any software, as most software arrives with a !BOOT file, or one can easily be written to run a particular package. If a package does not have an *EXECable !BOOT but, for example, a *RUNable !BOOT, then it is a simple matter to rename the supplied !BOOT to !RBOOT and write an *EXECable !BOOT to *RUN !RBOOT.

In operation

Loading of system software and music programs is now extremely quick and almost silent. Just as though everything was resident and ready for use.
Switching between, for instance, AMPLE Nucleus and AMPLE BCE is a breeze. Before it was a case of searching for the disc in an enormous pile.
The ribbon cable of the hard disk fits into the 1Mhz Bus, ahead of the Hybrid boxes. However, it seems to cause little problem to the Music 5000/3000/2000 hardware, even while doing a directory change for instance. Commands like *FREE and *MAP seem to blow AMPLE away though, requiring a re-boot to sort things out.
Sometimes, doing a *MOUNT4 to access a floppy, especially when the Wordwise Plus and Printmaster ROMs are present, causes AMPLE to switch to the Edit ROM, even when it is 'unplugged'.
AMPLE BCE programs, especially those which use 'Preset1' (which I have always found to be a bit sensitive), do slow down a bit, or sometimes a lot, when any access of the hard drive is done.
Otherwise, everything seems to be running fine at the moment, although now I have received AMPLINEX 024, I am investigating the possibility of using the program to separate out the various parts of the !SYSTEM module, and re-vamp some of the !BOOT files.
With the capability to store so much data on a hard disk, it is essential to organise the directories so that a logical structure is formed. I even, periodically, run the Welcome disc 'EXALL' program and direct the output to a floppy disk. This was extremely useful a couple of weeks ago when the archive utility overwrote the first &70 sectors of the disk, corrupting the root directory and making all of the data inaccessible.
I had to use a disc sector editor to rebuild it from the disk addresses in the 'EXALL' listing. In this way I managed to copy about 90% of the data to floppies using the Welcome disc 'COPYDIR' utility, then re-format the hard disk and copy it all back, again with 'COPYDIR'. All I need now is enough floppy discs to archive it without corrupting anything again.
Some files
The !BOOT file which is in the root directory and which is *EXECed at switch on is:
*MOUNT0
*DIR $
CHAIN"!MENU"
The boot file in the M5000-1 directory is:
*BASIC
*/C.PREPARE R S K
*FX 202,48
*FX 118
*AMPLE
% Release 1
"$.M50.M." MPREFIX
"INT" INSTALL
"M5" INSTALL
"EW" INSTALL
"MENU" INSTALL
"FX1A" INSTALL
"INS1" INSTALL
*DIR $.MSAMP
MAIN
The !BOOT file in the 5000-4 directory (which is similar to those in the other 'Studio' directories) is:
*BASIC
*/C.PREPARE R S K
*AMPLE
% Studio 5000-4M Release 2
"$.M54.M." MPREFIX
*/C.INSTALL
MAIN
*DIR $.MSAMP

Related file on this disc:
F.!Menu - BASIC program to allow choice of AMPLE system set-up

Published in AMPLINEX 026, May 1992

Subject: Slide - further explanation

Alan Minns
The problems and difficulties associated with the use of Slide, due in no small measure to the inadequate and misleading example in the Music 5000 User Guide (sorry, Hybrid), have arisen more than once in AMPLINEX.
Mr Richardson (AMPLINEX 023 Features) seems to have solved the problem although not entirely to his complete satisfaction. May I therefore try to fill in one or two gaps?
The primary point is that ON Slide and OFF Slide are essentially brackets of a special kind. Inside these brackets, the symbol 'L' changes its meaning from referring to a dynamic level to referring to a pitch shift or offset measured in quarter-semitones. One important point is that ON Slide does NOT set the offset to zero! If it is not defined inside the brackets (e.g. 24=L), the offset which is used in the Slide is the numeric value of the current dynamic level.
So, by defining an offset of 24=L, the sound will start 24/4=6 semitones above what is expected, or below for -24=L. Then 24 8 -L or 24 8 +L will give a fall or rise in pitch to the 'normal' value over 8 beats of the current note length. The note length as defined by the comma setting, is typically '1,' which is something like a third of a hemidemisemiquaver (for the usual crotchet setting of 48,).
To calculate the correct bar length, consider the usual specification of 48, 4 BAR which gives a bar length of 192. Taking the essential data from Mr Richardson's example, we have:
1, F 23 FOR(/)FOR 24, ////^
This amounts to a length of 1*(1+23)+24*5 = 144. To complete the bar 192-144 = 48 or two more holds at the current 24, setting.
I hope only that the above does not further the confusion.

Published in AMPLINEX 024, January 1992

Instrumentation – more opinions

In AMPLINEX 021 (Question and Answers) Ian Waugh expressed some opinions on what was suitable music for the Music 5000 system and this prompted a reply by John Bartlett in AMPLINEX 022 (Features). Since then we have received two further contributions to this debate.

Instrumentation - further comments

Jim Brook
I hesitate to enter a discussion between such 'eminences grises' as John Bartlett and Ian Waugh, but it seems to me that it echoes some of the views on the current fashion for playing classical music on 'authentic' instruments.
There are quite strong disagreements on the subject. Ian claims that exact transcriptions with 'inexact sounds' don't seem right. But what is the 'right' sound? Isn't it simply a matter of personal preference? I'd rather listen to Hogwood's Academy of Ancient Music playing Gluck's 'Dance of the Furies' to any version on modern instruments - but the reverse is true in the case of many other classical 'lollipops'.
I imagine I am in a minority of one when I say that my interest in Hybrid music is very largely confined to its aid in learning difficult (to me) passages of vocal music. Consequently, I find most of the music files on AMPLINEX amazingly clever in computing and Music 5000 terms but a musical non-event. The only ones to interest me are those which are transcriptions of pieces written for conventional instruments.
But that's just me. Perhaps if Mozart had been born just a few years ago, we might now have been listening on the Music 5000 to a piece by him (aged 5) of supreme musical complexity and employing, inter alia, a wuzzchime and a crinklehorn. Who knows?

Instrumentation - further comments

D J Barton
Original or existing music for entry into AMPLE? For me the answer is - it must be both. My own taste in music covers the spectrum from the popular classics, through the folk music of the Spinners, the pop records of the past 30 years or so, to the records of today - including Cliff, The Cure, and James Galway. My current favourites are Jean-Michel Jarre, Andreas Wollenvieder (I bet that's spelt incorrectly!), and Kitaro. Quite a varied menu I feel and that's what music is all about.
However, just owning a Music 5000 is not going to transform anyone into a great composer any more than owning a word processor would make them an author. Some of us will have to stick to using books of simple keyboard music!
Incidentally, has anyone out there considered entering any of the music of Kitaro, especially 'Silver Cloud'? Perhaps a challenge to Michael Harbour whose 'moon' I really liked.

Published in AMPLINEX 024, January 1992

Slide - an attempted explanation

G H Richardson
On page 125 of the Music 5000 User Guide a short item on the subject of the Slide command appears. It has never struck me as adequate and even the example given is, I understand, not correct. The correct example is:
12=L ON Slide % turn on Slide
              % (sets offset to 0)
48, 12 8 -L   % down by 3 semitones
              % over 8 beats
0:c/// ////
OFF Slide     % turn off Slide
In order to explain the Slide function I will use an example which I have used in a piece of music.
"s1" [1: 1,
ON Slide
-24 =L 24 24 +L
F 23 FOR(/)FOR
24, ////^
OFF Slide
]
Using 's1' as our guinea pig I will take each character or group and attempt an explanation of its purpose.
[1: 1,
The first '1' is the octave setting. The second '1' still mystifies me, but the number placed there affects the rate of climb/fall of the slide. '1' is the fastest, '2' is slower, '3' slower still, and so on.
ON Slide
This turns on Slide and sets the offset to 0.
-24 =L
The 24 has to do with tick count (I think). The minus (or plus) before it is connected with the slide function (up or down). In this case the slide is going up and the 24 must be preceded by minus. The 'L' in the last character of the following group must have the opposite sign (plus) to achieve the upward slide. In other words '-24 =L' followed by '24 24 +L' is up; '+24 =L' and '24 24 -L' is down.
24 24 +L
The first '24' determines over how many semitones the slide travels. In this case it is 6 semitones (from C to F) which with a tick count of 24 seems to make it 4 ticks per semitone. In any case the tick count of 24 mentioned in the previous paragraph ('-24=L') must be the same as the tick count in the first '24' here.
The second '24' determines the duration of the slide - in this case 24 ticks. If the number were, say, 12 the rate of climb would be quicker and the duration shorter.
The '+L' (together with '-24=L') makes the slide go up.
F 23 FOR(/)FOR
'F' is the pitch of the finishing note - hence the necessity to use another slide if you want to finish on a different note.
'23 FOR(/)FOR' is the number of 'holds' over which the sliding note is sustained. It is also connected with the middle '24' in the previous group in the sense that the '23' holds plus the 'F' make 24.
24, ////^
These characters appear to control the note length (and accordingly the speed) of the notes which follow the slide note within the same bar.
Notwithstanding all this, I confess that the calculation of the number of holds required to get the bar value right defeats me and I usually have to put in what I think is a suitable number of holds and then fudge it up or down until it fits. The rest also appears to be necessary even when you do get the right number of holds.
OFF Slide
This merely turns slide off.
It will be obvious that I am not a technical man, but this is a practical attempt to explain slide by detailing methods which, through blood, sweat and tears, I have found will work - given a bit of fudging here and there. How they work I don't always know, but that they do work I do know. The best of luck with your experiments.

Published in AMPLINEX 023, November 1991

Instrumentation

In reply to a question about obtaining 'real' instrument sounds from the Music 5000 (AMPLINEX 021 Questions and Answers), Ian Waugh made the following comments:
The problem with doing exact transcriptions and then playing them with inexact sounds is that they don't sound quite right . . . Original compositions specially written to take advantage of the strengths of the system (are) the most successful . . . Write with what you have, not with what you wish you had.
He continued:
John Bartlett's 'Symphony' is a tour de force of programming and arranging and I heartily agree with the comment that it is well worth adding to your collection. But however clever the programming may be, the result is not quite the same as the London Philharmonic, is it?
In this feature, John Bartlett presents an alternative view.

Instrumentation - a reply

John Bartlett
Whilst totally concurring with the view that the most successful results come from writing original music tailored to the Hybrid system, this does little to promote understanding of the nuts and bolts of 'real' music.
If users wish to expand their overall abilities, the restrictions imposed by the system could prove to be counter-productive. I sincerely believe that attempting to replicate 'real' music is one of the most self-expanding exercises possible. Agreed, the final result will never be entirely convincing, but the practical lessons to be learned are priceless.
For example, before undertaking the task of writing 'Symphony' I thought that I had a reasonable understanding and awareness of the instrumentation and harmonic structures of the music to be used, having loved the pieces for many years.
The inherent richness which I discovered as a result of trying to transcribe the works was a revelation. So much of the composer's sheer genius goes largely undetected by simply listening to his work. My respect and admiration for Beethoven in particular, grew by leaps and bounds.
I feel that my own understanding of music, in the widest sense, was dramatically increased by the exercise. It was an extremely difficult disc to write, even though the music and arrangements did not have to be conceived.
Rewriting full orchestral scores for eight voices of limited scope was without doubt the most difficult part, but this very difficulty led to deeper understanding of the system itself (let alone the music).
My view is that provided the user is aware that there are limits, but is prepared to push them as far as possible, the exercise is very worthwhile.
The experience gained can then be incorporated in dedicated music for the system.
One note of caution to those who believe that the solution to their problems is the acquisition of MIDI based sample players:
It ain't that easy!
Wonderful things can be achieved via MIDI, but it will NOT replace musical ability and understanding. If you wish to replicate the current output of popular music you will probably have a lot of success, but if your aspirations are more wide-ranging, then be ready for a few problems, regardless of how good the specification of the equipment is.
Finally, over the years there has been a lot of criticism of MIDI for various reasons. Whilst agreeing that it is possible to improve anything, I think that if handled properly it is an answer to the thinking musician's prayers. In combination with AMPLE quite stunning results can be achieved - with a little (or a lot) of thought.

Published in AMPLINEX 022, July 1991

More about mixes

Roger Sapolsky
Several articles dealing with mixes have appeared in past issues of AMPLINEX, but this feature harks back in particular to G H Richardson's excellent 'Beginner's guide to unmixes' which appeared in AMPLINEX 011. There is, however, a difference. Whilst that article was based on the use of the Mixing Desk, I will be dealing with the Notepad only. This is not just to be contrary - it's because I find advantages doing it that way:
1) Because I type my programs in Notepad, it is time-saving to remain in Notepad when typing or altering mixes/unmixes
2) I find it simpler. There is no need to search in the user manual for a forgotten command (should I press 'i' or 'p' to do that?)
3) The Mixing Desk module is almost 1600 bytes bigger than the Notepad module. A mix might be one the first things you create in a program, but adding or changing mixes later, when the program has reached a considerable size, might not be possible using the Mixing Desk. Calling the Mixing Desk might then bring an unexpected colourful 'avant-garde' display and the 'Too big!' message
4) After looking at a very complicated John Bartlett program, I think using the Mixing Desk for such a program would be impossible.
To explain the use of Notepad for creating mixes and unmixes, I will describe an example of creating new mixes for an existing piece of music.
1) The piece might start with mix1, which allocates player 1 two voices, player 2 four voices and players 3 and 4 one voice each. This would give a mix as shown below:
"mix1" [M5MIX
1 SHARE 2 VOICES
  1 VOICE instrument1...
  2 VOICE instrument2...
2 SHARE 4 VOICES
          instrument3...
3 SHARE 1 VOICES
  1 VOICE instrument4...
4 SHARE 1 VOICES
  1 VOICE instrument5...
PNUM SHARE ]
2) We might then want 'mix2' to transfer one voice from player 2 to a new player 5. Assuming the transferred voice is the first (1 VOICE), this would give the following mix:
"mix2" [
2 SHARE 1 VOICE UNUSED
5 SHARE 1 VOICES
  1 VOICE instrument6...
PNUM SHARE ]
At the beginning of 'mix2', I have omitted the 'new mix' command M5MIX, which is not necessary when a mix is not processed through the Mixing Desk (see the Music 5000 User Manual page 83). Following '2 SHARE', you might expect to read '3 VOICES', since one voice has been subtracted from the four voices allocated to player 2 by 'mix1'. Actually, things go just as well without this command, although it could be included as a reminder.
3) Next we might wish 'mix3' to transfer another voice from player 2 to a new player 6. Noticing that player 2 now owns voices 2, 3 and 4, the voice selected for transfer can only be one of these three - say voice 2 (all three use the same instrument).
So, 'mix3' then reads:
"mix3" [
2 SHARE 2 VOICE UNUSED
6 SHARE 1 VOICES
  1 VOICE instrument6...
PNUM SHARE ]
During the programming of this piece, I first typed '1 VOICE UNUSED' instead of '2 VOICE UNUSED'. It took me some time before finding this was the cause of the message 'Too many players'. Because voice 1 had already been transferred by mix2, mix3 couldn't transfer a voice which player 2 didn't have.
4) In 'mix4' players 5 and 6 relinquish their voices for use by players 1 and 2:
"mix4" [
5 SHARE 1 VOICE UNUSED
6 SHARE 1 VOICE UNUSED
1 SHARE
  3 VOICE instrument1...
2 SHARE
  2 VOICE instrument3...
PNUM SHARE ]
Because player 1 owns voices 1 and 2 given to it by 'mix1', the voice coming from player 5 must be labelled '3 VOICE'. Similarly, player 2 owns voices 3 and 4, so the voice transferred from player 6 is then labelled '2 VOICE'.
5) Finally, 'mix5' returns the program to the state given initially by 'mix1':
"mix5" [
1 SHARE 3 VOICE UNUSED
2 SHARE
  1 VOICE instrument3...
PNUM SHARE ]
The chart below helps to visualize what voices serving a player are active, in each mix. The players are shown across the top of the chart, the mixes down the edge. The numbers in the boxes represent the voices on each player. An 'X' indicates that the voice shown in this position in the previous mix is freed by this mix.
player: | 1   | 2    | 3 | 4 | 5 | 6 |
--------|-----|------|---|---|---|---|
mix1    | 12  | 1234 | 1 | 1 |   |   |
mix2    | 12  | X234 | 1 | 1 | 1 |   |
mix3    | 12  | X34  | 1 | 1 | 1 | 1 |
mix4    | 123 | 234  | 1 | 1 | X | X |
mix5    | 12X | 1234 | 1 | 1 |   |   |
Whatever the number of mixes and the number of voice changes in your program, a chart of this type, if given a little attention, will rid you of the dreaded 'Too many voices in player...' message.
The method described above is designed to be 'efficient' in the sense that as few voice changes as possible are used. This is in the hope of minimising the number of 'glitches' (brief gaps in a player's output) which might occur.
An alternative, but less 'efficient' method, is to free all voices on a player and then redefine all the voices, including the ones which haven't changed, thus eliminating the need to worry about which voices were previously in use.

Published in AMPLINEX 021, March 1991

Using MIDIBEND on the Roland D110

Roger Sapolsky
The points discussed here will be of interest to those who, like me, have tried using the MIDIBEND instruction on a Roland D110 (or D10, or MT32) and have found the information given in the Music 2000 User Guide (see pages 42 to 46) is too brief, and is in some cases misleading.
Consider for instance 'sb' at the top of page 43. The score following it will not play a D unless the 'Bender Range' (let's call it 'BR') of the instrument is set at 8 (the default being 12). This setting can be done manually on the D110 front panel, but it is obviously better to let the program do that for you. The exclusive message to enter after SCORE has the form:
-1 &41 &10 &16 &12 address value checksum sysex
The bytes &F0 and &F7 which start and terminate all exclusive messages are provided by 'sysex', see page 56.
The other variables are explained below:
address - the address map in the Roland D110 user manual lists the addresses of the 'timbre temporary area' used by each of the 9 parts, or players. For player 1, this is hex 03 00 00, for player 2 it is 03 00 10, etc. Chart 5-2 indicates that 00 04 must be added to the address to reach the BR, so the address to use for player one's BR is 03 00 04.
checksum - to calculate this, convert the 3 bytes of 'address' and the byte 'value' (if given in hex) into decimal, and sum up the 4 numbers. If the total is <= 128, subtract it from 128. If it is larger than 128, subtract it from 256. The result converted into hex is the checksum.
This gives the full message:
-1 &41 &10 &16 &12 03 00 04 8 &71 sysex
value - this is the required BR. A BR of 8 (giving the multiplier 1024 found in words such as 'sb' and 'gl') produces a bend of one semitone.
Larger BRs can be used, provided the multiplier 1024 is reduced to lower values in all word definitions, as shown by this chart:
                           semi-tones
       (*)                 max bend
BR  checksum   multiplier  up   down
-------------------------------------
 8     &71        1024      7    -8
16     &69         512     14   -16
24     &61         341     24   -24
(* valid for player 1 only)
To experiment with the words given in the User Guide, it is best to enter a normal mix9 including one instrument or more with parts 1a, 1b, etc., each containing a particular trial. After saving the resultant program, the words it contains are ready for SPOOLing and EXECing into other programs where required.
Using 'slurbend' (Music 2000 User Guide, page 44) you may have wondered why the third note in the score (C) sounds out of tune. This is because C is located 10 semitones above the D preceding it, while the maximum possible pitch bend is 7 semi-tones (using BR=8). The score should thus have been written:
C ~D ~c c ~D
(the User Guide may have been corrected since I received mine).
Another error occurs in the comments after the word 'glh' (page 44): read "on 7th beat" instead of "on 3rd beat". At least this one won't do any harm to your ears.
In the comments for the word 'gl' (page 44) it is not said that a negative sign should be placed before the number of steps to play a down slide - an explanation of this would have saved me a lot of time.
Finally, there are several examples given in the Music 2000 User Guide where beginners may wonder why they don't hear anything when pressing f1.
Just as you enter
READY 1 VOICES Upright
in non-MIDI AMPLE, you should enter
1 VOICES MIDIV number MIDIPROGRAM
here.
If the Roland D110 user manual is to be believed, the BR can be set using RPC (registered parameter control) numbers. Numbers 100 (LSB) and 101 (MSB) are given in the Roland MIDI implementation chart. I have tried a lot of instruction configurations, but trial and error hasn't brought me the correct answer, hence my use of the more complicated exclusive messages.
Included on this disc is a demonstration program, called 'F.Bendemo', in which two saxophones play the introduction of an Ellington piece - four bars with pitch bends. By the way, you should give up any hope of playing the slide in the first bar of 'Rhapsody in blue' using MIDIBEND: it climbs up a record of 28 semitones!

Related file on this disc:
F.Bendemo - Demonstration program of MIDI-controlled bends for the Roland D110. Music 2000 MIDI commands have been commented out so that it can be loaded by members without the system.

Published in AMPLINEX 020, November 1990 

A brief history of AMPLINEX

Roy Follett
AMPLINEX has now moved into its fourth year of operation and I feel this is an opportune time for a short review of our aims and activities. During the last three years our active membership list has constantly changed, with the number of new members joining almost matching the number who have either lost interest in AMPLE or looked elsewhere for information.
AMPLINEX was born of a casual thought of mine. Sitting at the Beeb, after what seemed hours wrestling with and not solving a particular AMPLE problem, I said to myself, 'somebody out there must have already solved this problem, if only I could talk to them.'
Luckily, I had on my files a name given to me by Nigel Sixsmith. Early users of AMPLE will remember that Nigel started a short-lived AMPLE User Group. It was a shame it failed: I think it was mainly due to it being paper-based. However, the name he had given me was, of course, Kevin Doyle.
Kevin had developed an idea for a disc-based AMPLE Music Exchange and was arranging to advertise the idea through Nigel Sixsmith's AMPLE User Group newsletter when the group folded. Following lengthy discussions between us, we decided to launch AMPLINEX - Kevin would be the editor and I would look after the administration. If Kevin casts his mind back to those discussions, I think he will agree that I probably railroaded him into getting involved. Anyway, he provided the software expertise that was needed to design the disc-based magazine, and we set about constructing the first issue, based on our own contributions.
Having had the idea, now we had to make it work. The second bit of luck turned out to be the enthusiasm of the members, who seemed to be brimming over with ideas, music, hints etc. All that was required was AMPLINEX: a method by which this knowledge could be spread around.
Since the beginning of AMPLINEX I have been amazed at the amount of expertise and knowledge that has been submitted by our members. A quality so high that you, the members, can quite justly feel proud that you have made AMPLINEX highly regarded as a fount of AMPLE knowledge.
Well, that's enough praise - you might start resting on your laurels. At the moment we have approximately four hundred current and lapsed members. At duplicating time I do, on average, eighty discs; but during the following months this number can be expected to rise to about one hundred and fifty. As new members join and take back issues, the final total may rise to around one hundred and eighty discs per issue.
Of the discs distributed, on average, 25% are free of charge. In other words, a quarter of our members make submissions of some sort for each AMPLINEX disc. This might seem a low number, but I consider it a very good percentage. I doubt whether any of the home computer magazines can claim that 25% of their readers regularly write to them.
It would be nice, though, if there were more submissions; just think how good the content of AMPLINEX would be if we doubled that figure. But I am afraid that some members think that they have nothing to offer, and if they do submit something they feel the need to apologise for its quality, or that it has been sent in before.
All I can say to such reticent members is: send it in. Kevin will decide whether to use it or not. You have nothing to lose and a free issue to be gained. A free issue is earned by the submission, not by whether it is finally used in AMPLINEX.
This might be a good time to apologise to those members who in the past have made submissions, earned a free issue, and then failed to see their work on the disc. Basically, I make the decision as to whether to return your cheque and not the editor, so in general all submissions (except adverts) are accepted in place of payment. To say to a member, 'we could not get your hint or your music on the disc therefore you cannot have a free issue' would be wrong.
Unfortunately, the disc is of finite size, and some items have to be omitted or held back for later use.
Whether we will be still going in 1993 is anyone's guess, but our longevity is dependent on the participation of as many members as possible. If we get no submissions then there will be no AMPLINEX.
We do have some warning signs: we distributed two hundred and five copies of AMPLINEX issue 001; by issue 014 that figure had dropped to about one hundred and fifty. So, in general, there is a decline in interest. At the same time, those members we still have are as enthusiastic as they ever were. So I say again, we need your help to let us keep the future reputation of AMPLINEX as high as it is now.
In case new members have not realised: AMPLINEX is not a User Group with a panel of experts acting as a source of AMPLE knowledge, but an Exchange (PO box if you like) with the ability to put you in touch, via the disc, with other AMPLE users. So if you have problems it is the other members who will try and give you assistance, based on their experience.
As most members will realise, running AMPLINEX is a spare-time occupation taking, as far as I am concerned, ten hours a week. This an average over a two month period and doesn't include duplicating day. The majority of the time is spent reading and listening to the submissions, and then entering the details on my database. This database is used by Kevin to keep track of what he has and has not used.
To keep the administration to a minimum, may I make a few requests to members making submissions, which would help me a great deal:
Firstly, when filling in the release form, at the section marked 'content', if the file is music, would you put whether the copyright is your own or not. Secondly, if you are purchasing back numbers and making a submission, please send two cheques: one for two pounds (for the next issue), and the other to pay for the back issues.
One last point: as we have been running late for some time now, members quite rightly get a little worried in case their discs have gone astray - especially when they see their cheques have been cashed. All I can say to members is, if you are worried please write to me, but please enclose a SAE for a reply.
Finally I would like to thank all of our members for their marvellous support over the last three years.
Now, I wonder if I solved the problem that started it all?

Published in AMPLINEX 019, September 1990

Index to AMPLINEX issues 013 -018 (Sept 89 - Jul 90)

Patrick Black
The headings to the Index are pretty well self-explanatory. Directory prefixes are used to indicate in which section an item appears on the AMPLINEX screen menu, as follows:
Directory prefixes
$ = Music
A = Introduction & Adverts
F = Features
H = Hints & Tips
I = Instruments
N = News & Reviews
Q = Questions & Answers
U = Utilities
All the '$' music files have now been gathered together in the 'M' section of the Index - it seemed more logical and the quote marks took up valuable space! Note the issue code M13 for files on the music disc sent with issue 013 (September 1989).
Questions and their answers often appear in separate issues of AMPLINEX, so the letters 'Q' or 'A' or both, are placed with the issue number, depending on whether the item is a question on its own, an answer to a previous query, or is a question accompanied by a response.
There is a ROM compatibility table, compiled from members' submissions, at the end of the Index.
Subject               Issue Filename
--------------------- ----- ---------
*TYPE
 Instrument location  013   H.ints013
 Machine 'hanging'    015Q  Q.uest015
                      016A  Q.uest016
 and Watford DFS      017A  Q.uest017

A

AEN                   016Q  Q.uest016
                      017A  Q.uest017
                      018A  Q.uest018
AMPLE
 !BOOT files,
    modules and
       memory         015   F.Boot
 '!File read only'    016Q  Q.uest016
 Benchmarks (BBC v
    Electron)         014Q  Q.uest014
 Bibliography         009   H.ints009
  continued           013   H.ints013
 Chaining files       017QA Q.uest017
 Clear screen word    015   H.ints015
 Copyright on music   014QA Q.uest014
 Deadening sounds     018   H.ints018
 Disassembly          017Q  Q.uest017
 Drum machine trigger 012Q  Q.uest012
                      014A  Q.uest014
 Finding new words (non-user
    accessible)       017   F.newword
  annotated utility   017   F.NWdemo
 FOR(...)FOR and f1   018Q  Q.uest018
 FX1A module problems 017   H.ints017
                      018A  A.update
 Keypress get word    015   H.ints015
 Letters after modules018Q  Q.uest018
 Making longer progs  012   F.LongPrg
                      013   H.ints013
 MCAT display         018Q  Q.uest018
 MENU
  command line length 015   H.ints015
  control over        015   H.ints015
  re-making           014Q  Q.uest014
                      015Q  Q.uest015
 Mixing Desk with more than
    40 instruments    015Q  Q.uest015
 Mixing Desk mystery  017Q  Q.uest017
 Modules and memory   015QA Q.uest015
 Music 500
  Convert C.PREPARE to
     access waveforms 013   U.PrepInf
                      013   U.Prepper
 Music 1000                         
    headphone output  012   N.ews012
                      013   H.ints013
 Music 2000
  and Casio CT-460    016   N.ews016
  and Casio HT3000    012Q  Q.uest012
                      014A  Q.uest014
  MIDI-IN             016Q  Q.uest016
  MIDIRT signals      016   H.ints016
  and Roland CM32L    016Q  Q.uest016
  VEL in drum kit     017Q  Q.uest017
 Music 3000
  multi-channel instr.016   H.ints016
  system disc and free
     memory           016Q  Q.uest016
                      017A  Q.uest017
  Watford Shadow RAM  014Q  Q.uest014
                      015A  Q.uest015
                      017Q  Q.uest017
 Music 4000
  delete file         014Q  Q.uest014
  drums on Music 4000
     keyboard notes   015   U.Drumtxt
   program            015   U.DrumKey
 Music 5000
  amplification       018   H.ints018
 PAN values & volume  014Q  Q.uest014
 PLAY in FOR( loop    016QA Q.uest016
 Player - what is it? 016Q  Q.uest016
                      017A  Q.uest017
 Preset popularity    013   F.instrum
 Published articles   017   H.ints017
 ROM compatibility
     see table below Index
 Scrolling text       015Q  Q.uest015
 Separating notes
  query               013   $.VolunDm
  with 'Len'          014   H.ints014
  with ON PHSET       014   H.ints014
 Sideways RAM
  Integra-B           016   H.ints016
  Solidisk 128        013Q  Q.uest013
 SLIDE command        017   H.ints017
 Staff editor
  avoid memory limits 014   H.ints014
                      018   H.ints018
  black on white      014   H.ints014
  memory saving       018   H.ints018
  'Too many voices'   016A  Q.uest016
                      017A  Q.uest017
 Transposing instruments
  brass '@' offsets   013A  Q.uest013
  guitar              016   H.ints016
 User words limit     014Q  Q.uest014
AMPLE PLAY tutor      018   N.ews018
AMPLINEX
 015 menu fix for missing
    Utilities display 016   A.update
  EXEC file           016   $.015fix
 and ADFS             017QA Q.uest017
 Address              ALL   A.contrib
 and CEEFAX           013   A.Update
 Compatibility of music files
  Music 2000          014   F.Mcompat
   example files      014   $.Metal
                      014   $.Metal/2
                      014   $.Metal/5
  Music 3000          014   F.Mcompat
   submissions        017   A.update
  Music 5000/2000     016   F.M5/2cmp
   music example      016   F.NiceWrk
  on commercial discs 017   N.ews017
 Competition          013   A.Compinf
  entry 'form'        013   A.Comp000
 Contributions        ALL   A.contrib
  closing date        ALL   A.nextiss
 Control program
  compatibility       015   A.update
 Crumple TMS to AMPLE converter
  notes               018   U.CrumTxt
  utility             018   U.Crumple
 Delays to issues     009   A.welcome
                      015   A.welcome
                      017   A.welcome
 and Drive 1          016QA Q.uest016
                      017A  Q.uest017
 Drum pattern utility 017   U.DrumPat
 Hybrid system uses
                  015-017   A.update
  feature             018   F.HMSuses
   film sound tracks
   instrumental tuition
   learning vocal music
   school musicals
 Index
  volume 2 (007-012)  013   F.index2
  volume 3 (013-015)  016   F.index31
  M09/009 code error  014   A.Update
 Member to member
    comments          013   A.Update
 Music 2000 files     014   A.Update
                      015   A.update
 with Music 3000      014QA Q.uest014
 Music 4000 keyboard
    split utility     015Q  Q.uest015
 Music 5000 waveform
    editing utility   014   U.Wave
  notes               014   U.WaveTxt
  Music 500 presets   014   U.Preset1
  storage & use       017Q  Q.uest017
 Printing data        ALL   A.print
  with Interword      013   H.ints013
 Programmable Jukebox version 2
  notes               017   U.Juketxt
  utility             017   U.Jukebox
 ROM ID               018   A.update
 Sideways RAM utilities
  source code         012QA Q.uest012
                      014A  Q.uest014
 Spectral Harmonic Analyser
  notes               013   U.ASHAinf
  utility             013   U.ASHA
 Staff Printer utility
  notes               016   U.ASPinfo
  printer driver      016   U.ASPcode
  main program        016   U.ASP
  secondary program   016   U.ASP2
  and Aries B-32      017Q  Q.uest017
                      018A  Q.uest018
  replacement PD      018   ASPcode
 Unused word search
  notes               013   U.Freeinf
  utility             013   U.FREE

C

Casio CT-460          016   N.ews016
Casio HT3000          012Q  Q.uest012
                      014A  Q.uest014
Compatibility of commercial
 music files          017   N.ews017

D

 Drum pattern utility  017   U.DrumPat
 Drums on Music 4000 keyboard
  Notes                015   U.Drumtxt
  Program              015   U.DrumKey

F

 Fast Fourier Analysis
  Notes                015   U.FFAtext
  BASIC program        015   U.FFA
 FX1A module problems  017   H.ints017
                       018   A.update

G

"Ghost fonts" on
     AMPLE DCT        015Q  Q.uest015
                      016A  Q.uest016

H

Hybrid
 AMPLE Toolbox        013   N.ews013
  delivery delays     015   N.ews015
  review              015   N.ews015
  with Solidisk SWR   016Q  Q.uest016
  SWR restrictions    014   N.ews014
 Discs
     see 'Music Discs'
 Manual improvement   015   H.ints015
 Microphone input     010   F.HTQ&A
                      017QA Q.uest017
 Music 1000
    headphone output  012   N.ews012
                      013   H.ints013
                      014   N.ews014
 Music 3000 review    014   N.ews014
  specification       013   N.ews013
 Music 5000 Universal 015   N.ews015
  and RM Nimbus       015   N.ews015
  comments            016   N.ews016
  review              018   N.ews018
 Soundscape           015   N.ews015
 Soundspace           015   N.ews015
 Studio 5000 Release 6
    errors            016QA Q.uest016

I

Ian Waugh             015Q  Q.uest015
IBM compatibility     015   N.ews015
 comments             016   N.ews016
Instrument design
   research           013   F.Instrum
Instruments
 12string             014   I.nstr014
  demo                014   $.12stDem
 Bassguit             014   I.nstr014
 2' 4' 8' 16' 32'
    organ voices      014   I.nstr014
 Thunder              008Q  Q.uest008
                      014Q  Q.uest014
 Trumpet              015Q  Q.uest015
Interlace, mode 7     016A  Q.uest016

K

Korg DDD-5
 Drum machine         013   H.ints013
 MIDI access to
    functions         013Q  Q.uest013

M

M5 undocumented words 016Q  Q.uest016
                      017A  Q.uest017
                      018A  Q.uest018
MCPS address          014QA Q.uest014
Microphone input      010   F.HTQ&A
                      017QA Q.uest017
MIDI-IN               016Q  Q.uest016
MIDIRT signals        016   H.ints016
Mozart's musical dice 017A  Q.uest017
                      018A  Q.uest018
Music City on Prestel 017QA Q.uest017
                      018A  Q.uest018
Music Discs
 John Bartlett
  Jazz Disc vol. 2    015   N.ews015
  Impressions         016   N.ews016
  PLAY AMPLE Tutor    018   N.ews018
 Phil Comber
  Legend of Obernell  018   N.ews018
 Hybrid
  AMPLE Bytes Back, extra parts in
  Hooked on Tchaikov. 013   H.ints013
  Ashes               017   N.ews017
  Electricity         013   N.ews013
  Music City 1, extra music in
     Ice Breaker      014   H.ints014
  Shivering Again     013   N.ews013
  Windy Island        018   N.ews018
 Panda
  Bernie Dawson disc  015   N.ews015
  Number 12, The Noige,
     Moments in Time  016   N.ews016
  Number 13, Bernie Dawson,
     Jean-Michel Jarre016   N.ews016
  Children in Need 1  015   N.ews015
  Children in Need 2  016   A.adverts
  Take a bite         017   N.ews017
Music files
 Abandis              016   $.Abandis
 Andante cantabile    015   $.Cantab
 Arabesque            M13   $.Arabesq
 The Battle           015   $.Battle
 The Big bag          017   $.BigBag
 Blue Monday          016   $.BlueMon
 Breathing still      016   $.BreathS
 The Brig' at Lochans 018   $.Brig
 Chanson de matin     017   $.Chanson
 The Christmas song   014   $.Christm
 Clarinet quint. in A 016   $.ClarinA
 Close encounters     017   $.CloseEn
 Coolicks             018   $.Coolick
 Crossing the Minch   018   $.Cross
 Danza                018   $.Danza
 Django's castle      016   $.Django
  hanging problem     018   A.update
 Doctor Gradus ad
    Parnassum         M13   $.DocGrad
 Drum kit demo        013   $.DrumKit
 Eine kleine nachtmus.017   $.EKNacht
 Electrix             014   $.Electrx
 Endangered species   014   $.Endangr
 En vacances          017   $.Vacance
 Evening falls        013   $.Evening
 Fairly quiet bit     014   $.FQuiet
 Falling snow (music) 014   $.Falling
  title screen        014   $.FallPic
 Fanfare for the Common Man
  sheet music         012Q  Q.uest012
                      014A  Q.uest014
  trumpet             015Q  Q.uest015
 Fantasia absolute &
    divertimento      014   $.Diverti
 Fantasy number 1     015   $.Fantasy
 Floor 6 Sunday       018   $.Floor6
 Free form            M13   $.FreeFrm
 A Glimpse...         018   $.Glimpse
 Happy birthday       013   $.HappyB
 Highly strung        017   $.Strung
 Homeless             018   $.Homelss
 Horrible alien       M13   $.Horribl
 How tremendously
    stimulating       015   $.How
 Humantouch           016   $.HumanT
 Humphrey where's
    my cuppa          M13   $.Humph
 Idiosyncrasy         018   $.Idiosyn
 If I fell            016   $.IfIFell
 I just called to say 014   $.Icalled
 Illusions            M13   $.Illus
 In the night         014   $.InNight
 I've got you under
    my skin           017   $.IGotYou
 The Jazzman          017   $.Jazzman
 Jean-Michel Jarre (P)016   $.JMJdemo
 Jumping on a train   013   $.Train
 Kali                 016   $.Kali
 The Last patrol      015   $.Patrol
 Let's go and play the
    crazy tune        015   $.Crazy
 Lullaby to the
    Light Elves       M13   $.Lullaby
 Ma-Tovu (How goodly) M13   $.Ma-Tovu
 Machu picchu         M13   $.Machu
  PAN problem         014Q  Q.uest014
 Man in appartment 47 016   $.Appmt47
 Mbala                M13   $.Mbala
 Miami vice           013   $.MiamiVi
 Moods                014   $.Moods
 Moments in time (P)  016   $.MITdemo
 Mood sketches no 5   018   $.Mood5
 Morning mist         015   $.Mist
 Musique des
    automates         M13   $.Automat
 Nargle               015   $.Nargle
 Never a cross word   M13   $.XWord
 Nobody knows the trouble
    I've seen         014   $.Trouble
 Pastime with good
    company           M13   $.Pastime
 Playing the railings 018   $.Railing
 Prelude in G minor   013   $.Prelude
 Quartertone study    013   $.QTone
 Recuerdos de la
    Alhambra          018   $.Alhambr
 Repto                M13   $.Repto
 River                016   $.River
 Root beer rag        018   $.BeerRag
 Rotation no.7        017   $.Rotate
 Round the corner (HT)013   $.Round
 Running on ice (HT)  013   $.Running
 Safe sax             017   $.SafeSax
 Sargasso             017   $.Sargass
 The Shadow of your
    smile             015   $.Smile
 Shelley              015   $.Shelley
 Snapshot             M13   $.Snaps
 Soft as diamond      017   $.Diamond
 Sombre               M13   $.Sombre
 Sonate               018   $.Sonate
 Sun                  017   $.Sun
 Sunburn (HT)         017   $.Sunburn
 Sunday, bloody
    Sunday            015   $.Sunday
 Sunset, sunrise      014   $.Sunrise
 Sweet Caroline       015   $.Carolin
 Symphonetta          018   $.Symphon
 Tailback             015   $.Tailbck
 That South Sea
    island            015   $.Island
 Three blind mice     018   $.Mice
 Toccata in D minor   M13   $.Toccata
 Voluntary in D minor 013   $.VolunDm
 Walk of life         013   $.WalkLif
 The waters of Babylon017   $.Babylon
 Weasel's amnesia     018   $.Amnesia
 We call it sillieee  015   $.Silliee
 We'll meet again     015   $.WMeetAg
 Yesterday            018   $.Yestrdy
 Yo!!!                017   $.Yo

O

ONEN                  016Q  Q.uest016
                      017A  Q.uest017
                      018A  Q.uest018

P

Panda music discs
   see 'Music Discs'
PEN                   016Q  Q.uest016
                      017A  Q.uest017
                      018A  Q.uest018
PLAY in FOR( loop     016QA Q.uest016
PLAY - AMPLE tutor    018   N.ews018
Player - what is it?  016Q  Q.uest016
Programmable jukebox version 2
 Notes                017   U.Juketxt
 Utility              017   U.Jukebox
Published articles    017   H.ints017

R

RM Nimbus computer    015   N.ews015
 Comments             016   N.ews016
ROM compatibility
   see table at end of Index
Roland CM32L          016Q  Q.uest016
Roland D5 synthesiser
   review             018   N.ews018

S

Shadow RAM
 Watford unrecognised
    in AMPLE          017Q  Q.uest017
 What's the best?     017Q  Q.uest017
                      018A  Q.uest018
Sideways RAM
 Integra-B            016   H.ints016
 Solidisk 128         013Q  Q.uest013
  with Toolbox        016Q  Q.uest016
SLIDE command         017   H.ints017
Sound sampling with BBC Model B
   and Music 4000     016Q  Q.uest016
Speech synthesis      015Q  Q.uest015
Synthesiser for `500  012Q  Q.uest012
                      013A  Q.uest013

T

TMS to AMPLE - Crumple
 Notes                018   U.CrumTxt
 Utility              018   U.Crumple
'Too many voices'     016QA Q.uest016
                      017A  Q.uest017
Transposing instruments
 Brass offsets 'n@'   013A  Q.uest013
 Guitar               016   H.ints016

U

Upgrading from BBC B  015QA Q.uest015
User-defined words
 cls                  015   H.ints015
 com1                 015   H.ints015
 press                015   H.ints015

V

VEL with Music 2000   017Q  Q.uest017

W

Wave Designer bugs and
   solutions - notes  012   U.WDesign
 Wave converter       012   U.TFWave
Waveforms
 Converting C.PREPARE
  notes               013   U.PrepInf
  utility             013   U.Prepper
 Editing utility      014   U.Wave
  notes               014   U.WaveTxt
  Music 500 presets   014   U.Preset1
  harmonics           015Q  Q.uest015
  identifying files   015   H.ints015
  storage and use     017Q  Q.uest017
  using set-up
     procedure        015Q  Q.uest015
 For Nucleus from BCE 009   U.NewWave
                      009   U.Preset2
 Fast Fourier Analysis
  Notes               015   U.FFAtext
  BASIC program       015   U.FFA

Y

Yamaha PSR70/TX81Z
   voice dumps        013Q  Q.uest013

Z

ZROM manual           014   H.ints014

ROM Compatibility Table (B = Model B, M = Master)
Compatible with AMPLE
ACORN
     Basic Editor 1.32              BM
     DFS 2.26                       BM
     Forth 1.03                     B
     View 3.0                       BM
     Viewsheet 1.0                  BM
     Viewstore 1.0                  BM
ACP/PRES
     ADI 1.10                       B
     ADT 1.76                       B
     ARM                            B
AMX
     Mouse Support 3.61             BM
     Stop Press 1.9                 BM
     Stop Press Support 1.9         BM
ARIES B-32 1.00                     B
Commstar                            B
COMPUTER CONCEPTS
     Inter-Base 2.0A                B
     Inter-Word                     B
     Inter-Chart                    B
     Inter-Sheet                    B
     Mega-3                         B
     Spellmaster 1.69               B
Dumpmaster 2.03                     BM
Enigma Disc Imager 1.09             B
Floppy-wise Plus 1.9                B
Integra-B OS 1.2                    B
*Oxford Pascal 2.1                  B
*Slave 1.34 toolkit                 B
Vine Micros Replay System           B
WATFORD
     Beebmon 1.00                   B
     Conquest                       B
     DFS 1.44                       B
     Dumpout 3.2                    B
     Quest Paint 1.10               B
Incompatible with AMPLE
Care Rom Cartridge System
 in some cases (See H.ints008)      B
Integra-B OS if earlier
     than V1.02                     B
*Oxford PASCAL                      B
PMS NTQ                              M
Screenprint                         B
Screenprint Colour                  B
*Slave toolkit                      B
-----------------------------------
* NOTE: contradictory advice from
members on these ROMs. Suck it & see?

Published in AMPLINEX 019, September1990

Using the Hybrid Music System

In this feature we bring together some examples of the use to which members put their Hybrid Music System.

Jim Brook
The principal use that I make of the Music 5000 is one that I have not heard mentioned elsewhere, yet it is one to which the system is uniquely suited - learning vocal music.
I love singing all kinds of music and am currently a member of two choirs (one of which concentrates on Bach, the other covering a much wider range), an operatic society and a small group that performs at all sorts of small functions as well as taking part in Old Time Music Hall shows at local theatres.
As a result, I am constantly trying to learn new music in as short a time as possible. If I were a good sight reader and had perfect pitch, I dare say it would be easy. It would certainly help if I (a) had a piano and (b) could play it. However, I'm not, haven't and can't, so I have problems.
Or did have, before the Music 5000/4000 hove in sight. Now, even the most difficult passages can be learnt quickly, without driving my long-suffering wife up the wall, thanks to the ability to enter a line or phrase in step-time, play it over slowly then gradually increase the speed to the 'correct' tempo. If it is not a solo line, and has to be sung and sustained against other vocal parts, it is an easy matter to enter these parts also, then practise singing one's own line while the Music 5000 'sings' one or more of the other vocal lines.
Anyone who knows Bach's Mass in B minor, will know that there is a 12-bar section for bass voices in Et Resurrexit (usually referred to as the 'judicare') that the newcomer to it usually finds daunting, to say the very least. I was able to master this in half an hour, on my own with the Music 5000 - and if you knew what a rotten sight reader I am, you would know what an achievement that was for me!
Currently, I'm finding the Music 5000 a tremendous help in learning Bernstein's 'Chichester Psalms', which those who know it will agree is not the easiest piece of music to sing!
It is the ability to play parts individually or together in any combination, at whatever speed you like, and the ability to instantly repeat them, that makes the Music 5000 so useful when learning vocal music. Of course, the music then has to be properly 'interpreted' - but that is far more easily done when you are not struggling to pitch the right note or make it the right length.
Nowadays I quite often find myself doing taped copies of bits of difficult music for friends who are having problems with a piece - so if our general proficiency as music makers is improving, the Music 5000 should take some of the credit!

Peter Hodson
As a long-standing and keen amateur film maker, I greeted the arrival of the Hybrid Music System (HMS) with considerable interest. In film making, I subscribe to the view that the sound track is dominant, particularly at the editing stage. One can cut pictures to sound, but the other way round can be very difficult. Music should, as far as possible, be continuous and only cut between phrases to allow, for example, for changes in mood. The HMS can help here, and mismatches between the timings of music phrases and picture scenes can be eliminated by controlling tempo.
Another area where the HMS can help is with sound effects; not only with specific effects but with general background ambience noise supplied for relatively long periods.
So much for theory, you may well say, but have you used the HMS in film making? Well, I have just completed a 3.5 minute uncut film entitled 'Computer Music' for a Movie Club competition which requires one to edit in camera (as opposed to the usual post-production process). The visuals are taken both from the computer screen (yes, with the strobing effect!) and from my system layout with close-ups of the keyboard being played and with notes simultaneously appearing on the Staff editor. Animated graphics are mixed with music titles to give visual movement.
The sound track was shot live to maintain synchronism between picture and sound and there is a microphone commentary mixed in with the music.
Incidentally, when I can afford to change over from film to video I shall be looking for a 16- or 32-bit computer suitable for animated graphics, titling, Genlock and of course HMS, in place of my BBC. So how about it you manufacturers?

Carl Robinson
My youngest son has taken up the clarinet. As an aid to his learning and to his timing I programmed the 'Play in a Day' tunes into AMPLE. AMPLE plays the 'teacher' and other 'pupil' parts. A gentle percussion track helps keep time and enables a count-in. He actually looks forward to practice time. I also find well-known pieces of music that are within his capability, cover the title and ask him to play it. He then has to name the tune. This usually means explaining time signatures and counting methods but, again, he enjoys it.

David Hall
On the 4th and 5th of April this year, my school produced the choral musical 'Yanomamo'. This musical was commissioned by The World Wide Fund for Nature and has been performed on Channel 4 twice during the past year. When I first saw it last May/June, I decided that it would provide me with ideal opportunity to learn how to use our newly-acquired Music 5000 synthesiser and Music 4000 keyboard which had been bought by the children.
I do not read music but have played guitar and sung in Folk groups for over 30 years. I was amazed at my own progress and during the course of the summer holidays in 1989 I finished programming 16 of the songs. These were entered one note or chord at a time, and with the aid of the audio tape released by the WWFFN, I was able to get a pretty good likeness.
To many members my efforts may appear crude and laboured, but it was a labour of love and the fruits were harvested at the concerts (we raised £170). We have been asked to do repeat performances at another school and as part of the patronal festival at the village church.

Published in AMPLINEX 018, July 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