[comp.music] Am writing FREE score editor - first truy.. help?

cs352a55@cs.iastate.edu (Class login) (11/27/90)

Hi, sorry for the typos in the subject.... my reader is not accepting 
BS for deletion character.

Anyway, I'm writing a score editor for my IBM PC... Why? I'll be getting a 
MPU401 Clone card from MusicQuest for a christmas present, and I dont know of 
any cheap (<$20) software to drive it with...

The only problem is, I'm not big at writing fancy looking graphical displays 
and I've never worked with a score editor before in my life.  

I was wondering what are some of the nice features which I could put into the
program?

This is what I currently have (or will have, once I get the code entered):
----------------------------------------------------------------
the display is all text (dont have time to figger out how to draw the 
notes) and looks like this:

+-----------------------------------+
|Current Cursor info        Notes under the cursor
|and Key/Accents                    |
|                                   |
|                                   |
|       Notes/Staff etc             |
|                                   |
|                                   |
|Block info/volume controls etc     |
+-----------------------------------+

The Key/Accent stuff is a list of where to automatically add #/flats.

The notes are stored as:  
Time of activation, Option, Track, Note/Data, Length, Tie.

Time of activation is a longint; there are 96 time units=1 measure
Option=0 ==> Volume, 1==> Change voice, 255==>Note
Track=0..15
Note/Data ==> the MIDIwise note number
Length=Length in time units
Tie= 0==> No tie; note is normal;  1==> Tie exists, dont send a ENDNOTE.
------------------------------------------------------------------------
The control keys (in the editor) are currently set at:

cursor up/down -> move pointer up/down a note on the staff.
cursor Left/Right -> Move pointer to where next note should be/most recent note
shift+cursor left/Right -> move pointer +/- one time unit
+/-/N -> Change note under cursor/Next note entered to sharp/flat/normal
./, -> chanbe note under cursor/Next Note to "dotted" or "not dotted"
T -> Select track number to work in
1,2,4,8,6,3 -> Enter a note at current cursor... 6 => sixteenth, 3==>1/32th
~/` -> Change note under cursor/Next Note to "Tied" or "Not Tied"

Various other functions:
CTRL/F - File options... Load/Save/Merge/New/Quit... Most of these have track 
         ie, save tracks 1 to 5, merge in track 7 (from origin or cursor posn)
CTRL/D - Display options... Which tracks get displayed, in which color
CTRL/B - Block options... Delete, Save, Copy/Cut, Transpose, Play
CTRL/P - Paste block (Does not act like Insert)
P - Play.... Right now all I'll be able to use is my PC speakers... ugh

Any additional, not to hard to program stuff would be welcome.
---------------------------------------------------------------------------
I am using Turbo Pascal 5.5 for my programming... if necessary I can integrate
assembly for the midi in/out stuff (Once I get my midicard)... I've heard that
MusicQuest provides tech docs for free.

Currently my program has the basic Data Structure stuff...
for a lot of my operations, I am using something like:
InitBlock(from time, to time)
while not eoblock
	getanote
	do stuff to it
end

Whooops gotta go now... my ride will be here in 5 mins...

Any suggestions, get-this-package's, discussions, requests for source, 
comments, elucidations, or kamikazes (what a drink!) to:

WEN10@ISUVAX.BITNET <=== Preferred
cs352a55@zippy.cs.iastate.edu

Sunny Gulati
Wallace 9360 McCowen
Ames IA 50013
515-296-9537

Over breaks:
either 515-292-4516 or 612-363-4849 (home sweet home)

I may not get this program finished till December....

I'm done blabbing now.  Go do something constructive.

Bye.