home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
STFORMAT
/
STF12.MSA
/
SIDE_B_COMPOSER_COMPOSER.DOC
< prev
next >
Wrap
Text File
|
1987-04-21
|
25KB
|
635 lines
COMPOSER 1.0
Runs okay on my 1 megabyte monochrome ST
About Composer
I got interested in MIDI and bought a second hand Casio CZ 101
mutli timbral synthesiser for about £150. The CZ 101 is an amazing
keyboard and it is astonishing that it is no longer made. It allows
you to play 4 different monophonic voices simultaneously or 1 voice
in 4 notes polyphonic.
After a recent addition of routines to play a MIDI drum machine I now
present Composer 1.0. The program is designed to make the production
of music on the ST simple and enjoyable. I have encluded a lot of
features to help the budding composer including;-
* Entry of notes from the St's keyboard and,
in real time, from the MIDI keyboard.❎¯
* Transposing
* Copying
* Outputs to MIDI, ST sound chip and triggered
drum machines
Composer 1.0 manual
The first step is to load the program.
double click on the COMPOSER.TOS icon
the program now asks if you wish to use the printer port to
trigger a drum machine. Type 'N' or 'n' in response at this
stage.
The main working screen is displayed. The word "DRUM" is highlighted
in the top left corner.
This indicates that the drum editing function is active. Pressing keys
F2 to F5 respectively will highlight the 4 tone bars. Key F6 highlights
the sequence function and key F7 highlights the song function.
Now press F8 - this displays the FILES MENU.
Music data is stored in 4 parts;-
1) The 16 beat drum bars (.DRM)
2) The 16 beat music bars (.TNE)
2) The sequences (.SEQ)
3) The song (.SNG)
4 files are used to give greater flexibility in composing as, for
example, a file of standard drum bars could be used for a number of
songs.
A fifth file is used to store the music data used to drive the ST's
sound chip. More about this later.
To load the demonstration files;-
Press '2' then type DEMO[RETURN] - loads the drum bars
then type DEMO[RETURN] - loads the music bars
Press '4' then type DEMO[RETURN] - loads the sequences
Press '6' then type DEMO[RETURN] - loads the song
Press '9' to return to the main working screen
The program automatically puts the correct file extensions on the file
names so do not enter them.
The music data will now appear in the working screen. I will explain
this data a little;-
Drum bar - a '#' character indicates a beat
a ' ' (SPACE) indicates no beat
a '@' indicates an open hi hat or heavy beat
(not used with the internal sound chip).
Tone bars - notes are represented as OCTAVE & NOTE for example 2A#
means OCTAVE 2 NOTE A sharp. The highest note available
is 6B and the lowest note is 1C. If you are using MIDI
the '~' character indicates a rest and a space indicates
a sustaining note. If you are using the internal sound
chip then both these characters indicate a rest.
Sequence - this consists of 5 columns of numbers, the first column
refers to the drum bar and the following 4 columns refer
to the tone bars. You can have up to 99 different bars
for each tone and the drum. The top row of numbers (the
highlighted bar) are MIDI instrument numbers and are
used to change the instrument sound being played through
the synth in the middle of a song.
Song - this is a column of numbers, the numbers refer to the
sequence and there are up to 99 available sequences. A
song can hold up to 99 sequence numbers which is ample,
usually songs will use about 10 to 15 sequences.
Before you go any further lets hear some music.
Press F7 - to make the song function active and then
press SHIFT F2 - a number appears and increases in the top left
corner of the screen, when it stops the music will
play through the ST's speaker.
Note: SHIFT F2 means press the F2 key while holding the SHIFT key
down.
OR if you have a MIDI keyboard then press F10 to display the parameters
menu.
Then press option 3 and type DEMO to laod in the DEMO.PF file this
will set the program up so that all the music tracks are played
through the same MIDI channel in this case channel 1.
Now press 5 to return to the main working screen and F7 to select
the song function.
Now press Shift F6 to play the song.
Note: if you have a multi timbral synth like the Casio CZ101 for instance
then you can play each track through a different channel. See the
discription of the parameters section at the end of this document for
more iformation.
Try speeding it up a bit, press Shift F5 then type 6000 [RETURN]
now press Shift F2 again.
For anybody who is interested in programming:
Before music is played through the ST's sound chip it is compiled into
a data file. This data file is passed to the operating system by the
XBIOS dosound function. This data file can be stored on disk in the
FILES MENU (F8) and can be incorporated into another program in any
language that allows you to access the XBIOS functions. The file is
just a string of 8 bit bytes and with C this can be read into an
unsigned char array, the address of this array is passed to the XBIOS
Dosound function.
Note: the COMPLAY.TTP utility on the disk will play music files
compiled by the COMPOSER program. To use it double click
on the COMPLAY.TTP icon and type in the name of the music
file including its extension eg DEMO.MUS then press [RETURN].
You will need to press a key to return to the desktop. I have
included the C source code of this utility for those who are
interested.
Now that you have heard the music how can you edit it?
Editing the DRUM BAR.
Select the drum function by pressing F1
Starting a new bar
- Press SHIFT + F1 (press F1 while holding the SHIFT key)
and then type 3 [RETURN]
the bar number will change to 3 and all the beats will disappear.
The cursor keys can now be used to move the cursor round the drum bar.
To set a beat press ENTER
To remove a beat press SPACE
To hear how it sounds press SHIFT F2
If you are using the internal sound chip then only one drum sound can
be played at any one time. The drum sounds are produced with the noise
generator and used with the envelope generator of tone A. In other words
you cannot have this;-
Hi Hat X X X
Snare X X X
Bass X X X
... you must use something like this;-
Hi Hat X
Snare X
Bass X
Note: SHIFT F2 plays all the bars currently displayed on the
screen (tone bar D is not used with the sound chip). If you
only want to hear the drum bar on its own go into each of the
other bars and change the bar to one with no data in it, eg:
F2 - to select tone bar A
SHIFT+F1 and type 99 [RETURN] (usually the last bar is
empty.)
F1 - to go back to the DRUM BAR
To alter the speed of the music press SHIFT F5 and type in the new
speed, then press SHIFT F2 again to hear the music. Once you are happy
with the beat you can add it to your song to do this you will need to
add it to a sequence.
Editing a sequence
Press F6 to select the sequence function.
The cursor keys allow you to move round the sequence table. To add a
drum bar move to the first line in the first column and type in the
number of the bar (the number appears in the top left hand corner) now
press RETURN. The new bar number replaces the existing one in the
sequence table.
eg DRM|
3|
0|
0|
Now play the sequence.
Press SHIFT F2 - the music will take longer to compile.
You can now play the complete song with your new drum bar by pressing
F7 to get into the song function and then SHIFT F2 to compile and play
the music.
Editing a tone bar
Select a tone bar by first pressing either F2, F3, F4 or F5. (Note F5
not used with the internal sound chip which only has 3 channels).
To enter a note press the octave number (1 - 6)
A highlighted input line will appear at the top of the screen, now type
the note eg A (or A# if the note is a sharp) - now press [RETURN].
You can now either move the cursor with the right cursor key and enter
the next note or press one of the following note length keys;-
Pressing;-
S or s moves cursor 1 beat right (SEMI QUAVER)
Q or q moves cursor 2 beats right (QUAVER)
C or c moves cursor 4 beats right (CROCHET)
M or m moves cursor 8 beats right (MINIM)
These keys replace any rests between the notes as sustains, they do not
delete the note the cursor is currently on.
A rest (~) can be added by pressing the space bar.
A note or rest can be changed to a sustain by pressing the (/)
character.
Summary
To produce a song you must first create drum and tone bars, these are
the actual notes of the music. It is possible to type in published
music, a melody line can be entered by allowing the following beats for
various note lengths;-
A SEMI-QUAVER = 1 beat
123456789012345
Tone bar 1 1234
AAAA
####
4 semi-quavers
A QUAVER = 2 beats
123456789012345
Tone bar 1 1 2 3 4
A A A A
# # # #
4 quavers
A CROTCHET = 4 beats
123456789012345
Tone bar 1 1 2 3 4
A A A A
# # # #
4 crotchets
and so on....
A number of bars can then be strung together in a sequence. For
example sequence 1 could be the verse of a song and sequence 2 the
chorus.
The sequences can then be strung together in a song. For example;-
Song
1 verse
2 chorus
1 verse
2 chorus
List of command keys
F1 Create and edit drum beats
F2 Create and edit tone bar A
F3 Create and edit tone bar B
F4 Create and edit tone bar C
F5 Create and edit tone bar D
F6 Create and edit sequences
F7 Create and edit song
F8 File music data on to disk
Each part of the music is saved separately allowing the same drum
bars, for example, to be used on more than one song
F9 Play the music through the internal sound chip or through MIDI.
Note: music played internally must first be compiled using
SHIFT F2
F10 Alter the parameters - a description of the parameters follows
this section.
The following keys are used with the shift key; ie the shift key is
held down while pressing the Function key.
Shift F1 This will prompt for another bar or sequence number between 1
and 100 and allow editing on this new bar. This function
works in DRUM, TONE and SEQUENCE functions. Use only bars 1
to 99 as bar 100 is used by the program to stop sustaining
notes when playing a bar or sequence using MIDI.
Shift F2 This will compile the current bar, sequence or song into a
music file suitable for playing through the internal sound
chip. The file can be up to 50,000 bytes long.
Shift F3 Not used (Echoes the RETURN key)
Shift F4 Copies the current bar or sequence to an other bar or
sequence. The function prompts for the destination bar of
sequence number.
Shift F5 Asks for a new speed to be input, the smaller the number the
faster the speed. (10000 is a good starting point).
The internal sound chip uses a delay in factions of a second
and so the speed number (shown at the top of the screen) is
divided by a factor to bring it to a correct value. The
dividing number is coded into the program and allows internal
music to be played back at a similar speed to MIDI music. It
is possible to alter the factor by installing the program as
Tos Takes Paramters (COMPOSER.TTP) and typing in a new number
as a parameter.
Shift F6 Plays the bar, sequence or song through the MIDI interface.
The music can be interrupted by hitting any key.
Shift F7 (TONE BARS ONLY) Transposes notes. You are asked to type in
the current note eg 2A# then the new note eg 3C# and then a
bar number. All the notes between the current bar number and
the entered bar number will be transposed. The notes will
not change if any 1 note goes out of the 6 octave range.
Shift F8 (SEQUENCE EDITING ONLY) This allows recording onto one of the
4 tone bars through a MIDI channel. To do this you must
first set up a click track on one of the other tone bars to
get the tempo. You then type in the bar numbers that you wish
to record on. See the section on recording notes after this
list of commands.
Shift F9 (TONE BARS ONLY) Copy a number of bars from one track to
another. eg to copy the first 20 bars from tone A to tone B;
select tone A bar 1
press SHIFT F9
type B [RETURN]
type 20 [RETURN]
F10 Not used
Real time recording from a MIDI keyboard.
An example of recording on track B using track A as a click or
metronome track.
SEQUENCE 1
drm| A| B| C| D
0| 0| 0| 0| 0
0| 1| 0| 0| 0
0| 1| 2| 0| 0
0| 1| 3| 0| 0
0| 1| 4| 0| 0
Track A is used as the tempo and track B is recorded on.
To record press SHIFT F8 and then type in the number of the track to
record on A = 1, B = 2, C = 3 & D = 4. 0 means do not record.
Now press Shift F6 to play the sequence, any notes you hit on the MIDI
keyboard will be recorded on to track B. The recording process will
not take notice of sustaining notes, sustains must be added
afterwards.
You will get best results if you use short sharp taps on the keyboard.
To hear the notes back first press Shift F8 and type in 0. Then press
Shift F6.
It is important that once you have recorded a track that you remember
to turn the recording off before you play it back otherwise you will
record over the track again.
Turning recording off: press Shift F8
press 0 [RETURN]
Once the notes have been recorded they can be edited from the computer
keyboard by first selecting the Tone Bar, in this case Tone Bar B
(Press F3). Then selecting the bars which were recorded on to (Shift F1
bar number). This is where you can correct any mistakes or even alter
the key.
The parameters & their functions
The parameter screens enable default values for the ST's sound chip and
MIDI instruments to be stored on disk. This saves the bother of having
to set up the parameters each time you use the program. I have a
standard parameter file which I use for most songs editing it slightly
if the need arises. There are 2 parts to the parameters section;
i) The MIDI drum paramaters
ii) The MIDI keyboard and ST sound chip parameters
The functions of all the parameters is listed below.
The Drum Parameters
I do not have a MIDI drum machine and I do not know how they work so I
have assumed they operate in a similar way to the MIDI keyboards.
There are 4 MIDI tracks set aside for the MIDI drum. Each track can be
assigned to a particlular MIDI channel and each track can be set to a
musical note with in a 6 octave range.
The drum parameters screen asks for a track number and then for a MIDI
channel number and a note. The MIDI channel numbers need not be
different for instance if you drum machine operates on MIDI channel 1
the all the tracks can be set to MIDI channel 1.
To alter all the tracks of the drum parameters when the prompt asks
Okay (Y/N) answer N. When you have finished amending all the tracks
answer Y.
The music parameters
--------------------
Select option 1 from the parameters menu.
Move the cursor round the screen with the cursor keys, you will notice
that all the cursor keys have some effect. After you have typed in a
new parameter press [RETURN]. Press ESC to get back to the parameters menu.
List of parameters and their functions.
1) Speed of music play back (also altered by (SHIFT F5)
2) Instrument names for the drum bar
3) Length of the open hi hat pulse for use with external drum
machines (The number is a percentage eg 100% means the hi hat is
open until the next beat.
4) The MIDI channel numbers for each of the 4 tone bars
5) The number of the MIDI instrument sound or tone bank used. If 0
then it is ignored and the instrument should be selected from the
synth. If any other number is used then the that number will be
used as the instrument or voice number until the prgram comes
acroos an instrument number in a sequence. See changing the
instrument after this section.
6) The volume of the internal sound chip. If this is set to 16 then
an envelope is used.
7) The index number of the envelope to use for the internal sound
chip.
8) The length of each section of the envelope of the internal sound
chip.
9) The number beats per bar - a Waltz would use 12 beats not 16.
*********************************************************************
Changing the MIDI instrument or voice.
Composer allows you to change the instrument voice on your MIDI
keyboard either at the start of a song or at the start of each
sequence. The program is very flexible having a number of options.
The parameters.
The MIDI intrument numbers in the parameters screen enable you to set
up an intrument which will be used each time you choose the play song
function from the main working screen (F7 and then Shift F6). If the
value in this screen is 0 then the instrument must be selected from the
MIDI keyboard itself.
The sequences.
The top bar of the sequence table (highlighted bar) is also able to
take MIDI instrument/voice numbers. This will set up the instrument at
the start of the sequence. This means that different MIDI instruments
can be used on the verse and chorus of a song. The number in the
sequence will only affect the MIDI keyboard if the numbers in the MIDI
instrument section of the parameters screen are greater than 0. A MIDI
drum is not affected and must be preset on the drum itself.
Using a triggered drum machine via the printer port.
----------------------------------------------------
I wrote this program for use with a home made drum machine which
operates with short 9 volt trigger pulses. The printer port on the ST
will give out 5 volt pulses when used with Composer. These pulses can
be fed through a simple comparator to generate 9 volt pulses.
IMPORTANT - MAKE SURE THAT EITHER YOU KNOW WHAT YOU ARE DOING BEFORE
ATTEMPTING TO CONNECT A DRUM MACHINE OR YOU GET SOMEONE
EXPERIENCED IN ELECTRONICS AND COMPUTERS TO HELP YOU.
THE AUTHOR DOES NOT ACCEPT ANY RESPONSIBILITY FOR
DAMAGE CAUSED TO DRUM MACHINE OR COMPUTER.
A simple comparator circuit.
************************************************ + 9 volt supply
*
*
*
*
* *
* From St * *
* port > + * *
* * *
/ * Op amp *********** to drum machine
/ * *
10k / <************ - * *
preset/ * *
pot / *
*
*
*
********************************************** Ground
The output pins on the printer port, which is centronics compatible,
are data 0 to data 3 and these are pins 2, 3, 4, 5 (pin 1 is top
left as you look at the socket from the back of the computer).
Note that pin 11 must be connected to ground (pin 18) to inform
the computer that something is attached.
Information on the functions of each pin on the printer socket can
be found on page 88 of 'The Anatomy of the Atari St' book written
by K. Gertis, L. Englisch & R. Bruckmann and published by First
Publishing Ltd, 20B Horseshoe Park, Horseshoe Road, Pangbourne,
Berks. Telephone 07357 5244.
I am able to supply a circuit diagram of the comparator circuit
along with a wiring diagram for the printer connection and the
details of the componets used. Either send me a stamped addressed
envelope or register as described below.
Hints & Tips
When you are developing a drum beat it is useful produce a sequence èwith
say 4 of the drum bars in. That way when you play it back, in the sequence
function, to hear how it sounds you get 4 plays of the bar instead of 1
and only the drum plays.
eg
SEQUENCE 1
drm| A| B| C| D
0| 0| 0| 0| 0
1| 0| 0| 0| 0
1| 0| 0| 0| 0
1| 0| 0| 0| 0
1| 0| 0| 0| 0
The same applies to the tone bars when you are developing a bass line or
repeating riff.
It is useful to store on your working disk 4 default files as èfollows;-
DEFAULT.DRM
DEFAULT.TNE
DEFAULT.SEQ
DEFAULT.SNG
Save these files empty and then when you wish to start a fresh song and
clear out all the data on the screen simply load in the default files.
When recording from a MIDI keyboard make sure you enter plenty of
bar numbers in the sequence table to record onto. It is easy to
tidy up the bars once they are recorded by copying blocks of bars.
Bar 100 is used to stop sustaining notes at the end of a song or
sequence and is normally full of rests. It is possible, when
you are recording, to go on to this bar. If you do select the
tone bar you where recording onto, say Tone bar A, then select
bar 100 (Shift F1 100 [RETURN]) and use thes pace bar to delete
the notes and make rests. It you do not do this then a couple
of odd notes will always play at the end of a song, sequence or bar.
It is possible to copy a number of bars from one part of a track/tone
bar to another eg you want to copy in Tone bar A bars 1 - 10 to 20 - 30.
To do this you must use another Track/Tone bar as a temporary store. Use
F9 to copy Tone bar A, 1 - 10 to another Tone bar , say B, then use F9
to copy the bars back to Tone A at bar 20 - 30.
David Dickens.
Technical information
Program was written in C and compiled with the version 4.0 Lattice C
compiler. The computer was an Atari ST 1 megabyte machine with a high
resolution monitor. The program should run on a medium resolution monitor
as long as it displays 80 columns. The screen displays are controled using
escape sequences and not via GEM. The program does not reference GEM in
any way. Data is sent to the printer port and MIDI with the BIOS Bconout
function.
Capacities:
99 Usable Drum Bars
99 X 4 Usable Monophonic MIDI and ST sound chip Tone Bars
99 Usable sequences each with 16 X 5 tracks
99 Steps to a Song
50000 bytes storage for ST sound chip music
6 Octaves
Choice of any of the 16 MIDI channels
Monophonic MIDI playing
4 Trigger outputs via printer port
4 Tracks suitable for a MIDI drum machine
Registration
If you are interested in the program and would like to have more
information then please register with me for 10 pounds and I will supply;-
A disk with the C source code and the local header files.
The program has a number of useful functions which may
be of use in your own programs.
A printout of the manual with a couple more hints and tips.
A ciruit diagram of the comparator ciruit I use for the drum
machine with components used.
A couple more demonstration pieces to play with.
A copy of the updated version as soon as I finish it.
I would be grateful to hear from anyone who has ideas on
improving Composer or to hear any good tunes produced
using the program.
David Dickens
7 Granary Close
Horley
Surrey
RH2 8JF
* * * * * * * *