AMPLINEX issue 006 was published in July 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.
News and reviews
Waveform Designer
Kevin Doyle
Distribution of the SoundSculptures Waveform Designer (reviewed in AMPLINEX
004) has been disrupted recently due to the rise in price of EPROMs, according
to Jonty Stockdale, the designer of the software. He said that he had delayed
production of the latest batch whilst trying to find a cheaper source of blank
EPROMs but had now decided to buy at the more expensive price. The backlog of
orders should be cleared within the next week.
The higher costs mean that, in future, the software package
(which consists of a floppy disc, ROM and manual) will cost £31.00 - an
increase of £2.00. The delivery time should be a maximum of 21 days.
Mr Stockdale also stressed that the software would currently
only work with the BBC Model B, but that he was working on a new version which
would be compatible with the BBC B+ and Master. This should be available by September.
The Wave Designer is available from:
Mr J Stockdale
7 Newhey Road
Cheadle
Cheshire SK8 2AQ
7 Newhey Road
Cheadle
Cheshire SK8 2AQ
priced £31.00 including postage and packing.
Fatal Diseases cassette
Roy Follett
AMPLINEX 004 contained an advertisement submitted by one of
our members for an audio tape of music using, amongst other instruments, the Music
5000. Intrigued by this, I asked for and was sent a review copy.
I wish now that I had not done so. I do not want to appear
uncharitable but, although I appreciate the amount of work that went into the
production of this cassette, the lyrics hit a very low low.
The titles themselves set out to offend, for example:
'Rap' an everyday story of constipation, domestic accidents
and wild perverted sex
or
'Mr Trousers', a classical operetta about a man with a huge
willy
or
'Vomit tastes like Weetabix' a smooth jazz ditty about cat
produce.
To move on, I liked the music. With one or two exceptions,
most of it was very inventive with the Music 5000 being detectable. Being on
audio tape one is not able examine the production as AMPLE users normally do,
but must do it aurally. In case I was too old in the tooth to appreciate this production
as a whole, I asked my son to listen and give his opinions.
These are few of them:
'Lager frenzy'. Alright, but rather spoilt by unnecessary
sound effects.
'Hot sausage merchant'. Messy.
'Fatal diseases'. This one is OK but I kept waiting for
something to happen.
'Juxtaposition'. Ditto.
'Rap'. Ditto
'Till the end of time'. Several orders of magnitude better.
Several changes of tempo made this much better.
I wonder why this cassette was made; was it to entertain the
listener or was it an exercise in self-indulgence by the performers?
What else can I say, I've tried to like this production. But
I cannot.
The cassette 'Fatal Diseases' is available from:
Mike Dobson (Promotions Manager)
63 Galsworthy Road
Goring-by-Sea
Worthing
West Sussex BN12 4UP
63 Galsworthy Road
Goring-by-Sea
Worthing
West Sussex BN12 4UP
for £2.50.
A new cassette titled 'Beastiality Blasphemy Bondage Buggery
Blood' is also available for £3.50.
Published in AMPLINEX 006, July 1988
Varen (Last Spring)
by Gerry TimmComposed by: Edvard GriegI chose Varen as an exercise in expression control and dynamic balancing of 8 parts. My Music 5000 was originally obtained as a means of trying and storing musical ideas and arrangements - which it does admirably - but I am now 'hooked' on AMPLE and trying to unravel it. The Staff Editor is a boon. I initially write parts here, laying them down one at a time, listening for errors not detected by the editor. Before AMPLINEX my only real source of information and help was studying other people's programmes.
Gerry Timm, Lincoln, March 1988 |
Source: AMPLINEX 006 disk, file $.SPRING |
Published in AMPLINEX 006, July 1988
Save Me
by Mike DobsonComposed by: Brian MayThe main point of interest here is my extensive use of AMPLE's broken chord feature to produce a strumming effect - see player 4's parts.
You may also notice most of the instruments are from the Music 4000 demo jukebox. I find there is little need to define new sounds when so many are provided already. |
Source: AMPLINEX 006 disk, file $.SAVEME |
Published in AMPLINEX 006, July 1988
Phase
by Tony SnellThis music is written so that it plays forever and so this recording is just a sample of the music that it could produce. Something for all you minimalists out there...
Part 1 and part2 differ only in the speed at which they play the parts. Try changing the short sequences of notes in the phrases, changing the order in which they play etc. Don't forget to switch off before you go to bed. |
Source: AMPLINEX 006 disk, file $.PHASE |
Published in AMPLINEX 006, July 1988
March of the Jazzmen
by Bill MellorComposed by: Morgan JonesArranged by Harry Gold MARCH OF THE JAZZMEN is programmed from a typical piece of sheet music known in the trade as 'Dots for Small Combo's' and is of the type used by hundreds of small Trad Groups during the 50's 60's and 70's known as Dixieland.
Having played Trombone in one such group for the past twenty or so years I have a great affection for this type of music and I hope it is sufficiently different from most of the AMPLINEX contributions to have some novelty appeal. Please feel free to experiment. Bill Mellor |
Source: AMPLINEX 006 disk, file $.MARCH |
Published in AMPLINEX 006, July 1988
Grunt for Grunt
by Ted KirkComposed 1980 and programmed 1988 I can't remember why it's called GRUNT FOR GRUNT, but I think there's a loose connection with a BBC show that was called WORD FOR WORD.
The piece was originally written for a school jazz group, as you can probably tell. |
Source: AMPLINEX 006 disk, file $.GRUNT |
Published in AMPLINEX 006, July 1988
Gills
by The Awfully Nice Software CoClose the curtains Geoffrey I'm amphibious |
Source: AMPLINEX 006 disk, file $.GILLS |
Published in AMPLINEX 006, July 1988
Spy Programs
A G Walduck
In an attempt to 'look inside' the machine as AMPLE was
playing music (to see if I could spot interesting things like sound event
queues and to try to make some sense of them) I wrote two short programs to
give me a dynamic memory display of areas within the machine.
Most other methods are unsuitable for use with AMPLE: Exmon
is another language ROM, and only one language can be active at a time; Disc
Doctor's MZAP almost completely takes over the machine; ADT's MEX command hangs
the machine if executed from AMPLE.
I wished to obtain a fairly large 'window' into the machine,
refreshed as rapidly as possible, that could co-exist with a busy AMPLE environment,
could be easily instructed to view different areas, and could be turned on or
off at will. Above all the keyboard control of AMPLE still had to be
maintained.
The program is a small (less than one page) machine code
program (AMPLE was far too slow!) which is completely illegally written,
writing directly to the screen (apologies to Shadow RAM users, but even the OS
routines are too slow), grabbing Econet zero-page workspace (&90-&9F)
for its use, and residing in either page &900 or &A00 (which probably
clashes with the Staff editor buffer usage of this area). It is a real quick-and-dirty
program - but if anyone cares to improve on it, so much the better.
It exists as a background process, driven by the vertical
sync event. Consequently the display can be animated by *FX14,4 (turn vertical sync
event on), or frozen by *FX13,4 (turn vertical sync event off). Since text
windows are not used, if the screen scrolls the display gets a little
fragmented, but to no harm, and a quick 7 MODE puts everything to rights again.
The program suite exists in two versions, a 'normal' one
which displays in the lower half of the screen (more suitable for coexisting with
Menus and Editors), and a 'Hi' version which uses the upper half of the screen,
and which is more suitable for use with the Mixing Desk. This version has to
write a little more to the screen (i.e. spaces) for the output to be
presentable, so is potentially a little more demanding of the processor, which
can occasionally get a little stretched at busy times in the music processing;
under these circumstances the music will temporarily slow or get out of step.
Each version consists of two programs:
a) U.MonS (or U.HiMonS) - a BASIC source program to assemble
the code, and to save the machine code image. It also gives a test environment
in BASIC, and starts with a display of the active area of the BASIC stack (for
a bit of movement!). The machine code images produced are called Mon (or HiMon)
and must be loaded at &900.
b) U.Spy (or U.HiSpy) - an EXEC file to load the machine
code, set up function keys to 'move around' in memory, write the vector
contents, and turn on the display (this time of the AMPLE stack). A couple of
new AMPLE words are defined ('set' and 'show') to help in its use. These will
be lost if a new program is loaded (unless SPY is EXECed again), but the
equivalent commands can still be typed by hand.
Interesting areas in AMPLE memory
&160 show
The AMPLE stack. Unusual in that it runs from &17F down,
and AMPLE error messages reside at &180 up (c.f. the typical BASIC/OS stack
which runs from &1FF down, with error messages at &100 up.
&1D38 show (&2138 show, for the Music 4000)
Use HiSpy and the Mixing Desk to view this area within the
M.M5 module work area, and one can readily see the correspondence between
sounds on voices shown on the mixing desk and changes in this area. If the
music is very busy, remember that the Mixing Desk screen refresh is a very low priority
task in AMPLE so it may well lag noticeably behind the Spy screen, which has a
higher priority than many of the AMPLE processes.
&1913/4 show
This is in the M.INT area and is incremented each 1/100th of
a second during the running of an AMPLE music piece. Possibly the master
timebase for the system.
I would be most interested if anyone finds any more
attributable actions in the welter of changing data that this program reveals.
Related files on this disc:
U.MonS - BASIC program to produce 'Mon' machine code
U.HiMonS - BASIC program to produce 'HiMon' machine code
U.Spy - EXEC file to enable use of Mon code within the AMPLE
environment
U.HiSpy - EXEC file to enable use of HiMon code within the
AMPLE environment
Published in AMPLINEX 006, July 1988
Joystick for MIDI
Rick Cocker
Rick Cocker was one of our reviewers of the Music 2000 MIDI
interface in AMPLINEX 005 (May 1988).
Music 2000 MIDI interface owners should use:
*EXEC U.MIDIjoy
to read this file into AMPLE. It should then be RUN.
% List of words
"RUN" []
"button" []
"harp" []
"info" [] "info2" [] "info3" []
"info4" [] "info5" [] "info6" []
"joyval" [] "mix" [] "mod" []
"play" [] "sig" [] "sus" []
"swait" [] "uilleann" [] "velact" []
"info" [] "info2" [] "info3" []
"info4" [] "info5" [] "info6" []
"joyval" [] "mix" [] "mod" []
"play" [] "sig" [] "sus" []
"swait" [] "uilleann" [] "velact" []
"RUN" [7MODE 6FOR(NL)FOR DISPLAY
% Filename: U.MIDIjoy
%
% Demonstration using the joystick to
% control MIDI and velocity functions.
%
% The piece used is an Irish
% traditional ballad called
% "Eileen Aroon".
%
% Press ESCAPE to end and type
% 'info' for further details.
%
READY 115=T mix sig play
]
% Filename: U.MIDIjoy
%
% Demonstration using the joystick to
% control MIDI and velocity functions.
%
% The piece used is an Irish
% traditional ballad called
% "Eileen Aroon".
%
% Press ESCAPE to end and type
% 'info' for further details.
%
READY 115=T mix sig play
]
"button" [
% test and get value of joystick
% button. Note that this word is not
% active in this piece but included to
% show method.
0 &80 &FFF4 CODE #2 % get value
3 AND #11 % test for
1 #= % button 1 (use 0
% if button 0 )
IF( #11 % if button on
64 MIDICONTROL )IF % then send
% sustain
#2 % discard value
]
% test and get value of joystick
% button. Note that this word is not
% active in this piece but included to
% show method.
0 &80 &FFF4 CODE #2 % get value
3 AND #11 % test for
1 #= % button 1 (use 0
% if button 0 )
IF( #11 % if button on
64 MIDICONTROL )IF % then send
% sustain
#2 % discard value
]
"harp" [% harp accompaniment
velact % set velocity on joystick
24,4FOR(-2:FACFACFcafca)FOR gBDGBD
4FOR(-2:FACFACFcafca)FOR
gBDGBD!fACFACFcafcaBDFBDa!gBDGDb
!-eB-EG-Eb!cGCGEc!dADADF!!-eB-EB-EG
!!cGCEGCEGCgec!fACFAC!gBDGBD
2FOR(-2:FACFACFcafca)FOR gBDGBD
!fACFACFcafcaf///^
]
velact % set velocity on joystick
24,4FOR(-2:FACFACFcafca)FOR gBDGBD
4FOR(-2:FACFACFcafca)FOR
gBDGBD!fACFACFcafcaBDFBDa!gBDGDb
!-eB-EG-Eb!cGCGEc!dADADF!!-eB-EB-EG
!!cGCEGCEGCgec!fACFAC!gBDGBD
2FOR(-2:FACFACFcafca)FOR gBDGBD
!fACFACFcafcaf///^
]
"info" [7MODE 4FOR(NL)FOR DISPLAY
% In this piece the joystick is used
% to control two functions - velocity
% and modulation-wheel effects.
%
% Joysticks work in different ways but
% these simple examples can be used as
% starting points. The programming can
% be much improved as it is included
% here purely for demonstration.
%
% Note that the velocity word if
% scaled 0-64 could be used by Music
% 5000 voices.
%
% ** Press SPACE BAR to continue **
#IN #2 info2
]
% In this piece the joystick is used
% to control two functions - velocity
% and modulation-wheel effects.
%
% Joysticks work in different ways but
% these simple examples can be used as
% starting points. The programming can
% be much improved as it is included
% here purely for demonstration.
%
% Note that the velocity word if
% scaled 0-64 could be used by Music
% 5000 voices.
%
% ** Press SPACE BAR to continue **
#IN #2 info2
]
"info2" [7MODE 4FOR(NL)FOR DISPLAY
% Both axes are being used but in
% different ways:
%
% 1) The horizontal axis controls
% velocity (=L) using the ACT command
% found in the word 'velact' placed
% prior to the 'harp' music in part 1.
%
% 2) The vertical axis is controlling
% modulation effects found in the word
% 'mod'. In this piece I am using
% SHARE to place the modulation effect
% on part 2.
%
% ** Press SPACE BAR to continue **
#IN #2 info3
]
% Both axes are being used but in
% different ways:
%
% 1) The horizontal axis controls
% velocity (=L) using the ACT command
% found in the word 'velact' placed
% prior to the 'harp' music in part 1.
%
% 2) The vertical axis is controlling
% modulation effects found in the word
% 'mod'. In this piece I am using
% SHARE to place the modulation effect
% on part 2.
%
% ** Press SPACE BAR to continue **
#IN #2 info3
]
"info3" [7MODE 4FOR(NL)FOR DISPLAY
% I have placed the word 'mod' after
% the play (P) structure to show that
% it can be used on the non-playing
% part. This would leave all playing
% parts for music notation. It could
% of course be used in a normal part.
%
% Although not used in this piece I
% have included the word 'button'
% which tests to see if the
% joystick's fire-button is being
% pressed. When pressed it turns on
% the instruments' sustain.
%
% ** Press SPACE BAR to continue **
#IN #2 info4
]
% I have placed the word 'mod' after
% the play (P) structure to show that
% it can be used on the non-playing
% part. This would leave all playing
% parts for music notation. It could
% of course be used in a normal part.
%
% Although not used in this piece I
% have included the word 'button'
% which tests to see if the
% joystick's fire-button is being
% pressed. When pressed it turns on
% the instruments' sustain.
%
% ** Press SPACE BAR to continue **
#IN #2 info4
]
"info4" [7MODE 4FOR(NL)FOR DISPLAY
% Note: any MIDI control, which uses a
% flag (ON/OFF) to activate it, may be
% controlled by the fire-button.
%
% Likewise, any MIDI control with a
% data value 0-127 may be controlled
% by the joystick e.g. Breath control,
% Velocity, Portamento Time. You can
% also send out system-exclusive data
% e.g. Glide-time on a Casio CZ.
% However, if the instrument is slow
% to respond to some commands it could
% give rise to synching problems.
%
% ** Press SPACE BAR to continue **
#IN #2 info5
]
% Note: any MIDI control, which uses a
% flag (ON/OFF) to activate it, may be
% controlled by the fire-button.
%
% Likewise, any MIDI control with a
% data value 0-127 may be controlled
% by the joystick e.g. Breath control,
% Velocity, Portamento Time. You can
% also send out system-exclusive data
% e.g. Glide-time on a Casio CZ.
% However, if the instrument is slow
% to respond to some commands it could
% give rise to synching problems.
%
% ** Press SPACE BAR to continue **
#IN #2 info5
]
"info5" [7MODE 4FOR(NL)FOR DISPLAY
% Note: The values produced by joyval
% are 0-126. 0 is produced instead of
% 127 because of AMPLE's use of 16-bit
% signed integers. To stop this use:
%
% "store"[GVAR] % old value store
% "joyval"[&80 &FFF4 CODE #2 512 #/ #2
% #11 0 #= IF( % If 0 compare to
% store #? SIGN #= % old value's SIGN
% IF(0)ELSE(-1)IF % neg? =0 pos? =-1
% )IF #11 store #! % store it.
% #11 SIGN IF(-1 #* 127 XOR )IF ]
%
% ** Press SPACE BAR to continue **
#IN #2 info6
]
% Note: The values produced by joyval
% are 0-126. 0 is produced instead of
% 127 because of AMPLE's use of 16-bit
% signed integers. To stop this use:
%
% "store"[GVAR] % old value store
% "joyval"[&80 &FFF4 CODE #2 512 #/ #2
% #11 0 #= IF( % If 0 compare to
% store #? SIGN #= % old value's SIGN
% IF(0)ELSE(-1)IF % neg? =0 pos? =-1
% )IF #11 store #! % store it.
% #11 SIGN IF(-1 #* 127 XOR )IF ]
%
% ** Press SPACE BAR to continue **
#IN #2 info6
]
"info6" [7MODE 4FOR(NL)FOR DISPLAY
% I have been unable to obtain 127 at
% the highest end of the joystick! Can
% anyone solve this? Joysticks are
% unreliable when at extremes. Is all
% that clear? Ah well...
%
% AMPLINEX has shown that there are
% many good music programmers using
% AMPLE so please experiment and if
% you come up with useful routines
% post them off. Adding real-time
% sound control to the Hybrid Music
% System for me offers many exciting
% possibilities.
%
% Rick Cocker (April 1988)
]
% I have been unable to obtain 127 at
% the highest end of the joystick! Can
% anyone solve this? Joysticks are
% unreliable when at extremes. Is all
% that clear? Ah well...
%
% AMPLINEX has shown that there are
% many good music programmers using
% AMPLE so please experiment and if
% you come up with useful routines
% post them off. Adding real-time
% sound control to the Hybrid Music
% System for me offers many exciting
% possibilities.
%
% Rick Cocker (April 1988)
]
"joyval" [
% axisnumber joyval -> valuenumber
swait
&80 &FFF4 CODE #2 % get value
512 #/ #2 % scale to 63 to -64
#11 SIGN % test for negative
IF( -1 #* 127 XOR )IF
% scale to 64 to 126
]
% axisnumber joyval -> valuenumber
swait
&80 &FFF4 CODE #2 % get value
512 #/ #2 % scale to 63 to -64
#11 SIGN % test for negative
IF( -1 #* 127 XOR )IF
% scale to 64 to 126
]
"mix" [% set up mix for MIDI voices
1 SHARE 8 VOICES MIDIV 1 MIDICHANNEL
2 SHARE 8 VOICES MIDIV 2 MIDICHANNEL
PNUM SHARE
]
1 SHARE 8 VOICES MIDIV 1 MIDICHANNEL
2 SHARE 8 VOICES MIDIV 2 MIDICHANNEL
PNUM SHARE
]
"mod" [% takes vertical joystick value
% for modulation control
2 SHARE % share with part2
REP(
REP( IDLE % pass control to
% other players
2 joyval #11 % get joystick value
1 MIDICONTROL % set control
)UNTIL( )REP
)REP
]
% for modulation control
2 SHARE % share with part2
REP(
REP( IDLE % pass control to
% other players
2 joyval #11 % get joystick value
1 MIDICONTROL % set control
)UNTIL( )REP
)REP
]
"play" [% play 2 parts
1 P( harp )P % includes ACT command
% "velact" for velocity
2 P( uilleann )P
GO
mod % modulation on part2
]
1 P( harp )P % includes ACT command
% "velact" for velocity
2 P( uilleann )P
GO
mod % modulation on part2
]
"sig" [K(-B)K
]
]
"sus" [% flag sus
64 MIDICONTROL % if ON (-1) turn
% sustain control on
]
64 MIDICONTROL % if ON (-1) turn
% sustain control on
]
"swait" [% waits until last DURATION
% (or music event) complete
REP( QTIME 0 #< )UNTIL( IDLE )REP
]
% (or music event) complete
REP( QTIME 0 #< )UNTIL( IDLE )REP
]
"uilleann" [% uilleann pipe plays tune
288,/ 48,
0:F12,//G/f/d/|c/////F/G/fG|48,A
//|///|c/D|F12,//G/48,A|g12,//Agf/d/
|48,F12,//G/f/d/|48,c//|F12,//G/f/d/
|48,c12,//F/G/fG|48,A//|///|A/g|f12,
//G/48,A|g12,//Agf/e/|48,F//|^FA|B/
a|g/d|-E12,//F/-e/d/|48,c//|12,G/fG
48,A12,d///|48,-E12,//F/-e/d/|48,c//
|12,////48,//|12,A/gAC/D/c/a/|f/d/c/
D/F/G/|48,A//|///|c/D|F12,//G/48,A|g
12,//Agf/e/|48,F//|0,^
]
288,/ 48,
0:F12,//G/f/d/|c/////F/G/fG|48,A
//|///|c/D|F12,//G/48,A|g12,//Agf/d/
|48,F12,//G/f/d/|48,c//|F12,//G/f/d/
|48,c12,//F/G/fG|48,A//|///|A/g|f12,
//G/48,A|g12,//Agf/e/|48,F//|^FA|B/
a|g/d|-E12,//F/-e/d/|48,c//|12,G/fG
48,A12,d///|48,-E12,//F/-e/d/|48,c//
|12,////48,//|12,A/gAC/D/c/a/|f/d/c/
D/F/G/|48,A//|///|c/D|F12,//G/48,A|g
12,//Agf/e/|48,F//|0,^
]
"velact" [% set ACT to receive
% joystick value and put on velocity
% only if gate is on
30 ACT(
5 FVAR #? % get gate voice
6 FVAR #? % get gate value
AND % voice number if ON gate
VOICE % OFF if OFF GATE/no gate
1 joyval =L % set new velocity value
ACT )ACT
]
% joystick value and put on velocity
% only if gate is on
30 ACT(
5 FVAR #? % get gate voice
6 FVAR #? % get gate value
AND % voice number if ON gate
VOICE % OFF if OFF GATE/no gate
1 joyval =L % set new velocity value
ACT )ACT
]
Published in AMPLINEX 006, July 1988
Collection of short utilities
Included on this disc are four short utilities to help you
manage your AMPLE programs and Studio 5000 modules. The instructions for each
of the utilities are given below.
'Saver' utility
David Westbrook
This little utility is designed to take the effort out of
regularly saving your current masterpiece to disc. If you have a machine as old
and cranky as mine, or even if you don't, it's a wise precaution to save your programs
regularly during development. However, I'm always nervous about overwriting
previous versions, so I tend to use version numbers: 'master1', 'master2' etc.
What the 'Saver' utility does is to automate this process.
The program consists of 3 words ('initsv', 'sv' and
'vernum') and is in *EXEC format so that it can be added to any program. Having
got it into a program, the first thing to do is get 'sv' into Notepad and edit
the program name (currently shown as 'NEWONE') to whatever you want to call your
program. The length of program name must be limited to 6 characters (leaving 1
character for a version number). Having done that, save the program. Your name
will now be stored.
From now on you need to start each working session by typing
'initsv' at the command line. You will be asked for the first version number
you want to use (if you already have some version numbers on disc, then you may
not want to start again at 0). Enter a number (single digit if you've used 6 characters
for the program name) and the program reminds you what the starting number will
be.
Now whenever you want to save the program just type 'sv' at
the command line. The current program will automatically be saved under the
name you've given it, suffixed by a number which is increased by one for each save
you make in a session. At the end of a session you've got all the versions
saved in order and can tidy up by deleting any you don't want to keep.
Related files on this disc:
U.Saver - David Westbrook's version save utility (*EXEC
into programs)
'Wipe' utility
Quentin Frazer
This utility provides a quick and easy way to get rid of
those redundant words which often remain once a program has been developed -
for example those instruments that were tried but not, in the end, used.
The utility should be *EXECed into your program - and it
will then run automatically. It will display all the words in your program and
then prompt you for a word to be deleted. Enter any word (no quote characters
are necessary) and it will try to delete it before starting again.
If the word to be deleted is still referred to in another
word the error
! In use
will be displayed and the utility will finish. Similarly, if
you enter a word name which does not exist the error
!No such word
will be displayed and the program will stop. Pressing Escape
will also stop the utility.
Related files on this disc:
U.Wipe - Quentin Frazer's word deletion utility (*EXEC
into programs)
'Save' utility
Kevin Doyle
This utility was written after I accidentally deleted a
music program by selecting 'SAVE' instead of 'LOAD' from the Studio 5000 Main
Menu. It temporarily re-defines the AMPLE Nucleus word 'SAVE' and performs an OSFILE
call to check whether the filename to be saved already exists. If it does, a
warning message is displayed and you are asked to confirm that you wish to
overwrite this file. Pressing 'Y' (or 'y') overwrites the file; any other key
aborts the SAVE process.
This utility is designed to be *EXECed into existing
programs and works equally well from the command line or the Main menu. It also
complements David Westbrook's 'Saver' utility by providing a failsafe against a
wrongly selected version number
Related files on this disc:
U.Save - Kevin Doyle's program save check utility (*EXEC
into programs)
'Init' utility
Quentin Frazer
'Init' is an AMPLE program. It provides a menu allowing you
to install any modules you might require in addition to the defaults on your system.
Installed modules do, of course, take up space, but the
advantages of not having to load from disk usually make it worthwhile,
especially if you have shadow RAM. INSTALLed modules also take less memory than
MLOADed ones.
To use init type:
"init" LOAD RUN
or better still, add it to your Studio 5000/4000 !BOOT file
(this must be after "MENU" INSTALL).
Related files on this disc:
U.Init - Quentin Frazer's module installation utility
Note: BBC Model B users without Shadow RAM may find that
trying this utility direct from the AMPLINEX menu and installing modules may
not leave enough memory to re-load AMPLINEX via the '?' command.
Published in AMPLINEX 006, July 1988
Hints and tips
Our Hints and Tips section starts with a collection of
programming tips from Hybrid Technology Ltd.
Naming of words
It is important to name words clearly, in particular making
it clear whether a word is an instrument, score etc. Each character in an AMPLE
word name uses only one byte of program space however many times it is used, so
long names take up very little memory space.
Offsetting channels
Where two channels are used together, especially with
similar waveforms and envelopes, a better sound can result from putting a
slight OFFSET (e.g. 200) on one of them. Without this, you can get slight
apparently-random changes of tone from note to note.
Ties in chords
A bracketed group of ties, for example (///), has absolutely
no effect on the music, and should be left out. A single / is sufficient to
extend a chord, e.g.
C(EG)/D(FA)/
The explanation for this is that each note automatically
plays until the next note or rest on the same voice; so if nothing appears in a
chord for a particular voice, it is, in effect, tied anyway.
Odd numbers of channels
Channels can only be assigned in pairs, and attempting to
assign an odd number will give the next highest even number, e.g.
3CHANS
gives 4 channels. To avoid confusion, do not attempt to
select an odd number.
Checking for extra numbers
To make sure there is not an unused (extra) number in a
word, execute it at the keyboard. If there is a number left unused when it
finishes, the 'Extra number' error will be given.
Making common note sequence words
Where a score is largely made up of a few fixed phrases, you
can improve the clarity of the program by defining the sequences as words, from
which the score is then built. A good example is a 12-bar bass-line:
"bass" [SCORE 12,
bassC bassC bassC bassC
bassG bassG bassC bassC
bassG bassF bassC bassend
]
bassC bassC bassC bassC
bassG bassG bassC bassC
bassG bassF bassC bassend
]
Transposing Music
by Roger Cawkwell
AMPLE has several useful ways of transposing music - it's a
pity they can't be used outside the computer! When faced with some fearsome
chords in a key like Db or B it can be very hard work just to figure out what's
going on.
Obviously the best solution would be a thorough course in
the language of music so that the student could freely transpose from/to any
key (though this would probably take away the problem of 'difficult' keys anyway).
Short of that may I offer some suggestions (an algorithm, if
you like) to more-or-less mechanically transpose from any key into C.
1) Know what key you're transposing from; any 'Rudiments of
Music' book (and some manuscript books) will have a list of key signatures.
(E.g. The key signature is 4 flats which is Ab major)
2) Work out on which line or space the 'tonic' (key note)
lies.
(E.g. Ab is the second space up in the treble clef)
3) Decide whether you're going to transpose up or down to C
and by how many steps.
(E.g. In our imaginary piece most of the notes lie below the
Ab so we decide to transpose up two steps to C on the third space)
4) Quite mechanically rewrite the music up (or down) the
required number of steps. If there are accidentals (sharps, flats or naturals
not in the key signature) you must figure out what they're doing to the pitch
of the notes; a sharp makes a note higher, a flat makes it lower and a natural
may do either. Raise or lower the transposed note in C with a sharp or flat.
(E.g. You come across a D natural at the bottom of the
stave. As the key signature has D flat the natural is raising the note. So the
new note F (two steps higher) is made into F sharp.
5) Chord symbols may be transposed in much the same way.
(E.g. Bbmin7 goes up two spaces and becomes Dmin7)
Simple (I hope) though these instructions may seem, they
should see you through.
'EVERY;' (and Quick entry chords)
Ken Hughes
Using EVERY; you can re-strike all the notes of a chord with
the word X. One use of this would be in playing accompaniment chord patterns.
For example the following bar, scored in the normal way
G(CE) G(CE) G(CE) G(CE)
would become, using EVERY;,
G(CE) EVERY; XXX
This can be used to simplify the scoring of chord patterns
and can also be used with the Quick entry chords utility in AMPLINEX 005 in the
following way:
Make a word, for example
"p" [ EVERY;XXX ]
Then to play two bars each of C, F and G major chords
cMp cMp fMp fMp gMp gMp ^;
can be entered in Notepad. This will work for all patterns
that start on the first beat of the bar.
For those that start after the first beat such as:
^ G(CE) ^ G(CE)
the rest must be entered first and each succeeding cMp etc.
overlapped into the next bar. For example the six above bars would be scored
as:
^ cMp cMp fMp fMp gMp gMp ^;
and the "p" word would be
"p" [ EVERY;^X^ ]
Remember that if you change to a different pattern in your
music you should not use the "p" word in the bar before the change,
as you would overlap into the first bar of the new pattern. This of course
would not apply if your new pattern also started with a rest.
Harmonics
Tim Sketchley
The Studio 5000 uses 14 pre-defined waveforms which I think
are very good for general purpose usage, but of course they are limited. I would
like to share some clever tricks for getting a little more out of the waveforms.
What we will do is use channel one to play the main sound
and channel two to add an extra harmonic.
Let's start with this instrument definition:
"harmins" [2 CHANS
1 CHAN
Round Flat Onoff
2 CHAN
Pure Flat Onoff
192 SHIFT 120 AMP
EVERY CHAN]
1 CHAN
Round Flat Onoff
2 CHAN
Pure Flat Onoff
192 SHIFT 120 AMP
EVERY CHAN]
This plays the Round waveform using channel one, plus a
strong second harmonic through channel two. You can vary the strength of this
second harmonic by adjusting the channel two AMP setting.
The basis of this technique is the fact that the Pure
waveform consists of a fundamental and some odd harmonics which are so weak
that we can ignore them.
It is the 192 SHIFT in this definition which defines the
second harmonic. Other SHIFT values can be used for different harmonics:
Harmonic SHIFT
1 0
2 192
3 304
4 384
5 446
6 496
7 539
8 576
9 609
10 638
11 664
12 688
13 710
14 731
15 750
16 768
1 0
2 192
3 304
4 384
5 446
6 496
7 539
8 576
9 609
10 638
11 664
12 688
13 710
14 731
15 750
16 768
This table is made using the formula SHIFT = 192 *
LOG(Harmonic)/LOG(2).
As another example, the Hard waveform (according to the
graph on page 127 of the User Guide) uses only the first 8 harmonics. We can
now add the 12th harmonic:
"hard+12" [2 CHANS
1 CHAN
Hard Flat Onoff
2 CHAN
Pure Flat Onoff
688 SHIFT 110 AMP
EVERY CHAN]
1 CHAN
Hard Flat Onoff
2 CHAN
Pure Flat Onoff
688 SHIFT 110 AMP
EVERY CHAN]
As you may have noticed, the AMP setting determines the
amplitude or strength of the harmonic.
Of course, it is possible to use a waveform other than Pure
on channel two. Here you can experiment to find the different sounds you can
get.
For example, the High waveform consists of the 13th and 15th
harmonics. By using 20 SHIFT it produces the 14th and 16th harmonics instead,
and using -20 SHIFT gives the 12th and 14th.
A sound I particularly like is that produced using Bright
with 192 SHIFT:
"brightins" [2 CHANS
1 CHAN
Round Flat Onoff
2 CHAN
Bright Flat Onoff
192 SHIFT 120 AMP
EVERY CHAN]
1 CHAN
Round Flat Onoff
2 CHAN
Bright Flat Onoff
192 SHIFT 120 AMP
EVERY CHAN]
What happens here is that the Bright waveform covers the
first eight harmonics only, but then using 192 SHIFT doubles the frequency of
all of them, and so the result is the even-numbered harmonics 2, 4, 6, 8, 10,
12, 14, 16.
These ideas should bring you a stage closer to getting the
harmonics you want, but they are of course no substitute for genuine waveform design,
for which you'd have to get the Waveform Designer reviewed in AMPLINEX
004, which I think I'll get as soon as I can afford it!
AMPLINEX 80-column print utility
Roy Follett
Those members who find Jim Ryan's splendid 80-column
printer utility (AMPLINEX 005) as useful as I do might find the following
modification to his program useful.
I wanted a left margin to enable me to punch holes so they
would go into a ring binder and changed his program using the following steps:
LOAD "U.print80"
LIST 1210,1250
LIST 1210,1250
1231 VDU1,27,1,77 REM Elite typeface
1232 VDU1,27,1,108,1,10 REM Left margin
1233 VDU1,27,1,81,1,90 REM Right margin
1232 VDU1,27,1,108,1,10 REM Left margin
1233 VDU1,27,1,81,1,90 REM Right margin
SAVE "PRINT80"
This modification is for Epson compatible printers.
Published in AMPLINEX 006, July 1988
Opus Challenger
In the Questions and Answers section of AMPLINEX 005 Bob
Cornford-Wood outlined the problems he had with his Opus Challenger disc system
and asked 'have any AMPLINEX members had similar problems with the Challenger
and solved them? I know that Slogger have taken over support from Opus, but
it's not really their problem. Any helpful comments gratefully received.'
It seems that several members have experienced similar
difficulties and we hope that their comments and suggestions may help to resolve
this issue.
From G H Richardson:
In response to Bob Cornford-Wood's appeal for help on the
Challenger disc drive I sent him (via AMPLINEX) a copy of correspondence I had
in 1986/7 which resulted in a full refund of the purchase price. For other
AMPLINEX members here is a potted version of events:
I had a BBC Model B and Music 500 and the Challenger looked
a very good buy at £300, particularly since they said there were no
compatibility problems.
11 May 86: Letter to Opus that the unit worked very well
with one exception - the purpose for which I had bought it - the Music 500;
that it reluctantly loaded the Music 500 disc after 1-5 efforts; that it would
not save programs to disc; that the BBC 'hung up'; and that discs were corrupted.
I asked them what could be done about it.
16 May 86: Reply from Opus that at present the Challenger
was incompatible with the Music 500 but they were trying to solve it and would let
me know if they did.
10 June 86: Letter to Hybrid Technology detailing problem.
12 June 86: Reply from Chris Jordan (Hybrid Technology) that
the Music 500 and Challenger were completely incompatible. He enclosed correspondence
he had had with Opus in which he said 'Challenger does not recognise the Acorn
protocol...I consider its design to be at fault in a fashion that is foolish
and irresponsible...and I see no solution with the current design'.
1 Oct 86: Letter to Opus setting out all foregoing story and
stating that having spent £300 I did not intend to be saddled with a unit which
did not do what it was alleged to do and drawing attention to the Sale of Goods
Act and the Trade Descriptions Act; that in an endeavour to resolve the matter
there were some options available; they could return my £300 and have the unit
back; or since the Challenger was useful in other spheres I could retain it for
general use and pay £75 for one of their single disc drives with interface
costing £150 on the assumption that this set-up would work. I asked them to
consider the matter and let me know.
27 Oct 86: Letter to Opus that I wrote to them on the 1 Oct
and now three weeks later I was still waiting to hear from them.
21 Nov 86: Letter to Opus referring to my previous letters,
neither of which had produced any response; that I had thought that Opus was a
reputable organisation which had the interests of its customers at heart; that
that impression was clearly erroneous; that it was absolutely disgraceful that
a company such as theirs which relied heavily on mail order customers should seek
to avoid its obligations by hiding behind silence and geographical distance.
I then set out the steps I proposed to take:
First - to send a copy of this 'one way' correspondence to
the BBC's 'Watchdog' programme.
Second - to send a similar copy to the Office of Fair
Trading for action by them.
Third - to send copies to all the periodicals in which they
advertised.
Fourth - if none of these produced a satisfactory result -
to issue a Writ for misrepresentation and substantial failure of consideration.
I stated that I would delay taking these steps in the hope
that they came to their senses, and that I was sending a copy of the letter to
their Chairman/Managing Director.
24 Nov 86: Ian Hirst (Technical Manager, Opus) rang me; he
apologized; agreed I had been misled; I could either have my money back or the
other option mentioned. He said my original letter of 1 Oct had been mislaid
but it had been replied to but they couldn't find a copy of the reply either.
He asked me to send a copy of my letter.
24 Nov 86: Sent Opus a copy of my letters of 1 Oct and 27
Oct. I also suggested another option that since the price of Challenger was now
£200 I keep it and they refund £100 to enable me to sort out my other disc
problem - all on the understanding that the new combined system (Challenger and
another disc unit) would operate on the BBC Master 128 which I was about to
acquire.
3 Dec 86: Telephone conversation with Hirst of Opus. Said he
had not received the copy letters sent on 24 Nov and asked me to read out the relevant
parts of my letter of 1 Oct. This I did and included the further option
mentioned above. He thought this last option made sense and agreed that I keep
Challenger and they refund £100. I reiterated that the new combined system must
work on my new Master 128 - no problem he said.
5 Dec 86: Cheque for £100 refund received from Opus.
11 Dec 86: Purchased Master 128 and Watford disc drive. For
the next three weeks I tried to make Challenger work with the Master without
success. I contacted Beebug and they said the Challenger was incompatible with
the Master and never would work with it.
5 Jan 87: Letter to Opus returning Challenger in disgust;
that I had again been misled by their assurance that it would work with the
Master when expert advice said it wouldn't; that despite the 'settlement'
agreed last month I now had a unit which was completely useless to me due to
their misrepresentations and that I wished them to refund to me the balance of the
£300 paid by me.
19 Jan 87: Letter from Hirst of Opus dated the 7 Jan arrived
together with cheque for £200 but reiterating that Challenger was not
incompatible with the Master.
20 Feb 87: Letter to Opus to thank them for sticking to
their promise to refund all the money and also to challenge their assertion
that the Challenger was compatible. I stated that I had again spoken to Beebug
and read them Opus' letter; that Beebug said they could not understand how Opus
could say this as it was definitely incompatible and could not be made to work
with the Master; that there was something wrong when two expert authorities
were in such direct conflict - they could not both be right; that in their own
interest they should clarify the matter for the sake of customers who had to
rely upon their statements.
From Scott Mackie:
If my memory serves me correctly the Challenger plugs into
the 1MHz bus. If this is true, then I'm afraid that there's no chance of the
Challenger working with AMPLE. This also holds true for the PMS Ramdisc system,
and any other system that uses &FCFF and page &FD to access I/O memory.
The problem lies in the fact that both the Music 500(0) hardware, and the
memory for the Ramdisc system need to access the same area of memory, i.e. Fred
and Jim in the I/O workspace.
Since the 500(0) hardware is write only, the Ramdisc can be
read without a data clash. However, when AMPLE writes the waveform information
into the Music 500(0) hardware, the Ramdisc also gets the information and is corrupted.
This corruption of data will cause extreme hassle!
This problem is a symptom of Acorn's lack of foresight over
the 1MHz bus. When the original specification was drawn up, the 64K of paged
ram that could be interfaced into page &FD was expected to be claimed by
only ONE add-on. Thus, no protocol, or token system, was developed to indicate what
code was master of the bus at any one time. Therefore, we have the problem that
any code written to access page &FD has to just assume that it is the only
code accessing the bus. The chaos this creates is unbelievable!
By using a latch address in page &FC, this problem could
be overcome, but as no one has thought to include it yet, I doubt if this
problem will ever be resolved. A real shame, as AMPLE booting from a Ramdisc
would be very useful.
So if the Challenger does use page &FD, as I suspect it
does, then there's really no chance of getting Opus to help any further, as it involves
hardware and software changes on their part.
From Michael Harbour:
I had the same problem with the Opus Challenger about six
months ago. I was interested in using the Music 500(0) but my Opus Challenger
stopped me. In the end I decided to buy another, cheaper, BBC computer and disc
drive. The problem was solved, although it was a little expensive.
I don't think it’s worth pursuing Opus. I think it could be
some time before the problem is solved (I'm not sure if Opus are doing anything
about it). They gave me the impression that they were in no hurry to rectify
the incompatibility.
As I see it there are two options:
1) Wait for the AMPLE/Challenger clash to be solved. This
could take rather a long time!
2) Buy a cheaper disc drive. I use the Watford CLS400 which
is perfect for AMPLE file storage.
From Mike Sandbach:
In answer to Bob Cornford-Wood, I have been talking to
Slogger about the problems with the Opus Challenger. They are about to produce
a hardware and software modification which should make the Challenger behave
'legally' with all other peripherals which use the 1MHz bus, including the
Music 500(0). I last spoke to Slogger on May 23rd, and was told this
modification was 'imminent'.
Editor's note:
We have had some response after the request in AMPLINEX 005
for information about ROMs which are incompatible with AMPLE. One member, Richard
Bettis, has sent us a list of ROMs which DO work with AMPLE, and on reflection
this seems like a good idea.
We intend to publish a summary of this information in the
next issue, so please send details of ROMs which do or do not work with AMPLE
in your machine in time for the submissions deadline (see 'Next issue news' in
the Introduction section). Please give details of your computer (BBC B, Master
etc.) and the ROM name and version number (if applicable).
Published in AMPLINEX 006, July 1988
An introduction to the MIDI interface
Scott Mackie
This is the first of two articles which aim to outline the
basic ideas behind MIDI and its computer interface. These ideas will then be applied
to a MIDI interface for AMPLE, allowing the Music 500(0) to run as a performance-oriented
MIDI expander.
I appreciate that this technically-based project may not be of
interest to every AMPLINEX member but it should at least provoke some discussion
on interfacing AMPLE to the outside world.
MIDI - A General Introduction
To start with, I apologize to anyone who is familiar with
MIDI and its uses if they find the following paragraphs a bit elementary (read
on though!).
The Musical Instrument Digital Interface, to give it its
full title, began life, officially, around 1983. The standard has become
widespread and is universally accepted as THE means by which musical
information can be transmitted between synthesisers.
The MIDI interface is serial, much like the RS232; however,
it runs at a rate of 31.25 Kbaud. This speed allows data to be transferred
without disrupting simultaneous musical events. Because this rate is at least three
times faster than the maximum possible serial rate from the BBC microcomputer
an external interface must be used.
The data transferred consists of a series of bytes
(generally three for common applications): an ID byte followed by two bytes of
data. This allows MIDI to accommodate new commands as and when they are needed,
and should prolong its working life.
A MIDI interface for the BBC micro
A MIDI interface is usually connected to the 1MHz bus on the
BBC micro as it requires the system clock and address lines, in addition to the
data bus, to function. When I first set out to build an interface, I studied
all the designs in the electronics magazines and was shocked at their
simplicity!
All of the data handling is carried out by just one serial
chip, so with the addition of some address decoding, clock generation for the
data rate and an opto-isolator, a complete MIDI interface can be constructed.
To describe an interface design would be difficult using the
text format of AMPLINEX, so instead I will list some of the published interface
projects and then describe the possible problems along with my own comments on MIDI
interface design.
All the interfaces here are based around the 6850 UART chip.
This is widely available and is extremely easy to program and use. The
interfaces are:
1. The ETI MIDI interface (Electronics Today International,
April 1987): This is the interface I use. It has two 6850s to enable dual
inputs and outputs and because of this is slightly more complex. It can, however,
be run with just one port by omitting the second 6850 and opto-isolator - I do
this, since I don't require the additional input and output right now.
This design does have a PCB available, which is an
advantage, but it requires careful soldering due to a slightly sloppy board
design. However, it does work reliably once constructed. The article on the
project is a bit scrappy, and some other reference work would have to be
consulted about the basics of MIDI operation.
2. The Maplin MIDI Interface (March/May 87): This project
was designed as a general interface to Commodore computers and doesn't have a PCB
available. It is, however, a very simple interface and appears easy to construct,
even if Veroboard is used.
Because it uses the Commodore interface port, some
additional address decoding must be used to allow interfacing to the 1MHz bus.
Most hardened BBC micro home constructors could build this project, but some experience
is required as a board has to be designed.
One small point about this design is that no mention is made
of ANY interrupt interfacing, and a connection will have to be made from the
IRQ output of the 6850 to one of the interrupt lines on the 1MHz bus (see my
notes later about this). The article covering the interface is very clear and
concise and is a reasonably useful basic guide to MIDI.
3. The E&MM interface (Electronics and Music Maker,
June/July 1984): A rather ancient design this, but I'm told it works by
colleagues who've built it. A very basic 6850 design, but very serviceable. One
problem with this is that the back issues of the magazine have sold out, but I
believe that photocopies are available for a small sum.
4. Making Music (Issues 1 and 2): Again, I'm not too
familiar with this interface, but it appears to be standard. The only problem
is that Making Music have sold out of these issues, but a letter to them may elicit
a response. The designer was Andy Honeybone, so requests may be directed to
him.
All of these interfaces use a similar design, the only
difference being the addresses they're mapped on to in the 1MHz bus workspace.
The interface I use cost around £30 to build and get
working, which is obviously a bit less than the £160 for Hybrid Technology's
Music 2000 unit. Admittedly, they supply module code and three MIDI outs, but
the price seems to me to be slightly excessive. I'm not sure what design Hybrid
Technology use, although I'm almost certain it's based on 6850s.
A couple of design points need to be raised at this point
about building a MIDI interface. These are:
1) Use a good quality opto-isolator. The isolator is
required because MIDI is based on a 5mA current loop system, and as such the
interface must be isolated from the data to prevent any current loss in the
loop. The current loop principle allows many separate earth instruments to be
connected without setting up earth-loops, i.e. conducting paths which act
rather like a radio antenna except that they pick up mains hum.
A poor quality opto-isolator will prevent weak MIDI signals
from being registered or may even be too slow (remember that it has to run at
31.25 Kbaud). The difference between a cheap opto-isolator and a good one is
only a matter of a pound, so it's really a fool's economy to buy a cheap one.
The opto-isolator I recommend, and use, is the 6N139. This is very fast, with good
sensitivity and compatibility. Its cheaper partner, the 6N138 is slightly
slower, but is still very good.
2) Make sure the interface is mapped on to page &FC in
the 1MHz bus workspace. The Music 500(0) synthesiser hardware maps on to
&FD30 to &FD3F and so these addresses must be left alone, along with
&FCFF, which is the paging register for them. I page my board into
&FCF0 and &FCF1 which is where the ETI design puts them.
3) Most designs connect the interrupt pinout on the 6850 to
the IRQ input on the 1MHz bus. This means that a normal interrupt occurs when a
data byte arrives at the 6850, in order to signal its presence. I tried this method
to start with and spent three frustrating weeks trying to get the BBC to read
the port reliably, without dropping bytes from the input stream. The problem
was that the IRQ interrupt is vectored and takes a while to reach the IRQ2
vector and this causes a delay problem with the 6850.
Intercepting the higher priority IRQ1 vector proved to be
slightly better but still not ideal. By chance, I noticed that Andy Honeybone
in his Making Music articles used the NMI line on the 1MHz bus. I tried this and
the interface has worked reliably ever since. This has the major advantage with
AMPLE of not interfering with the extensive Hybrid interrupt routines which
also claim IRQ1.
There are problems with this method though and these need to
be pointed out. The NMI (or Non-Maskable Interrupt) line is normally used to allow
filing systems to generate fast interrupts as the 6502 cannot ignore their
action (hence the Non-Maskable title).
As the disc system, which is the main user, is not generally
used while playing music, the MIDI interface can use the NMI interrupt for
itself. When an NMI occurs, the 6502 jumps to &D00 and executes the code
there.
Normally the disc system has its service code there, but if
the MIDI service code is placed there, it will be executed on an NMI generated
by the 6850.
This has great advantages in terms of speed, but does mean
that the user has to be careful when accessing discs to ensure that no keys on
the master keyboard are pressed while the 6850 IRQ is enabled or,
alternatively, that the 6850 has it's interrupt enable flag cleared (I clear
the interrupt enable flag before returning to AMPLE so the code next time is
safe if used as it stands).
Most of the designs above require a small change to the PCB
in order to get the interrupt connected to the NMI line. Just cut the track on
the interface going to pin 8 of the 1MHz bus and connect it instead to pin 6 (i.e.
just move it one pin to the closest end). A switch can be used if the user
still wants to use the original setup.
This project may seem a bit daunting, but with some
patience, a working interface can be constructed. However, I would recommend
that the constructor has some kit-building and electronics knowledge as the
interface involves quite a bit of delicate soldering; not the sort of project
to learn on! All of the articles have information on the operation of the
interface and I leave it to them to illustrate their own designs.
In view of the modifications to these designs that I have
suggested I have drafted an example interface for the BBC micro that will run
without ANY modifications having to be made to it. This will be available via
AMPLINEX (see below for details).
If any AMPLINEX members have queries regarding this article
then they should send their questions via AMPLINEX, or write to me at the address
given below.
In the next issue of AMPLINEX, I'll supply, and document,
the necessary code to enable the Music 500(0) to run as a MIDI expander and put
many synthesisers currently available to shame! AMPLINEX members should note that
this software only supports the MIDI In port, NOT the MIDI Out; i.e. it
performs the exact opposite of the current Music 2000 software.
Some useful addresses:
Electronics Today International 1 Golden Square LONDON W1R
3AB
Maplin Electronic Supplies PO Box 3 Rayleigh ESSEX SS6 8LR
Making Music 40 Bowling Green Lane LONDON EC1R 0NE
Music Technology (formerly E&MM) Alexander House 1
Milton Road CAMBRIDGE CB4 1UY
and finally my own address:
Scott Mackie 48 Milford East Kilbride GLASGOW G75 9BU
A copy of Scott Mackie's MIDI interface design can be
obtained by sending a stamped, self-addressed envelope to:
AMPLINEX, 26 Arbor Lane, Winnersh, Berks. RG11 5JD.
Important note: We must stress that this design has not been
tested by AMPLINEX and we would emphasize that it is not suitable for beginners
to electronics assembly.
Published in AMPLINEX 006, July 1988
Questions and answers
Answer: Acoustic instruments
In reply to Jeff Parton's query in AMPLINEX 005, one of the
better series on this topic I've read in the last six months appeared in Music Technology
magazine (August to October 1987). The series covered synthesising acoustic
guitar, clarinet and the snare drum. Admittedly, the actual patches supplied
were for FM, phase distortion and analogue synthesisers, but the material makes
interesting reading.
As for other sources of information, your local university
library may be able to help. I know the one I use (the Andersonian at
Strathclyde University) has some books on the physics of music which include harmonic
spectra.
However, using the current waveforms supplied with the
Hybrid Music System, your chances of simulating the instruments realistically
are slim, but with some perseverance you should get some reasonable results.
Your other alternative, I suppose, is SoundSculptures'
Waveform Designer. Have any AMPLINEX members bought this product? A user report
please!
Scott Mackie
Answer: Acoustic instruments
I know of two books containing the harmonic spectra of
instruments. These are:
Music Physics and Engineering by Harry F Olson
and
Psychology of Music by Carl E Seashore
Both are published by Dover Books and the original editions
were quite old - 1952 and 1938 respectively.
I sent to America for my copies but they are available in
the UK from two sources:
IMP, Woodford Trading Estate, Southend Road, Woodford Green,
Essex. IG8 8HN
Telephone 01 551 6131
Telephone 01 551 6131
The 1987 catalogue lists the prices as Olson £7.95 and
Seashore £6.95.
Music Sales Ltd., Newmarket Road, Bury St. Edmunds, Suffolk.
IP33 3YB
Telephone 0284 702600
Their catalogue lists the prices as Olson £5.50 and Seashore
£4.95 but you should check these too.
The spectrum plots are just a part of the books and someone
may well know of another source. One worth checking out - I haven't seen it yet
- is
A Synthesist's Guide to Acoustic Instruments by Howard
Massey
£14.95 from Music Sales.
Ian Waugh
Question: Grace notes in Staff
Is there any way of putting grace notes into music, via the
Staff editor (I nearly always work in this module)?
If not, do I have to add them afterwards in Notepad, and if
so, how?
Diccon Maude
Question: Music 2000 Power Supply
I intend to purchase the Music 2000 MIDI interface and I
understand that this unit takes it power from the computer. As I have a fully
loaded BBC Model B (disc drive/ROM board etc.) I would like to know what
voltages and what current this unit requires so that I can buy or build a
suitable power supply.
Les Pearce
The Music 2000 MIDI interface consumes 5V at 100mA. This is
such a small amount, it would be better to make a power supply for your disc
drives if you think your computer's power supply is close to its limits.
Answer: The 'Syncer' waveform
Regarding Jeff Parton's question about the 'Syncer' waveform
(AMPLINEX 005):
The 'Syncer' waveform doesn't have a harmonic spectrum
because all of its harmonics have a zero volume. Its main use is in modulating
other waveforms using synchronization (SYNC - see the Music 5000 User Guide
pages 69-70).
The 'Syncer' waveform is placed on the EVEN channel and
resets the phase of the ODD channel's waveform each time its own phase passes
through zero or the EVEN channel's auxiliary output signal, (sign version of
the waveshape, +/-), is negative.
With 'Syncer' on the synchronizing (EVEN) channel the ODD
waveform is reset only when the EVEN channel's phase passes zero (effectively
after one waveform cycle). By varying the frequency of the modulated channel
the point where 'Syncer' restarts the modulated waveform varies dynamically, giving
tone changes.
Using waveforms other than 'Syncer' on the modulating (EVEN)
channel gives more complex and unpredictable results.
Mark A J Mulders
Question: Broken chords in Staff
Broken chords can be written and will play okay in Notepad
yet the '! Bad bar' error appears when playing from the Staff. I am a little
confused. Doesn't music entered in the Notepad automatically become written in
the Staff also?
Andy Knight
Answer: AMPLE DCT 'split' utility
In reply to Robin Johnson's problem with the Music 4000
'split' utility (AMPLINEX 005), I too could not get it to work - until I read
the AMPLINEX feature on the ACT command! This made it obvious that the closing
)ACT was missing.
The error lies in the word "split". After
IF(ACT)IF
and before
0 spitch #!
you should insert )ACT. It then works as described.
Bernie Dawson
Answer: Tuning systems in AMPLE
Further to Bob Cornford-Wood's question in AMPLINEX 005:
Alternative tunings are fascinating and I'd be very
interested in any work done in this area on the Music 5000 although I suspect a
resolution of 192 is not enough for some applications. Quite a few of the new
synthesisers have alternate tuning facilities, e.g. the TX81Z - I'm just
waiting for someone to write some music for them.
Another area of potential exploration is Micro Tuning - the
division of the octave into more (or less) than 12 tones. An American called
Easley Blackwood did this the hard way - with a traditional keyboard and old synthesisers
- and produced a record of pieces he'd composed by dividing the octave into 13
to 24 intervals. All this in 1980!
The record was produced by himself as far as I can tell
although it bears the number E639. The only available source I know is Easley
Blackwood himself and the last address I have on him (from 1982) is
The University of Chicago, The Department of Music, 5845
South Ellis Avenue, Chicago, Illinois 60637, USA.
The price then was $12.
Ian Waugh
The Utilities section of this issue of AMPLINEX contains a
program which allows Just Temperament to be used.
Question: Staff editor corruption
After using AMPLINEX, if I want to go back to MAIN, I select
'Exit from AMPLINEX', and when the menu appears, select 'New Program'. If I
then want to enter the Staff editor, I select this.
When Staff editor is loaded, almost every symbol is
corrupted - the bar line comes out as a 'squiggly line', the treble clef is a
mixture of the accidentals and the different note lengths, and the time
signatures contain the symbols for triplets(3), duplets(2), and accidentals.
What has happened? I have to press Ctrl-Break or turn the
computer off, and load the System disk again. Has anyone else had these
problems? It may, of course be the other ROMs in the computer.
Diccon Maude
I have been unable to reproduce the effect you describe. The
AMPLINEX control program (A.MPLINEX) is written entirely in AMPLE and should
cause no problems. The 'Exit from AMPLINEX' option performs a 'NEW' command and
should leave the system as it found it.
I would therefore suspect some other cause - perhaps those
ROMs you mention.
Question: Pitch glide via ACT
Since reading about the ACT command I have been wondering if
it is possible to use this to get pitch glides from note to note whilst playing
the Music 4000 keyboard (as opposed to programming in such effects using Slide).
Presumably this would mean keeping track of the previous
note, comparing it with the new one, working out the difference and using ACT
to glide to the new note, all the time checking to see if another new note has
been struck! That's all very well in theory, as they say, but I don't know how
to program it even if it is possible.
Bernie Dawson
Question: Booting the Music 4000
My Music 4000 disc is marked 40/80 track yet I can only get
it to boot with my disc drive switched to 40-track. This is annoying because my
AMPLINEX disc is 80-track and only having a single disc drive I am constantly
readjusting the 40/80 track switch. I there something I can do or do I have to
fork out for dual drive?
Andy Knight
Question: The RUN command
I have written some pieces on the Music 4000/5000 system,
and saved them, but I cannot get them to run with the RUN command. Perhaps, as
it is the name of the piece it should have a certain format? Any answers?
Peter Gray
Every music program should have a word called 'RUN' which
contains at least the
"1..." PLAY
command to start the music. This is the word which is used
by the 'RUN' option on the Main menu. Looking at your music contributions, you
seem to be using the title of the piece instead of the word 'RUN' and this is why
you can't use menu option. Look at pages 77-78 of the Music 5000 User Guide for
more details.
Editor's note:
Due to the large response to the question in AMPLINEX 005 by
Bob Cornford-Wood about the Opus Challenger disc system, there is a separate
article in the Features section of this issue.
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 006, July 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.
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’s 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) is included
in this issue's Hints and Tips section.
Published in AMPLINEX 006, July 1988
Next issue news
The next issue of AMPLINEX is planned for release in
mid-September. This means that all applications for a FREE copy (i.e. those
containing contributions) must be received by SATURDAY AUGUST 13TH. Anyone
paying the £2.00 fee has until Friday 9th September to apply.
Already planned for the September issue is an index of the
first year of AMPLINEX (issues 001-006), a feature on ROM compatibility and a
AMPLE Nucleus help utility for Sideways RAM.
We already have some good original music waiting to be heard
and would particularly like to receive more examples of original instrument definitions
so that we can reinstate the Instruments section in the next issue.
So please continue what has so far been an excellent
response by providing your words or music to share with others in issue 007 of
AMPLINEX.
Published in AMPLINEX 006, July 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).
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. 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
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 006, July 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.
Feedback bug
Thanks to a note from Roger Cawkwell a bug in the Feedback
section of AMPLINEX has been identified:
'When using Feedback in COPY mode there is a bug in the
handling of DELETE - the wrong cursor moves back, deleting the text I'm copying
from!'
This has now been corrected and the delete function should
work as intended.
Contributing music to AMPLINEX
A note from Gideon Kay asks us to clarify whether music by
other composers is suitable for submission to AMPLINEX.
As with any publication we have to seek the permission of
the author(s) before publishing any piece of work (text, program or music).
This is the purpose of our 'next issue request form' which is sent out with
each issue of AMPLINEX.
Therefore, when AMPLINEX began we were unable to publish
music programs unless the contributor was the owner of all copyrights (i.e. the
composer of the music as well as the author of the program). We did, however,
start negotiations with MCPS (the Mechanical-Copyright Protection Society) to
allow us to publish music composed by others.
Since our agreement with MCPS we are able to publish in each
issue a limited number of music programs whose author is not the music
copyright owner. It is important to note, however, that this agreement does not
cover the publication of lyrics.
All this means that if you have written an AMPLE program of
someone else's music, then we are happy to receive this as a contribution to AMPLINEX.
You must ensure, however, that the composer of the music is clearly credited in
the program (preferably on the title page) and the 'request form' which you
must sign asks you to confirm that you have done this.
AMPLINEX and CEEFAX
AMPLINEX is currently in discussion with the BBC's CEEFAX
service with the aim of providing AMPLINEX-sponsored material for their
Telesoftware transmissions.
Our intention is to make a selection from past issues of
AMPLINEX and, with the agreement of the authors, make this available to CEEFAX
for broadcast during the autumn.
The BBC are currently drawing up a special licensing
agreement which would give them permission to broadcast a specific program for
a limited period, and this agreement will be passed, via AMPLINEX, to the authors
of the initial selection.
The first broadcasts are expected to consist of AMPLE music
and will probably be restricted to programs where the author is also the
composer of the music.
Our goal in this venture is to further publicize the
existence and aims of AMPLINEX and to give our members' work a wider audience
and we trust you will support us in this.
We will be contacting the authors of our first selection in
the next few weeks with more details of the arrangement, but we are keen to
have the benefit of the members' judgement.
To this end we would like to invite all members to let us
know (via a Feedback note) what they consider as 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
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. For the benefit of those without a
modem, we would also like your comments about the equipment needed and the
costs involved.
MIDI and beyond
Similarly, we would like to hear from members who have used
the Hybrid Music System with other MIDI devices (via the Music 2000 MIDI
interface) and/or other recording equipment.
We are interested in your experiences (successes and
problems) when connecting the Music 500(0) to the outside world. Have you found
the ideal musical complement to the Music 500(0)? What recording quality have you
been able to achieve? Equipment recommendations would be particularly welcome.
Finally, please continue to send us your ideas for improving
the workings or contents of AMPLINEX. For example, we have had a recent request
for a 'letters' section in AMPLINEX. Do you agree?
Also, please let us know if you spot an error or omission -
you may be the only one who has noticed.
Published in AMPLINEX 006, July 1988
Subscribe to:
Posts (Atom)