Text File | 1991-01-16 | 6.3 KB | 167 lines | [04] ASCII Text (0x0000)
How to use the step.recorder, duredit, and seq.compiler programs:
DATA FLOW DIAGRAM:
chords --> step.recorder --> score file
score file --> duredit --> score file
score file --> seq.compiler --> sequence file
sequence files --> mixer --> sequence file
sequence file --> playback800 --> music
step.recorder
=============
uses binary file: stepseq2
This program works with keyboards that send NOTE OFF messages as $90 nn 00.
When you run the program, it waits for you to start playing at the keyboard.
You can play a chord, and when you release the keys, the midi note numbers of that chord will be stored in memory, separated by $FF markers. For example, C Major followed by D minor would look as follows:
FF 3C 40 43 FF 3E 41 45 FF
So, if you want to input a song, treat each simultaneous event as a different chord. Later on, you can use the DUREDIT program to specify the duration of each note in a chord.
Press any key on your computer keyboard to stop the program. You'll be given an option to save the song.
duredit
=======
uses files: duredit2.obj, runtime
(this is a compiled version of the basic duredit2 program)
Before EXEC'ing this file, you must BLOAD the file you are editing at address $4000 (16384). You may load a file created with Step.Recorder, or a file that has been previously edited with duredit.
When the program starts, you see two lines of data. The top line shows what is to the left of the pointer, the bottom line shows what's right of the pointer. You move the pointer through the file and can insert/delete notes, rests, durations, repeat markers, event markers, and velocity changes.
Commands:
--> advance one position
<-- go back one position
down arrow advance one event
up arrow go back one event
ctrl-D deletes one position to the left
ctrl-B go to beginning of file
ctrl-E go to end of file
= set cursor multiple - type a number at the prompt
and your next movement or delete command will be repeated
that many times
0 you get a prompt to enter a duration string. use the
following characters:
7=breve 1=whole 2=half 4=quarter 8=eighth 6=16th
3=32nd 0=64th .=dot 9=triplet 5=quintuplet
if a note is tied, combine the above values with a '+'
for example: half note triplet tied to dotted 8th: 29+8.
Note: the value displayed in the file represents the
time value of the note, relative to quarter note=240.
ex. half note = 480, 8th note = 120. If the value is
greater than 999, it is displayed in inverse.
A duration value applies to all subsequent notes up to
the next duration marker.
Ex: / 120 3C 3E 240 3G / 120 3C 3E /
^ ^
these E's have the duration value 120.
/ Inserts an event marker ($FF)
* Inserts a rest ($7F)
V Inserts a velocity change marker. Enter new velocity.
Note: velocity markers appear in inverse.
space Inserts a note. You specify the midi note number.
ex. 60=middle C (displayed as 3C) 61=C#, 62=D, etc.
[, ], < REPEAT SEGMENTS:
You define the structure of the song by marking off
the beginning and end of a repeated section, and using
a '<' marker to call that repeated section. For example:
Section A is defined with the [1 and 1] markers, and called
with the <1 marker. Section B is defined with the [2 and
2] markers, and called with the <2 marker.
You insert the marker by typing [ ] or < and entering the
number you want to give to the marker.
ESC Exits program and moves data to $2000 (8192). You must
hit CTRL-RESET after the program is done. You will then
see the starting and ending address of the data.
To save the file:
BSAVE <filename>,A <start adrs> ,E <end adrs>
DATA STRUCTURE:
The binary data in the file can be read sequentially.
If a byte is < $08, the following rules apply:
$00 = end of file
$01 = one byte duration - take next byte and subtract $80
$02 = two byte duration - take next 2 bytes, subtract $80 from each, multiply
first by $80, add second.
$03 = velocity - take next byte and subtract $80
$04 = undefined
$05 = left repeat marker number - take next byte and subtract $80
$06 = right rpt marker number - take next byte and subtract $80
$07 = repeat call marker number - take next byte and subtract $80
$7f = rest
$ff = end of event
seq.compiler:
============
Reads the binary data of a score file and compiles a midi-file-format sequence in main memory.
BLOAD your score file at A$2000
BRUN SEQ.COMPILER
if your computer hangs, there may be a problem with the repeat segments in your score file (ex. calling a repeat segment when the ] marker was left out.)
if not, in a few seconds you'll have a sequence sitting in memory at $4000.
to save it:
----------
PRINT PEEK(8)+PEEK(9)*256
BSAVE <filename>,A$4000,E <the number returned above>
to play it:
----------
poke 6,0: poke 7,64
poke 255, <speed of playback, usually 16 or 32>
BRUN PLAYBACK800
The MIXER program is used if you created separate sequence files for different tracks of a song (ex. Right Hand part, Left Hand part) and want to combine the sequences together in one sequence file. First, save each sequence on your ramdisk. Then load the MIXER program, list it, and edit in the filenames of your sequences files. Change the lines which specify the prefix of your ramdisk and the number of tracks to mix. Then run it and wait about 15 minutes. It will terminate with a RANGE error, but that's no problem - just type PRINT SQ to find the end address, and BSAVE <filename>,A$2000,E <sq>.