AMPLINEX 007

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

Tune for Pipes and Flutes

by Andy Knight

 

Source: AMPLINEX 007 disk, file $.FLUTES


Published in AMPLINEX 007, September 1988

There Are Many Stops Along the Way

by Ian L Hubbard

Composed by: Joe Sample

 

Source: AMPLINEX 007 disk, file $.THEREAR


Published in AMPLINEX 007, September 1988

Russians

by Jamie Lewis

Composed by: Sting

 

Source: AMPLINEX 007 disk, file $.RUSSIAN


Published in AMPLINEX 007, September 1988

Overture

by Diccon Maude

A musical fantasy by Diccon Maude, aged 14. Started and finished in 17/04/1988

I composed and arranged this piece in one day (you may say - "Huh! Sounds like it an' all!"). I made the accompaniment up first, put a simple bass to it, and added the top part, which I won't call a melody.

The top part uses Panflute as I like the sound. The accompaniment uses Upright. (I think Upright is an excellent reproduction of a piano).

I have made the bass part stronger by using 3 2 Echo. The Drum rhythm uses 49 =L, so that accents can be heard.

The middle part of the piece, where the voices change, was decided by my dad, who I like to consult with, and obtain any 'sound' advice (Groan!).

'harps4' is from the Studio 5000 User Guide, and Vibglock was chosen simply because it sounds nice.

Does it 'click' when the voices change back to normal on your type of computer? It does on mine. Does anyone know why and/or how to stop it?

Anyway, hope you like it.

Diccon Maude (14)
 

Source: AMPLINEX 007 disk, file $.OVER


Published in AMPLINEX 007, September 1988

Misty

by John Bartlett

Composed by: Erroll Garner

I tried to achieve a sound reminiscent of Erroll Garner and have a 'human' feel.

(If anyone is interested in examining the music on the STAFF, load the part in question into NOTEPAD and remove the arpeggio notation from the chord and reMAKE first.)

John Bartlett
 

Source: AMPLINEX 007 disk, file $.MISTY


Published in AMPLINEX 007, September 1988

Kitten on the Keys

by Rick Costin

Composed by: Zez Confrey

 

Source: AMPLINEX 007 disk, file $.KITTEN


Published in AMPLINEX 007, September 1988

Jesus Walking on the Water

by Rosemary Brown

Composed by: F Liszt

a 7 voci bew. Cees le Grand.

 

Source: AMPLINEX 007 disk, file $.JEWALIA


Published in AMPLINEX 007, September 1988

For a Dying Man…

by Michael Harbour

Dedicated to nobody in particular. I'm only 14 years old

 

Source: AMPLINEX 007 disk, file $.DYING


Published in AMPLINEX 007, September 1988

The Drunken Blues

by Corin Greaves

Using the 'human' approach

A short piece displaying two techniques that I regularly use in my music.

The first is the use of irregular quantize values on the recorder module to produce a more 'human' out-of-time feeling.

The second is the use of changing instruments on one voice for percussion to save channels for tuned sounds. This can lead to 'fatter' music, though it is quite processor-intensive. Part2a is a good example of this.

Also used are some new percussion sounds, including a beefier bass drum.
 

Source: AMPLINEX 007 disk, file $.DBLUES


Published in AMPLINEX 007, September 1988

Desafinado

by Roger Sapolsky

Composed by: Antonio Carlos Jobim

Taken from "The BRAZILIAN masters". TRO Hollis Music, INC. N.Y. controls publications rights for the USA.

My arrangement uses the original guitar solo to which I have added a 'Brazilian' rhythm section.

With due acknowledgment to Andy Thomas and Roger Cawkwell for their work on the ACT command in AMPLINEX 002 & 003.

Roger Sapolsky
 

Source: AMPLINEX 007 disk, file $.DESAFIN


Published in AMPLINEX 007, September 1988

Caribbean Romance

by Graham F Firth

Composed by: Harold Smart

Music (c) 1973 Jackson Music Ltd
Code (c) Graham F Firth, November 1987
 

Source: AMPLINEX 007 disk, file $.ROMANCE


Published in AMPLINEX 007, September 1988

Cannon

by R Williams

 

Source: AMPLINEX 007 disk, file $.CANNON


Published in AMPLINEX 007, September 1988

Arp

by Earl Bonnar

A very short piece I did for the Music 5000 when I first started - so short it doesn't even have a name.

It's also the file I had trouble switching mixes because of the Echo voices (see Questions and Answers in this issue of AMPLINEX).
 

Source: AMPLINEX 007 disk, file $.ARP


Published in AMPLINEX 007, September 1988

An Ode

by P Gray

This piece of music was a first attempt at composing using the recorder section of the 5000/4000 system.

Screen designed using ASD.
 

Source: AMPLINEX 007 disk, file $.ANODE


Published in AMPLINEX 007, September 1988

Keyboard split utility ('U.KSplit')

Richard Bettis

1) Introduction

The AMPLE program 'U.KSplit' contains the bare essentials of a utility to produce a sound 'split' when playing a Music 4000 keyboard.
The program will work with a Music 5000 (it doesn't use any of the words in the M4 module), but the same effect is easier to obtain by writing multiple parts.
The main purpose of the utility is to allow the 'live' playing of more than one sound; in the example provided these are 'Upright' on the higher notes and 'Slapbass' on the lower ones.
The actual position of the split can be defined by the player when the program is RUN.

2) RUNning the program

When the program is RUN, a prompt is given to define the 'split-point'. When a note is played, this becomes the lowest note for the 'top' instrument.
Any number of notes may be tried, but only the last one played will count.
When RETURN is pressed to select the 'ok' message, the split keyboard is brought into operation, and can be played.
In use the current program allows up to four note polyphony in each of the two sections.

3) How it works

As you may have guessed, the split function is based on the ACT structure. The rest of the program may also merit some description.
'setup' is merely a definition of a single 'player' with 8 voices, the first 4 voices are used by the higher section of the keyboard, while voices 5 to 8 are for the lower section.
'select' restores the default ACT, then uses 'getsplit' to prepare for finding the splitpoint. After that it displays a MENU with just one option, to tell the program that a splitpoint has been selected. (In effect this just provides a simple and familiar format for a 'pause' while the user decides).
'getsplit' redefines ACT for the first time. All that it actually does is to make a copy of the PITCH number, and store this in a variable, 'splitpoint'.
'ok' just confirms the note that has been chosen (the numbers work in semitones above or below middle C), and cancels the 'getsplit' ACT command.
'splitact' redefines ACT to give the split keyboard effect. One problem to be overcome is the allocation of different voices. Each key pressed while another is being held adds to the VOICE number generated; however, we want to split 8 possible notes into two groups of 4. This is done by 'change' (see below) on each voice number, which renumbers 5 to 8 as 1 to 4 again!
The PITCH value of the note is then compared with the selected value in 'splitpoint'. If it is above the splitpoint the ACT continues as normal (with any revisions to voice number already made by 'change').
If, on the other hand, the PITCH is below the splitpoint then 4 is added to each (none zero) voice number.
The net effect of all this is to ensure that higher notes are played on voices 1 to 4 and lower notes on voiceS 5 to 8, thus effecting the 'split'.
'change' reduces the VOICE numbers to the range 1 to 4. For speed of operation, and to avoid problems with the value 0 generated for both the LEVEL voice at all times and the GATE voice for an 'OFF GATE', the change is made using a 'look-up table'.
This is an ARRAY, 'vtabl', which has 9 elements (including element 0). 'change' takes each voice number and replaces it with the value held as that numbered element in 'vtabl'. For element 0 to 4 this makes no change, but elements 5 to 8 contain the values 1 to 4 again, so these voice numbers are re-allocated.
Finally 'RUN' coordinates the procedure. It does a 'setup', uses a word 'vset' to set up the 'look-up table' for VOICE numbering, allows the user to 'select' a splitpoint, and then sets the split keyboard going.

4) In conclusion...

Obviously, the actual voice allocations in 'setup' can be simply changed to any other instruments.
By changing the pitch played in each section, either by using SHIFT in the instrument definition or by altering the pitch voice in ACT, it is possible to play two melodies in the same register at the same time using different instruments on the same keyboard (at least I presume that it is possible - neither my brain nor my fingers could cope with it!).
I did originally write a more general version that allowed for a definition of the total number of voices, and how they were allocated between the two sections. However, the additional processing required led to a noticeable slowing down of the response to the keyboard. Notes sounded just late enough after pressing the keys for me to be aware of the delays, and block chords sounded like fast arpeggios!
This version, with values fixed both by constants in the ACT definition and by the contents of the look-up table, does not produce that much of a delay in note processing - it is only just audible on block chords.
(My next essay may well be called 'Swings, Roundabouts and Compromised Ideals').

Related file on this disc:
U.KSplit - AMPLE keyboard split utility program (LOAD and RUN)

Published in AMPLINEX 007, September 1988 

Instruments

To make the best use of disc space we have combined several instrument definitions into one file. These can be saved individually if required, either by loading/saving via a word processor or from within AMPLE (after *EXECing in this file) using:
*SPOOL insfile
"insname" TYPE
*SPOOL
where 'insfile' is the file on which the individual instrument definition is to be held and 'insname' is the word containing the instrument definition.
"pufflute" [2 CHANS
1 CHAN
 Hollow       Flat         Puff
 128 AMP       ON RM        193 SHIFT
2 CHAN
 Pure         Slowvib      Tailed
 128 AMP
EVERY CHAN
% A bit more full than Panflute with a
% more 'breathy' sound.
% by Corin Grieves
]
"gchurch4" [4 CHANS
1 CHAN
 Pipes        Flat         Onoff
    0 SHIFT   128 AMP       2 POS
2 CHAN
 Pipes        Flat         Onoff
 -191 SHIFT   128 AMP      -1 POS
3 CHAN
 -384 SHIFT   128 AMP      -2 POS
 Pipes        Flat         Onoff
4 CHAN
  193 SHIFT   128 AMP       1 POS
 Pipes        Flat         Onoff
EVERY CHAN
% Grand church organ sound
% by Paul Williams
]
"nasty4" [4 CHANS
ODD CHAN
 Hollow      Flat         Onoff
  ON RM
EVEN CHAN
 Watery      Delvib       Verylong
    1 SHIFT    10 OFFSET  128 AMP
3 CHAN
   80 SHIFT     5 OFFSET  128 AMP
4 CHAN
   81 SHIFT    15 OFFSET  128 AMP
EVERY CHAN
 OFF PHSET
% See 'nasty4info' for details.
]
"nasty4info" [DISPLAY
% Sounds not unlike an electric guitar
% at octaves -1: and -2:. No good for
% playing chords though because it is,
% in effect, two two-channel sounds
% playing a 1st and a 6th, e.g. C(F),
% which gives a more guitar-like
% effect.
% by Mike Dobson
]
"chinabell" [2 CHANS
1 CHAN
 Pure         Flat         Percuss
  40 FM        598 SHIFT
2 CHAN
 Clear        Flat         Verylong
 128 AMP
EVERY CHAN
  ON PHSET      6 PITCH
% More interesting than Vibglock with
% a satisfying 'thunk'.
% by Corin Grieves
]
"choir4" [4 CHANS
1 CHAN
 Metal        Slowvib      Tailed
 128 AMP       ON SYNC     -420 SHIFT
2 CHAN
 Syncer       Slowvib      Spike
3 CHAN
 Metal        Deepvib      Tailed
 128 AMP       ON SYNC     -440 SHIFT
4 CHAN
 Syncer       Vibrato      Spike
    1 SHIFT    200 OFFSET
EVERY CHAN
% Choir emulation. Range -1: to 2:.
% Like a chorus effect?
% by Mark A J Mulders
]
"nice4" [4 CHANS
1 CHAN
 Round        Deepvib      Tailed
 -3 POS        300 OFFSET
2 CHAN
 Round        Delvib       Puff
 -2 POS
3 CHAN
 Round        Slowvib      Tailed
  3 POS        100 OFFSET
4 CHAN
 Round        Delvib       Soft
  2 POS          0 OFFSET
EVERY CHAN
 128 AMP      OFF PHSET
% See 'nice4info' for details
]
"nice4info" [DISPLAY
% A very nice sound indeed. For
% maximum niceness play big chords.
% Works well over a wide octave range
% and sounds almost vocal around
% octave -1:.
% by Mike Dobson
]
"superins" [4 CHANS
ODD CHAN
 Broad        Wide         Onoff
  ON SYNC      384 SHIFT   128 AMP
EVEN CHAN
 Syncer       Flat         Onoff
1 PAIR CHAN
  2 POS
3 PAIR CHAN
 -2 POS          2 SHIFT
EVERY CHAN
  ON PHSET
% by Simon Elzinga
]
"guitar" [2  CHANS
2 CHAN
 Bright       Flat         Verylong
1 CHAN
 Broad        Flat         Verylong
 1200 OFFSET   ON SYNC
EVERY CHAN
  ON PHSET
% by S Burnett
]

Published in AMPLINEX 007, September 1988

Hints and tips

ROM compatibility

We begin this issue's Hints and Tips section with a collection of the responses to our request for details of ROMs which do and do not work with AMPLE.

Ted Kirk
The POINTER ROM for the Marconi RB2 Trackerball on the BBC Master has to be UNPLUGged before booting up the Music 5000 or 4000. This is with AMPLE in a lower priority socket than POINTER. I haven't tried it the other way round.

Richard Bettis
I have various ROMs installed in my machine, and have no trouble running AMPLE with:
Acorn BCPL
Acorn Logo
Acorn Pascal ADDCOM 1.30
Altra PROBE 4.02
AMX Super ROM 3.31
BASIC Extensions
Beebmon 1.00
Caretaker 1.03
Clares BROM 1.06
CMS Multi-BASIC
Computer Concepts Graphics ROM 2.09
DFS 1.20
Disc Doctor 1.0B
Exmon
Exmon II
Gremlin 1.00
ROM Manager
Skywave FORTH
Sleuth 1.05
System SPY 2.01
System ADE 2.01
Toolkit 1.23
Toolstar 1.77
View 3.0
ViewStore
Wordwise 1.10
Toolstar and the Beebug HelpROM did cause problems if *HELP was used, otherwise they were OK.
D.A.Computers EXTRAS crashed AMPLE.

G H Richardson
In Questions and Answers of AMPLINEX 005 I wrote that I had problems with *DRIVE and *ACCESS and you advised me to check my ROMs. This I did and found that the Printmaster ROM was the culprit. Since removing it I have had no problem. You can, therefore, add this to your list of incompatible ROMS. I should perhaps add that the Printmaster ROM was present when I had a BBC B and Music 500 and I don't recollect any problems then. I now have a Master 128 and Music 5000 and it could be that this combination is what has caused the problem.

Patrick Black
I've found that the Advanced ROM Manager (ARM) from ACP can sometimes cause problems. It contains a *KILL command to disable resident ROMs, and on my system, crashing out of AMPLE with CTRL-BREAK results in ARM KILLing off AMPLE. To be re-activated it needs a power-up reset, or *FX200,2 to be typed in.
Fortunately the *KILL command will work on ARM itself, so it can be switched out before starting an AMPLE session. The syntax is *KILL n, where n is the number of the ROM socket containing ARM. This command could be put near the start of the AMPLE !BOOT file. The problem can be overcome by leaving AMPLE 'legally' with a *BASIC command of course, but that's no good if the program's crashed!

Editor's note:
I can add the following ROMs to the list of those which work with AMPLE on a BBC Model B:
AMX Pagemaker 1.0
ATS 2.58 (as long as the Teletext adaptor is switched off)
Watford DFS 1.43
If you have experience of any ROMs which have not been mentioned above, or if you have more information on any that have been mentioned, please let us know. We will then publish a revised list in a future issue of AMPLINEX.

Spooling from AMPLE

Quentin Stafford-Fraser
I use the following short utility word to write out AMPLE word definitions to disc (from where they can be *EXECed back into another program).
"spl" [% Syntax: <word> <file> spl
$12 "SPOOL " $+ OSCLI
" TYPE *SPOOL " $+
]
Thus
"perc" "fred" spl
will spool the definition of the AMPLE word 'perc' to a file called 'fred'.
I have a BBC Master and I often change this utility to use the *SPOOLON rather than the *SPOOL command so as to send several definitions to one file.

Shadow RAM boards

Pete Christy
In AMPLINEX 003, B J Dawson asked for some information on Shadow RAM boards. I have used both the Watford and Aries boards and offer the following observations.
Initially, I had an early Watford board which would not work with AMPLE BCE, but mostly worked OK with AMPLE Nucleus. I upgraded to the latest ROM about a year ago, and it then worked fine with BCE and Studio 5000 Release 3.
When I got the Music 4000 keyboard pack, with Studio 5000-4 release 1, I found that the system disk would hang during booting unless I moved the Shadow RAM workspace to location &0A00 (the cassette/serial port buffer).
When I got Release 2 with the Staff printing facility, the Staff display got corrupted if I used location &0A00 as Shadow RAM workspace and I was unable to find any location that would allow the Staff printing to work. Without the Shadow RAM there was insufficient memory for the Staff editor to be of any use.
I consulted Chris Jordan of Hybrid Technology who recommended the Aries Shadow RAM board. At first I was suspected this was a sales pitch, as he had designed it! However, in desperation I bought one and it works a treat. No problems at all with any release of Studio 5000 or 5000-4.
The Aries board is much better organised than the Watford, compatibility is excellent with all soft and firmware, and I cannot recommend it highly enough. A slight irritation is that the only compatible ROM board is the Aries one - you can't use Aries Shadow RAM and an ATPL board for instance.
On the other hand, with the Aries Shadow RAM board, and the ROM board with Sideways RAM in it, you have an extremely powerful system with lots of very useful utilities included and it is extremely useful for word processing.
As to how useful it is with AMPLE - well, unless you use the Staff editor, not very! In fact you can easily end up with less memory than with an unexpanded machine.
This is because when booting from the system disk, AMPLE reclaims some memory from the DFS. It moves PAGE back from &1900 to &1500, but ONLY if PAGE was &1900 to start with. All Shadow RAM systems require a page of work space, and most default to take this from &1900 to &1A00. This means that AMPLE won't reclaim memory, and you end up with LESS memory available!
However, if you don't intend to use the Staff printing facility you can move the workspace to &0A00, and gain about an extra 1K in all modes except the Staff editor, where you gain an extra 8K.
The following table gives an indication of the memory available in different modes as revealed by the "MEM" command.
Shadow     5000           5000-4
mode       release 3      release 1/2
OFF        15793          14505
ON
workspace  15025          13737
at &1900
ON
workspace  16817          15529
at &0A00

Using external effects

Mike Dobson
Like AMPLINEX my Music 5000 is now one year old. Since buying it I have added the Music 4000 keyboard and most recently a proper amplifier (rather than my Curry's bargain stereo). The fact that the amplifier has an overdrive distortion effect built-in has led me to discover the marvellous things external effects will do for your Music 5000/4000.
I also have a stereo delay and a flanger - both guitar effects pedals. The delay pedal has obvious benefits, the flanger can produce some far-out results and both allow my Music 5000 to do some very passable guitar impressions.
There are a vast range of effects that could enhance your Music 5000. Some are expensive (£100+ for a delay pedal) but can usually be found second-hand for less than half-price from music shops or magazines.

%STAFF

Quentin Stafford-Fraser
Many words, if loaded into the Staff editor with GET, leave just a blank staff - even those with lots of music in them! If this has puzzled you, then read on...
For some reason, words created (by MAKE) in the Staff editor always have the comment %STAFF at the beginning of them. If this is added to a word created elsewhere, for example in Notepad, it can then be loaded into the Staff editor without any problem.
Why the ATOS module checks for this, I have no idea - does anybody else? Note too that music on the staff cannot be played using the f1 key if it has certain words above the staff like REP( or FOR(. The editor will, however, MAKE it quite happily and the music can then be played by typing its name at the command prompt.

Published in AMPLINEX 007, September 1988

MIDI Xpander code


REM To be *EXECed into BASIC
AUTO
REM **********************************
REM *  MIDI to AMPLE Interface Code  *
REM *  Copyright Scott Mackie 1988   *
REM **********************************
REM
REM Another Underwhelming Project From
REM The Awfully Nice Software Company!
REM
REM Copies of this code may be made on
REM condition that no profit is made
REM
REM Published by AMPLINEX
REM September 1988
REM
buffer=&A00:table=&96:in=&90:out=&91
splitarray=&C80:ssplit=&BFF
esplit=&C07
REM Change the following addresses to
REM suit your own interface. These are
REM the locations of the ETI port A.
status=&FCF0:data=&FCF1
FOR opt%=0 TO 7 STEP 7
O%=&4000
P%=&0900
REM Rather misleadingly titled gnote!
REM Foreground data output routine
[OPT opt%
.gnote lda out     \ Get Outputpointer
CMP in             \ Any data?
BEQ gnote          \ Nope? Check again
LDY out
LDA buffer,Y       \ Get buffer data
INC out            \ Update pointer
RTS
\ This is the main loop of the code
\ Calls the various routines needed
\ having analysed the data. Any extra
\ checking should go in after the
\ patchchange check.
.code JSR gnote    \ Get data
CMP #&90           \ Is it a Noteon?
BEQ noteon         \ Yip
CMP #&80           \ Noteoff?
BEQ noteoff        \ Yup
CMP #&E0           \ Pitchbend?
BEQ pitchb         \ Yip
CMP #&C0           \ Patchchange?
BEQ patchc         \ Yup
JMP code           \ Start again....
\ This routine handles Noteons. It
\ Also handles Noteoffs if sent as a
\ Noteon with zero velocity. See later
\ text about this point.
.noteon LDA #0     \ Set ID byte to 0
STA &92            \  in header
JSR gnote          \ Get note data
TAX                \ Save for later
SEC
SBC #&3C           \ Convert for AMPLE
STA &93            \ Store in header
JSR gnote          \ Get velocity byte
STA &94            \ Store in header
CMP #0             \ Noteoff?
BEQ dalloc         \ Looks like it!
LDY splitarray,X   \ Get zone number
LDX ssplit,Y       \ Get initial voice
.loop1 INX
LDA table,X        \ Get voice table
CMP #128           \ Voice unused?
BNE loop1          \ No!
TXA
CMP esplit,Y       \ Over voice limit?
BCC foundslot      \ No...phew...
LDX ssplit,Y       \ Boo....overflow
INX
.foundslot STX &95 \ Store in header
LDA &93            \ Get note pressed
STA table,X        \ Store it in table
RTS
\ Noteoff provides handling for those
\ keyboards that actually use a
\ Noteoff instead of a zero velocity
\ Noteon. I haven't checked this as I
\ don't have a "Noteoff" keyboard, but
\ it should work... comments please...
.noteoff LDA #0    \ Set ID byte to 0
STA &92            \  in header
JSR gnote          \ Get note data
SEC
SBC #&3C           \ Convert for AMPLE
STA &93            \ Store in header
JSR gnote          \ Waste velocity
LDA #0
STA &94            \ Store in header
.dalloc LDY #0     \ Reset pointer
.loop2 INY
CPY table          \ We overflowed?
BEQ notfound       \ Uh Huh...
LDA table,Y        \ Get note here
CMP &93            \ Same as Noteoff?
BNE loop2          \ No....
LDA #128           \ Get reset byte
STA table,Y        \ Free the voice
.notfound STY &95  \ Store voice freed
RTS
\ This routine handles the pitchbend
\ data arriving. Has an ID of 1.
.pitchb LDA #1     \ Set ID byte
STA &92            \ Store in header
JSR gnote          \ Get LSB and waste
JSR gnote          \ Get MSB of data
STA &93            \ Store in header
RTS
\ This routine handles the patch
\ changes...basically just reads the
\ data...very boring actually...
.patchc LDA #2     \ Set ID byte
STA &92            \ Store in header
JSR gnote          \ Get patch number
STA &93            \ Store it...
RTS                \ Bye bye
]
P%=&D00
REM This is the NMI code, positioned
REM at &D00. It provides circular
REM buffer handling for the buffer at
REM &A00
[
OPT opt%          
PHA:TYA:PHA
.wait LDA status   \ Get 6850 status
AND #1             \ Mask data bit
CMP #1             \ Check it
BNE wait           \ Nothing yet
LDA data           \ Get the data
LDY in             \ Get the pointer
STA buffer,Y       \ Store data
STA data           \ MIDI Out "Echo"
INC in             \ Update pointer
PLA:TAY:PLA:RTI    \ Exit NMI
]
NEXT
REM Press Escape and then RUN

Published in AMPLINEX 007, September 1988

MIDI Xpander instructions

This is the second of two features by Scott Mackie on the MIDI interface - his introduction and guide to building your own MIDI interface were contained in AMPLINEX 006.

MIDI Performance Code for AMPLE

Scott Mackie
Having, I hope, constructed your MIDI interface and got it running, you can now start on the code needed to make AMPLE run as a MIDI expander.
The 'Xpander' code comes as two parts: an assembler i/o section and an AMPLE handling routine. This has the benefits of machine code speed and AMPLE flexibility. I originally wrote the code entirely in AMPLE but it was really too slow to use properly, and resulted in arpeggios on chordal work - nice effect, but pretty unusable!
Although the assembler routine has its limitations (it slows down a bit after more than 5 notes are pressed simultaneously) it is much more efficient than AMPLE. Chordal work is still slightly slurred but the overall performance is much better.
The code is positioned in memory at &900 and &D00, with buffers at &A00 and &C00 (which unfortunately will corrupt the Staff editor - sorry!). At &D00 is the interrupt code which loads the data from the 6850 (the chip at the 'core' of the MIDI interface) into a circular buffer and updates a pointer. It also 'echoes' the data to the MIDI Out to simulate a MIDI Thru. There is a very small propagation delay, but this almost unnoticeable.
The code at &900 is the data handler. It 'chases' the interrupt routine around the loop, reading the data back out and updating the output pointer accordingly.
This method has the benefit of not missing any data, but the performance can be slowed slightly under heavy data input. The buffer size is a complete page, i.e. 256 bytes, which should be more than enough - if it isn't, you're either Rick Wakeman or playing with the system exclusive dump on the synthesiser!
After reading the buffer, the assembler code interprets the data and stores it accordingly. I use the Econet workspace (&90 to &9F) as variable space, so I'm afraid if the system is to be used on Econet some rewrites may be needed.
The workspace is configured as:
&90: Input pointer. Where the latest input data is in the buffer. Updated by the interrupt routine.
&91: Output pointer. Where the program has got to in the buffer. Updated by the foreground program.
&92: ID byte for the following data 0: Noteon/off 1: Pitchbend 2: Patch change
&93: <ID dependant data> &94: <ID dependant data> &95: Voice to be used for current event &96: Blank &97: . : Voice assignment data held here. . : 128 indicates unused voice &9F:
The assembler routine also provides voice allocation routines for AMPLE, including a keysplit system. When a note is pressed, the code goes to a lookup table at &C80, which contains the details of the currently setup keysplit. The code finds the current zone the key pressed is in and then allocates the voice accordingly. This system allows multi-timbral (i.e. using more than one instrument) music to be played across the entire range of the keyboard.
When a free voice is found for the note to be played on, the note number is placed in the table between &97 and &9F for future reference. A value of 128 indicates that the voice is clear. When a Noteoff is issued, the code checks the table for the note number and places a 128 in the voice location it finds, freeing that voice for future use.
A simple wrap-around system operates so that if the number of notes played in any one zone exceeds the maximum allowed, the overspill notes are played on the first voice of the split. This compromise seems to be the best solution to a rather grey area of synthesiser programming.
Having completed all the data preparation, the assembler routine returns to AMPLE, where the header block is checked and the relevant routines called. The notes are played using the ACT command, and a rest is played for a Noteoff. This allows envelopes such as Swell and Soft to complete.
If required, the code will release a channel to be used again, without issuing a rest. This is achieved by use of the MNOTEOFF command. OFF MNOTEOFF stops Noteoffs issuing rests and is very useful with envelopes that actually tail away to zero, as the sound is more continuous with no rests being issued.
Upright, in particular, is very effective like this and can be played much like a normal piano. A foot pedal can be used to trigger this, connected to the fire button for Joystick 1 on the Analogue port. A simple push-to-make footswitch will do, and the code will detect its depression and act accordingly (see the 'help!' information in the actual program about this).
Right, having waded your way through all that information, how do you use the code?
Having loaded the file F.Xpander, try the following:
RUN
The disc drive should run and load in the file 'F.Xcode'. Set the transmit channel on your synthesiser to channel 1 and enable its MIDI output if required. Pressing a few keys on the synthesiser should now result in AMPLE playing Upright at the right pitch.
If this doesn't work, check that the interface is paged into the right position in memory. The details about this are in the assembler listing file 'F.Xsource' which is included on this disc.
Also included in the 'Xpander' program is an AMPLE word called 'test' that will print out all the data arriving at the MIDI port. This should help with debugging if there's a problem. With luck, the code will work and the fun can start!
Holding the SHIFT key down while pressing a note on the master keyboard should take you back to the AMPLE prompt. The command 'RUN' is intelligent and checks to see if the NMI code is still present. If not, the code will boot in the NMI routines again from disc. If any problem should occur, just press BREAK and type 'RUN' again. This should cure any minor problems (especially if a disc is accessed, as this will overwrite the MIDI interrupt code).
Any sound can be used with the keyboard, just by defining the maximum number of MIDI voices, i.e.
4 MSINGLE viola4
will provide 4-note polyphony with a 4-channel viola sound.
Changing the MIDI receive channel is easy. All that you have to do is type, for example,
6 MCHAN
to set the interface to channel 6. The channel is defaulted to 1 initially.
The MIDI interface also accepts velocity information so the sounds produced will be responsive to velocity data. I haven't tried this feature yet as I can't afford a velocity-sensitive keyboard, but I hope it will work!
Moving the pitch bend wheel on your synthesiser should result in AMPLE changing the pitch of the sound. Incidentally, there's no reason why the pitch bend wheel should cause the pitch to change. It could alter the stereo position, volume, or voice parameters if required. Be experimental with the AMPLE code!
Issuing a patch change from your synthesiser should cause AMPLE to select a new sound for the voices. Edit the word 'Mpatchc' to suit your own tastes and sounds. The word is set up at the moment to provide a general selection of patches.
The last topic to be covered is key splits. All key splits do is to allow different instruments to be used depending on where the note pressed is on the keyboard. Up to 8 instrument zones can be defined, but within the confines of 8 notes of polyphony. For example, you can have a split of 2+6, but not 1+2+6 because this means having to use 9 voices, exceeding the internal limit for AMPLE. The two commands to drive the key split definition process are MSPLIT and KEYSPLIT.
If you type
MSPLIT
the screen will clear and you will be prompted for the number of zones to be used across the keyboard. Having typed this in, you will then be prompted for the number of notes to be used in zone 1 (which is the lowest zone in the keyboard). The code will then wait for you to press the key on the MIDI keyboard that indicates the top of the zone. This definition process will continue until all the zones have been defined.
When MSPLIT finishes, it calls KEYSPLIT and prints out a list of numbers. This sequence of numbers is the input to the routine KEYSPLIT. This is the raw (very!) routine for processing splits. If that exact key split setup is needed again then the string of numbers output can be used to call KEYSPLIT, without having to go through the process again. The words mix1, mix2 and mix3 all illustrate this technique and should be studied in order to fully understand this topic.
A complete listing of all the words used is included in the AMPLE file 'F.Xpander'. Just type 'help!' to get the information.
And now for what the code doesn't do! The code will not allow you to play along with existing music in AMPLE, although I am working on that. I'm afraid this is due to the need for a quick response time in the input routine (the program loops in the assembler domain to save time jumping between AMPLE and the code). It also forbids use of Echo for, I presume, the same reason. Maybe some AMPLINEX members can advise me on this aspect of the code.
Apart from these things, the code does run reasonably reliably and doesn't seem to be prone to leaving 'hanging' notes.
I hope these articles have provided some AMPLINEX members with enough material to experiment with MIDI. The basic code works well, but changes can be made to it to allow further MIDI data to be processed, such as modulation or aftertouch. Any comments on the code or queries could be sent to AMPLINEX or, if preferred, to myself at the address below.
Scott Mackie 48 Milford East Kilbride GLASGOW G75 9BU
Note: An error was spotted in the previous article with reference to the AMPLE hardware paging addresses. It does actually map into the whole of the &FD page, between page numbers &30 and &3F and not &FD30 and &FD3F as stated.

Related files on this disc:
F.Xpander - 'Xpander' AMPLE program
F.Xcode - 'Xpander' machine code
F.Xsource - assembler source for the 'Xpander' machine code (in *EXEC format)

Published in AMPLINEX 007, September 1988

Questions and answers

Answer: Defining envelopes

In AMPLINEX 005 Nick Ridley complains of the lack of an envelope with a fast attack but slow release. I too had this problem when I transcribed my version of Bach's Toccata & Fugue in D minor from BCE to Nucleus. Chris Jordan of Hybrid Technology gave me the following tip which goes some way to solving the problem.
Most instrument definitions use two channels to add richness to the sound. Give one channel a fast attack envelope (Peaked, for example) and the other a slow release envelope (Tailed, for example).
In the Toccata I was trying to recreate a church organ sound. It's not perfect, but it’s pretty effective.
The full organ definition I used was:
"organ" [
2 CHANS
1 CHAN
 Peaked
2 CHAN
 -192 SHIFT    0 OFFSET       128 AMP
 Tailed
EVERY CHAN
 Pipes         Flat
 ON PHSET
]
Pete Christy

Question: POS & PAN

Can anyone tell me the difference between POS and PAN? I know that POS relates to channels and PAN to voices, but how does one affect the other?
Is PAN equivalent to EVERY CHAN POS? If so, then I presume that it is not worth using POS in an instrument that might have the stereo position adjusted from the Mixing Desk, as the POS commands will be superseded?
Quentin Stafford-Fraser

Answer: Using the Music 2000

I would like to reinforce the favourable opinions expressed in both reviews of the Music 2000 MIDI Interface in AMPLINEX 005. I have an Alesis HR-16 drum machine and a Yamaha FB-01 FM sound generator, and the level of control that the Music 2000 offers over both these instruments is amazing. A very professional sound can be made with just the Alesis Drum Machine working alongside the Music 5000.
I look forward to future software support for the MIDI IN socket so that the unit's full potential may be realised. The ability to send out MIDI system exclusive messages that request a MIDI instrument to dump voice or pattern data, via the MIDI IN socket, to disc rather than tape will, I hope, be supported. Any comments from Hybrid Technology as to when the MIDI IN socket will be supported and what restrictions may apply?
Les Pearce

Question: Music 2000 and Casio CZ5000

I have been trying out my Music 2000 with it coupled up to a Casio CZ5000 to which I have access. Although the Casio is not velocity sensitive I expected to be able to balance relative volume levels of each of the channels by system exclusive commands (using MIDIOUT) as shown in the examples on page 56 of the Music 2000 User Guide.
I have tried this using the data published by Casio in their guidebook for MIDI but I have been unable to achieve any variations in the output levels of either the individual channels or the instrument as a whole. Can anyone (especially Rick Cocker who did trials using both pieces of equipment - see AMPLINEX 005 News and Reviews) help please?
Ted Royffe

Question: Using Echo

I've come across a snag in a piece I'm doing at the moment. I've two voices tied up on an 'Echo'ed riff part, and when I try to change the 'mix' this part, if included, locks the whole thing up.
I assume that it's because in 'Echo' one voice is slightly behind the other and would follow on into the next mix which would then corrupt it.
I've tried inserting rests into the other parts to compensate for the delay, but this just makes the piece sound awful. Any ideas?
Earl Bonnar

Answer: More on the Opus Challenger

I am afraid the problem is hopeless, judging by letters received from both Hybrid Technology ("...this is due to the Challenger's illegal use of the 1MHz bus...") and Opus ("I am sorry but unfortunately because of the arrangements which Acorn made for the use of the 1MHz bus, it was not possible to produce Challenger abiding by their full specs...).
Tired of using a tape-bound system, I eventually had to buy a standard Acorn compatible disc drive to replace the Challenger.
Roger Sapolsky

Question: Screen control in AMPLE

In BASIC it is possible to control screen output by the use of VDU21 and VDU6, to hide commands in a !BOOT file. After a *AMPLE command, this no longer seems possible.
Is there a way that screen output can be suppressed from within AMPLE, whilst changing directories in ADFS for example, so as not to disfigure a title screen, etc.
Frances Wymans

The AMPLE equivalents to VDU21 and VDU6 are 21#OUT and 6#OUT. They should operate in the same way as the BASIC commands.

Question: AMPLE editor

Has anybody written a decent editor for AMPLE words? The Notepad has several horrible habits, such as losing the end of long lines, limiting the number of lines to one screen full, etc.
The absence of such things as an 'insert/overtype' option, cut and paste, and no way of splitting a line in the middle is really annoying at times. I am considering writing a more comprehensive editor, possibly using Mode 0 and Shadow RAM, but I thought I would check first whether anyone has already done it.
Quentin Stafford-Fraser

Answer: Music 4000 Keyboard repair

Like Jack Wrigley (see Questions & Answers AMPLINEX 005) one of the contact wires in my Music 4000 Keyboard broke. The inside of the Music 4000 seems to be the same as the Symphony Keyboard as described by Jack except that there is no gold plating that I could see (could this mean that the Music 4000 is an inferior product?).
Wanting to get the Music 4000 repaired as quickly as possible my solution to the problem was slightly different. Instead of ordering a replacement wire I used a piece of a metal guitar string (B medium gauge). When cut to a suitable length and soldered into position it proved to be an excellent substitute. This happened about three months ago and since then I've had no problems with the keyboard.
Jimmy Ryan

Question: trapping AMPLE errors

Does anybody know a way of trapping system errors, such as '! Already present'?
What I am after is an equivalent of the BASIC 'ON ERROR' statement.
Quentin Stafford-Fraser

Question: Solidisk Shadow RAM

I was disappointed to discover that the Hybrid Music System doesn't support the 128k 2MEG Solidisk Shadow RAM (even though I enclosed a note with my order asking Hybrid Technology if there were any problems!). Ringing Hybrid I learnt that the Solidisk MANAGER ROM does not support OSBYTE 111 which they say is 'official' and they blamed Solidisk for writing non-official software.
However, the BBC Master's Operating System uses OSBYTEs 108 and 114 to operate Shadow RAM (see Master Reference Guide part 1) and it is stated that OSBYTE 111 is unused!
Ringing Solidisk I got the 'permanently engaged - we'd rather not know your problem' response. Could anyone throw some light on this? Who is using the right OSBYTE and what can I do to get Shadow RAM going?
I can actually get Shadow mode if I operate *SHADOW from within AMPLE but the notes become distorted and triggered at incorrect times. It sounds as though there are problems arising from some sort of timing conflict.
I can do a bit of assembler - so even if there is no quick and easy answer I am prepared to modify the MANAGER ROM and/or the AMPLE C.PREPARE file, in order to effect a fix, if anyone can point me in the general direction.
Peter Middleton

Question: Mixes and sub-mixes

I don't think that the Studio 5000 User Guide explains sub-mixes very well. Whenever I have made one, it turns out to be exactly like a normal mix. Should it be?
I tried to use some sub-mixes in the last piece I wrote, because, when the mixes changed, the whole piece slowed down for about 3 beats, and it sounded as if the system had got all mixed up.
As using sub-mixes did not change this, after trying several ideas, I ended up changing the instruments by putting, for example,
1 VOICES Upright
1 VOICE 128 VOL -1 PAN
on every player, in the part before the voices had to change.
There must be a way to avoid this 'mix-up'! Any suggestions?
Diccon Maude

Question: BBC Master Editor

Will AMPLE Nucleus ever be able to use the BBC Master 128 editor in the same was as other Acorn languages? That is, allow users to *EDIT a disk file or word text and then switch back to AMPLE restored to the state they were in when the *EDIT command was issued?
It would be really nice to be able to do this.
Ian Hulin

Question: MIDI instrument selection

I would like some help in selecting a MIDI instrument compatible with the Music 2000 MIDI interface. Following the recent reviews of the Music 2000 (AMPLINEX 005) I have decided to get one. However, this decision implies the purchase of an adequate MIDI instrument which will be compatible with it. This is not so easy for a resident of a country (France) where electronic music dealers have never heard of the Music 5000!
At my request, one of them recently demonstrated the Roland MT32 multi-timbre sound module. Since I can't play a keyboard, I don't intend to buy one, but the module had to be connected to a keyboard to perform the demonstration.
At first blush, I was impressed by the 128 preset sounds, let alone the small size of the module, it's affordable price, etc.
Since the dealer was unable to tell me whether it would work with the Music 5000/2000, I wrote to Hybrid Technology and solicited their advice. All I got was a one-line answer stating that the MT32 is fully compatible with the Music 2000, but does not respond to the Music 5000 commands. In other words, the MT32 is not what I need. Unfortunately, Hybrid didn't suggest any suitable synthesiser make, as I had requested.
Will an AMPLINEX member be kind enough to help me decide what to buy? In a few words, the marvel apparatus should be moderately priced, it should bring me 5 additional VOICES, a host of good sounds including percussion, but need not necessarily be programmable (if the choice of presets is large enough).
Roger Sapolsky

Question: Lyrics and dynamics

I am thinking of writing lyrics to some of my tunes. Is there any way I can print short phrases on the screen as the solo instruments play the melody?
I have tried including words inside the parts by using
"phrase" $OUT
at the appropriate point in the melody, but the phrases are always printed out too early.
Also, is there a way of increasing or decreasing tempo or dynamics on every voice of every part simultaneously? Perhaps there is a short way that could be put into part9? Programming is not my forte, so maybe members could suggest how this can be done.
Michael Harbour

Question: Island Logic Music System

There must be many AMPLINEX members who, like me, have copies of the Island Logic Music System. I have a number of music files and linker files saved on disc, and I would be interested to learn if it is possible to convert these to AMPLE Nucleus. Obviously, it would only be the actual music data that could be used.
I imagine that it might be possible to write a program to do the job, but, unfortunately, I don't have enough knowledge to do it!
If anyone has any ideas, I should be interested in hearing them.
Tim Holgate

Question: Current volume settings

How do I get hold of the current volume setting on a part including the effects of +L and -L statements which have been operating on that player? I tried stealing the MVAL? example from the AMPLE Nucleus Programmer Guide and the low byte resulting from 6 FVAR?, but it only told me the last parameter I passed in the last =L statement. Any ideas from any of you demon AMPLE hackers?
Ian Hulin

Question: MIDI messages and software

I am using a Roland TR505 drum machine and a Yamaha FB-01 expander unit with the Music 2000 and am still in the experimental stage.
The TR505 appears to work extremely well with the Music 2000 except that the example in the manual for slowing or increasing the tempo using MIDI will not work as written.
The manual suggests:
READY
1 VOICES MIDIRT
3 MIDILINE
X
64 16 -T //// //// //// ////
but I find I must input:
64 16 -T X/// //// //// ///X
The Yamaha FB-01 appears to be okay also, although I am disappointed with some of the voices. I am, however, having trouble moving from voice bank to voice bank which I believe requires a system exclusive message and I have yet to determine the message to do it.
I've tried MIDIOUT but the FB-01 requires the voice data in pairs which needs MIDIWOUT and I've yet to determine whether &F0 and &F7 beginning and end message are sent as single bytes and the others as pairs or the whole message in pairs. I would appreciate any information as to the bytes to send or on the experience of other users.
Does anyone know, also, of any BBC software which will do FM voice editing for the FB-01 in a similar way to the program sold by Yamaha for their computer or to those for the Atari ST?
Michael Mellor

Question: 'Save Me' Hang-up

Thanks for publishing my arrangement of the Queen tune 'Save Me' (AMPLINEX 006). However, your comment about the program 'hanging' part way through concerns me because it works perfectly on my computer - a BBC B series 7 with Acorn DFS and Watford 32K Sideways RAM (not accessible by AMPLE to my annoyance).
I once had a similar problem with another AMPLE program which got so far then zipped through one section as if on fast-forward. The really odd thing was I SPOOLed it off as a text file and EXECed it back into the computer and saved it as normal after which it worked just fine. What is going on?
Mike Dobson

Answer: 'Save Me' hang-up

The 'hang' in the 'Save Me' tune in AMPLINEX 006 is caused by a bug in older versions of the M.FX1A module where PLAY strings longer than about 16 characters cause the 'hang'. Newer versions can be much longer and even spread over more than 1 line using $12 and $+. For example,
"12-1abc" "de2fg" $12 $+ PLAY
More than one PLAY does not work.
The solution is get a newer version of the M.FX1A module; I use the one from the Music 4000 disc. Alternatively, use sub-sections. For example,
 "part1A" [ part1a part1b part1c part1d part1e]
 "part2A" [ part2a part2b part2c part2d part2e]
 "part1B" [part1f part1g]
 "part2B" [part2f part2g]
 "12-1A2B" PLAY
Ian L Hubbard

Question: Printing AMPLINEX files

I have just bought a printer, and hurriedly plugged it to my system. After selecting the PRINT ON option from the AMPLINEX Introduction menu, it appears that printing begins as soon as a file has been selected (e.g. Questions and Answers) from the main menu, and its first page displayed. But what if I want a printout of certain selected pages, not the whole section?
I am an absolute beginner in the art of printing, so any help will be welcome - unless selective printing of a page from within AMPLINEX is just not possible!
Roger Sapolsky

In response to your request some new facilities have been added to the A.MPLINEX program. For more details see the 'Printing AMPLINEX data' notes in the Introduction section.
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 007, September 1988

Printing out AMPLINEX information

There are three ways to print out the information seen within AMPLINEX.
You can print out an AMPLINEX file as it is displayed on the screen from within AMPLINEX; you can print the files themselves as you would any other text file; or you can load the files into your own word processor and 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.

Published in AMPLINEX 007, September 1988

Next issue news

The next issue of AMPLINEX is planned for release in mid-November. This means that all applications for a FREE copy (i.e. those with discs containing contributions) must be received by SATURDAY OCTOBER 15TH. Anyone paying the £2.00 fee has until Friday 11th November to apply.
Already planned for the November issue is a feature on how AMPLE words are tokenised in memory, a user report on the Music 2000 MIDI interface, a sideways RAM help utility for AMPLE and the results of our survey which is included in this issue.
So please remember to include your survey results along with your text or music contributions to AMPLINEX 008.

Published in AMPLINEX 007, September 1988

How to contribute to AMPLINEX

To receive your next issue of AMPLINEX free of charge you must send a contribution of your own.
This could be an AMPLE music program, an instrument definition, a question or an article about some aspect of the AMPLE language or Hybrid Music System hardware or software, an AMPLE utility, a useful hint about AMPLE, or an answer to another 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 Micronet for distribution via their 'Music City' service.
If you do NOT wish your contributions to be considered by Micronet (and thus your address not to be passed to them) please indicate this on the request form in the place provided.
You can also use your return disc to pass on questions which you would like answered on any issue relating to the Hybrid Music System or AMPLE language. We will do our best to answer them (or will pass them over to the other members for help) and publish the results in the Questions and Answers section of AMPLINEX.
You can also use AMPLINEX to advertise any (un)wanted items 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).
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.
It is not necessary to send printed copies of your contributions - any copies required are printed locally to minimize postage costs.
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 007, September 1988

Update – changes/corrections/comments

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

Contributing to AMPLINEX

A feedback note from Diccon Maude ask us:
"If a contribution to AMPLINEX is not in the next issue do we have to submit it again, or is it kept for use later?
What is the situation for music (or questions even) that you do not think good enough, as the contributor does not know if his/her music will be put in a later issue?"
In general, all contributions to the 'Questions and Answers' and 'Advertisements' sections are placed in the next issue (assuming they arrive by the submission deadline). 'Hints and Tips' are usually published immediately, but some might be held back to enable them to be published with other, related contributions (e.g. this issue's ROM compatibility feature).
Contributions to the 'Features' and 'Utilities' sections are more difficult to plan as they often involve several (sometimes large) files and disc space is limited. Instrument definitions are collected and published intermittently.
The number of contributions to the 'Music' section has enabled us to maintain high quality as well as offer variety. For each issue all the music contributions to date are considered - so a piece may appear several issues after it was contributed.
So, if a contribution does not appear immediately there is no need to submit it again. If for some reason you do not want a piece which you have contributed to be published - just let us know and we will not consider it for publication.

Copyright in music contributions

Pete Holdroyd writes
"I think I'm correct in believing that arrangements are copyright the arranger, though it is usual to acknowledge the composer of the original music. Perhaps you could clarify this?"
Since our agreement with MCPS (the Mechanical-Copyright Protection Society) we are able to publish in each issue a limited number of music programs whose author is not the music copyright owner. This agreement covers the both compositions and arrangements which are still in copyright.
Because it is not always clear (or easy to discover) whether a particular piece is in copyright or not, it is good practice to acknowledge the composer (and arranger if applicable) of any music which is not your own.
If we receive music which is not credited and we are in doubt about the copyright position we will not be able to publish.

AMPLINEX and CEEFAX

Since the previous issue of AMPLINEX we have been experiencing some difficulty in our discussions with the BBC's CEEFAX service.
As you may know we planned to provide AMPLINEX-sponsored material for their Telesoftware transmissions starting in the autumn and hoped to be contacting the authors of the first selection of material in August.
Since then, however, we have been waiting to receive a copy of the special licensing agreement which the BBC were drawing up for use with AMPLINEX.
The BBC tell us that their contracts department is having some difficulty in clarifying the status of broadcast music software and are currently in discussion with the MCPS about this.
In the meantime we would like to extend our invitation to all members to let us know (via a Feedback note) what they consider to be the best music programs we have published over the past year (AMPLINEX issues 001-006). Nominate as many or as few as you like and we will try to reflect your collective judgement in any future selection we offer to CEEFAX.

AMPLE by phone

In the 'Update' section of AMPLINEX 006 we mentioned that, for a future AMPLINEX feature, we would like the experiences and comments of members on services such as Music City and DCT which provide AMPLE programs and information via a modem. The response so far seems to indicate that almost no AMPLINEX members use these services!
This seems a little hard to believe, so we are re-issuing the appeal for your comments on the features and benefits offered by these services and on the costs and equipment involved.

AMPLINEX M06 music disc

A note from G H Richardson asks why we didn't use the second side of the AMPLINEX 006 disc for the accompanying music disc.
Firstly, we would have needed to know which members have access to a double-sided disc drive. Secondly, the music disc was prepared in advance of the main magazine in order to avoid a doubling of the editing and distribution effort.
As the cost of the extra discs was small this seemed a better solution.

AMPLINEX membership

A note from Richard Bettis asks us whether the membership of AMPLINEX has changed much over the past year.
The answer is yes. The first issue of AMPLINEX in September 1987 was distributed to about 25 people; by the end of 1987 we were publishing about 75 copies and this issue should be going to about 125 people. The number of people who have become members of AMPLINEX is rather larger than these figures suggest, but not everyone subscribes to each issue.
Finally, please continue to send us your ideas for improving the workings or contents of AMPLINEX. We want the magazine to do what you want - so if it doesn't, let us know.
Also, please let us know if you spot an error or omission - you may be the only one who has noticed.

Published in AMPLINEX 007, September 1988