[comp.sys.ti] Rave 99 keyboard and hard-floppy drive controllers

cccph@jessica.cs.ucla.edu (Charles Hobbs) (05/12/91)

A friend of mine is seeking help in connecting a Rave 99
IBM-type keyboard to a TI 99/4A. As I understand it, it involves
removing the existing keyboard, and replacing it with a DIN-plug....

Also, we're looking for hard/floppy drive controllers. I think the Myarc 
is currently the only game in town, although there may be others, I've
never heard of them.

Thanks in advance
____________________________________________________________________
|Charles P. Hobbs           | BBC micro, Aquarius and Spectravideo
|cccph@jessica.cad.ucla.edu | users! Please email me! Thanks!
|Ham radio: N6YMK           | L.A. Blue Line Freq: 471.3375 mHz

ewb6720@pacs.UUCP ( Eric W. Bray) (05/13/91)

===============================================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     
       
The RAVE 99 keyboard is OK, but VERY EXPENSIVE!! It costs over $225.00 and
realy adds very little to the machine's capabilties. If your friend wants
a full 101 KEY keyboard, have then save their monry and buy a MYARC GENEVE
9640 for a few more bucks (used ones go for around $300.00). Then your 
friend will get a full 101 KEY keyboard and a machine that is very capable
of some advanced computing along with TI 99/4A emulation!

As for the MYARC HFDCC they have one that retails for $325.00. It will control
three (3) hard drives, each with up to 120 Megs of storage, and four (4)
floppy drives, each with up to 720K of storage.
      
         

ewb6720@pacs.UUCP ( Eric W. Bray) (05/14/91)

====================================================================================
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
      
        
MYARC has reduced the price of their HFDCC to $225.00 suggested retail price!!
        
All of the capabilities remain the same!!!

            
           

ewb6720@pacs.UUCP ( Eric W. Bray) (05/24/91)

==============================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
         
           
Documentation (Public Domain) On the Symbolic Note Format (SNF) 
Language definition by Michael J Maksimik 
Current language specification 1.0 as of 04/23/91 
 
The Symbolic Note Format (hereafter known as SNF) is a music notation
specification designed for the MIDI Master 99 compiler.  Music placed in SNF is
easy to read into a compiler, and easy to read from a human standpoint.  The
versatility of SNF can be seen as it is ready to accept whole works of music,
to individual tracks which can be imported into already existing data.  This is
the beginning of the specification:  New versions are already planned and this
note format will remain upwardly compatible.   
 
Features:   
 
SNF can handle up to 16 voices.  Each voice is monophonic (one note may play at
any time per channel) for a combined capability of 16 note polyphony.   
The voices may be independently assigned to MIDI channels.  There are 16 MIDI
channels to choose from.  You may assign all of the 16 voices in any number or
combination to the 16 MIDI channels.  Example:  a song has 8 voices.  Three of
the voices will be played as a piano, two more voices will be played as violin,
two more played as trumpet, and a final voice will be a trombone.  The
programmer then chooses to play voices 1..3 on MIDI channel 1, assigned to the
piano waveform; voices 4,5 on MIDI channel 2, assigned to the violin waveform
generator; voices 6,7 on MIDI channel 3 assigned to the brass (trumpet)
waveform; and voice 8, which the programmer has chosen to assign to channel 4,
the trombone sound.  If the MIDI keyboard allowed this combination (4 different
waveforms, each to its own channel) then the octet of instruments would play in
harmony, in 8-note polyphony.  As a comparison, the TI sound chip (9914) can
create one waveform, the square wave, and has three voices which may
independently be sounded on or off, plus one noise channel, in which the
waveform is selectable according to the noise type desired.   
SNF can DYNAMICALLY change the instrument assignments.  Suppose the musical
work is played, and at the beginning, the main instrument is the piano.  At any
point after that assignment, the instrument can be re-selected, and the note
data following that change will sound like the new instrument you have
selected.
SNF allows most notes to be compiled, including whole, half, quarter, eighth,
sixteenth, 32th, and 64th and triplets of all but the 64th variety.  Notes may
also be dotted (not staccato) but dotted timewise..a dotted half note is three
beats, not two in (4/4) time.  Double dotted format is also available, which
will give 1 3/4 the total note value (a double dotted quarter is 1 and 3/4 of a
beat in (4/4) time). 
You may not have a dotted triplet, that is not permissible even in regular
music! 
SNF allows notes to be compiled over a wide multiple-octave range.  The lowest
note allowed in this format is MIDI note # 32, which is C below low C.  The
highest note possible is MIDI note # 96, which the 2 c's above high C.  Sharps
and flats are possible, with postfix notation.   
Finally, the song may be commented.  The asterisk (*) is used to begin a
comment, at the beginning of a line. 
 
SNF definition (by line) 
 
(Assume n lines in the file) 
 
line 1: SongTitle,NumberOfVoices,SongVersion 
 
Line 1 must contain the header.  SongTitle is the name of your song, in text.
The text must be surrounded by single or double quotes, or parentheses.   
SongVersion is a numeric field indicating the version of the song in the file.  
The above fields are neccessary, but ignored.  NumberOfVoices is necessary to
indicate the total number of voices you wish to use.  This value partitions
memory in (NumberOfVoices) segments, equally divided.  If you choose to select
8 voices, the 24k available to notes will be split eight ways, that is, each
voiceline can handle about 3k, which amounts to about 1600 notes per voiceline.
(each note occupies one word of memory). 
 
line 2...line n-1: 
 
the next lines, except the last line, must contain note data and directives, or
comments.  The comment form is a line of characters in any combination,
preceded by an asterisk in the first column (*), as follows: 
 
* this is a comment. 
 
The comment asterisk must be used to space lines also, as blank lines are NOT
allowed, and are interpreted by the compiler as an error.  Always use the
asterisk in column 1 of any comment (or blank) line. 
 
The music note data format is as follows: 
 
Voice,Note,Duration 
 
Where Voice is a value from 1..16 inclusive. 
Note is a symbol indicating the note desired.  It is of the form: 
     
XN[A] 
 
Where X is a value from 0..5, N is a character from A..G, and A is an optional 
accidental indicator, that is # for a Sharped note, and @ for a Flatted note. 
A sharped note will have a 1/2 step on the octave added to the note value, and
a flatted note will have 1/2 step subtracted from the note value.  In MIDI
notation, a 1/2 step is exactly one note number above (for sharps) or below
(for flats).  There is no notation for natural, note is to simply omit the
sharp sign (#) or the flat sign (@). 

Rests are indicated by the symbol R.  A rest is a note that is not played,
instead, it is a period of rest, determined by duration value. 

Duration is a symbol indicating the length of the note, (or rest).  The syntax
of the duration is as follows: 
 
[-][{.}][3]D  
 
Where the [-] sign indicates that the note is tied to the previous note.  Tied
notes are only allowed if this note is the same octet value of the previous
note.  You may not use the [-] sign to slur notes, as slurring is not allowed
under MIDI conditions.  The [{.}] sign represents one or two optional periods.
The [-] sign and the [{.}] may be used in combination with each other.  The [3]
sign indicates that the note is to be timed as a triplet, that is, 3 notes in
series, as triplets, will equal double the D value for duration.  It
essentially allows a note to take on 2/3 its D value.  You may not use the [3]
option in combination with the [{.}] option.  Finally, the D value is one of a
number of letters indicating the base timing of the note.  The values allowed
for D are: 
W = whole note 
H = half note 
Q = quarter note 
E = Eighth note 
S = 16th note 
T = 32nd note 
I = 64th note 
 
There are many possible combinations of timing, but follow these rules: 
a single dot will add 1/2 the note value to it, for a total duration of 1 1/2
times the note value. 
a double dot will add 3/4 the note value to it, for a total duration of 1 3/4
times the note value. 
a 3 will indicate a total timing value of 2/3 the note value. 
a - will indicate that the note is to be appended to the previous timing value. 
 
Using the above rules, a wide variety of notes can be created, from simple
tunes to mordents and turns.  While I have not yet defined a mordent in terms
of a dedicated note value or qualifier, that is up to the user to enter into
the computer.  Trills are possible, as are staccato notes.  For trills, use the
16th and 32nd note values to add color to the music.  For Staccato notes (those
notes with a dot above them, as opposed to dotted notes, with the duration dot
beside and to the upper right of the note) use the value of 1/4 the selected
value, and rest the remaining 3/4 of the time.   
 
Here is a short example. 
 
*this is a comment.  remember it has an asterisk in front of it 
* 
*the above line is blank.
* 
1,2G#,.Q 
1,2G#,-..E 
1,2F,3Q 
1,2E,W 
1,2E,-H 
*THE NEXT VOICE. 
2,0A,Q 
2,0B,H 
2,1C,E 
2,1D,S 
2,1E#,T 
2,1E@,I 
2,1E@,-.W 
*THE NEXT LINE ENDS THE SONG FILE 
END. 
 
As indicated above, the END. directive ends the file.  There are two other
directives in the SNF format.  The CHANNEL directive is of the form: 
 
0,VoiceNumber,ChannelNumber 
 
The 0 indicates CHANNEL directive, the VoiceNumber is the number of the SNF
voice you wish to assign (a value from 1 to 16), and ChannelNumber is the
number of the MIDI Channel you wish to have the VoiceNumber assigned to.  It
has a value from 1 to 16.   
 
The PROGRAM directive allows you to equate an SNF voice to a program, which is
most cases is a particular instrument on the MIDI device.  An instrument can
have a value from 0..127, and can be widely varied.  The most common
instruments are piano, organ, violin, harpsichord, clavicord, bass, and drums.
There are variations to these, and there are even possibilities on certian MIDI
devices to create your own waveforms, through digital sampling.  This is
dependent on the MIDI device, and to make it as independent as possible, the
MIDI Master software (as well as most other sequencers) have built in
translators called patch librarians which translate one instrument into
another.  For example, If you compile a song in SNF format, and it was
originally written for instrument #4, which is organ on the CASIO MT 240, to
sound correctly on the YAMAHA DX-7 it would have to be tranlated, or patched,
to instrument #57.   You do not have to know the instrument numbers when you
first program a song in.  It is possible to change the patch, or translation,
when the program us running.  It may be handy, however, to know the numbers
that the instruments have.  They are usually listed in sequence on the front
panel of the keyboard or instrument.  If not, there are so few instruments that
they are simple to memorize.   
The syntax of the PROGRAM directive is: 
 
17,VoiceNumber,InstrumentNumber 
 
The 17 indicates the PROGRAM directive, VoiceNumber is the number of the SNF
voice (1..16) and InstrumentNumber is the number of the instrument which is to
be assigned to VoiceNumber.  Until the PROGRAM directive is encountered again,
all notes played on VoiceNumber (and all notes played on other voices assigned
to the same MIDI channel that VoiceNumber is assigned to) will play on the
instrument assigned (in your MIDI keyboard) to InstrumentNumber. 
 
For example, suppose that the following CHANNEL directives appear at the start
of the SNF file: 
 
0,1,1 
0,2,1 
0,3,1 
0,4,2 
0,5,2 
 
And then if the following directives appear somewhere in the SNF file: 
 
17,1,32 
17,5,16 
 
Then all notes played on SNF voices 1..3 will be played on instrument 32, and
all notes played on SNF voices 4 and 5 will be played on instrument 16.  The
CHANNEL directive, if ommitted, defaults all voices to MIDI channel 1.  IF the
PROGRAM directive is ommitted, all voices will default to instrument #0, and
hence, all channels will activate the MIDI instrument #0.  This is usually the
piano on most CASIO and YAMAHA keyboards, although there are many exceptions. 
 
If later in the file more PROGRAM directives appear: 
 
17,3,24 
17,4,21 
 
Then SNF voices 1..3 will now be played on instrument 24, since they were all
assigned to the same MIDI channel at the beginning of the file. Also, voices 4
and 5 will now play on instrument #21.   
 
IMPORTANT:  you may only have ONE CHANNEL directive for each voice..and they
should appear before any notes.  The CHANNEL directives are static in
nature..that is, once they are set, you cannot change them without re-compiling
the file, after first changing the CHANNEL directives.  On the other hand, the
PROGRAM directives are DYNAMIC, and you may have as many of them in the file as
you like.  REMEMBER that the PROGRAM directives on one voice in any channel
group also changes the PROGRAM assignment for all other voices in the group.   
This allows you to create polyphonic effects, with multiple instruments, among
16 monophonic channels.  While this is an elementary level to program with,
future versions will allow an infinite number of notes per voice, (actually
32767 polyphonic notes).  The code to do this is very intricate, and there was
very little room for that method in this version.  Planned songs will sound
just as colorful and versatile as the polyphonic voice music, and will also
take up less memory.  CakeWalk files, which are polyphonic voice songs, require
that the data be represented by three words in memory instead of the SNF
format, which only requires one word of memory per note.  It is possible,
however, to generate equivilent CakeWalk files from SNF files.  However, it is
much, much easier to program using the syntax of SNF, other than using the raw
numeric data that is CakeWalk file format.   
 
That is the definition of SNF. Below is an example of an independent SNF music
file, a C major scale, covering 2 octaves. 
 
C Scale,1,1 
*assign to channel #1
0,1,1 
*use the organ, on MT-240 by casio, instrument number 4 
17,1,4 
* 
* 
*now begin the scale 
* 
1,1C,H 
1,2D,Q 
1,2E,Q 
1,2F,Q 
1,2G,Q 
1,2A,Q 
1,2B,Q 
1,2C,H 
*now change to honky tonk piano
*
17,1,20
*
1,3D,Q 
1,3E,Q 
1,3F,Q 
1,3G,Q 
1,3A,Q 
1,3B,Q 
1,4C,Q 
* 
*here is the end of the song.  
END. 
 
 
The above example shoulf clearly indicate how an SNF file should be formed.  It
is possible to use comments to delimit verses of songs, refrains, interludes,
and special passages in the music, to allow for customization of the music, and
adding color and variety to the notes.  I suggest starting with something VERY
simple, and after familiarity with the coding, choose more intricate works.
The more difficult the music, the more interesting it will be to listen to, in
live performance. 
 
ONE FINAL NOTE::  
  the files must be in DV80 format.  It is possible to enter all of the data
using an extended BASIC program such as the following: 
 
10 INPUT "OUTPUT FILENAME: ":F$ 
20 OPEN #1:F$,SEQUENTIAL,DISPLAY,OUTPUT,VARIABLE 80 
30 PRINT "ENTER A BLANK LINE TO QUIT" 
40 LINPUT A$::IF A$<>"" THEN PRINT #1:A$::GOTO 40 
50 CLOSE #1 
60 END 
 
The above program will only allow input of one line at a time, and no editing
of previously entered lines.  I suggest that you use TI WRITER, The E/A editor,
c99 program editor, or MY-Word, or any such text file editor.  It does not
matter whether you use tabs or not (that is, in TI WRITER whether you use the
print file or save file options.) 
 
Additional suggestions: 
Since the SNF file format is easy to generate from a human point of view, it is
also easy to gererate from a computing point of view...that is, it is easy to
covert CALL SOUND statements into MIDI notes.  Just use the table in the
Extended BASIC reference manual on notes/frequencies, and wherever a call sound
statement exists, replace it with a CALL SOUNE statement, and then define the 
 
2000 SUB SOUNE(D1,f1,v1,f2,v2,f3,v3)   
2010 REM place the code here to convert d1,f1,f2,f3 to SNF file statements. 
2020 REM use 3 SNF voices, and one channel to directly emulate the ti sound
2030 REM chip..ignore the volume values, SNF version 1.0 does not allow volumes 
 
As stated above, SNF version 1.0 does not allow volumes, or dynamics to be used
in the music.  The reason for this is prudence.  Allowing volume variations
(some notes softer than others) uses an extra byte of memory, and requires more
notation, plus directives to handle dynamics (gradually louder or softer). 
For now, place the dynamic indicators in comments.  Future versions already
support the volume parameter and dynamics.  Keep in mind that most MIDI
keyboards within the price range of people reading this do not have the
hardware to play the notes at independent volumes--that is, there is one master
volume switch, and it controls ALL notes.  Only the more expensive keyboards
(above $600.00) allow each note to have it's own volume.  MIDI refers to volume
as note velocity.  If your keyboard specification allows velocity values, you
will be able to get full use of the keyboard with the next release of MIDI
Master 99, version 3.0. 
 
There is only one program that uses SNF version 1.0 files.  That is MIDI Master
99.  It requires a ti home computer, 32k, disk system, supercart or superspace,
or equivilent, rs232 interface, and a MIDI device.  Strongly encouraged is the
TI writer editor.  Alternatively, a Myarc 9640 can be used.  While MIDI Master
requires 40k of memory (32k plus 8k at >6000) it does not use any additional
memory on the 9640.  However, it does run from MDOS using EXEC (for maximum
reliability, use MIDI Master 99 in GPL mode). 
 
If you would like MIDI Master 99, please send $44.95 to  
 
Michael Maksimik 
635 Mackinaw ave 
Calumet City, IL 60409 
 
Make all checks payable to Michael Maksimik.  All orders for MIDI Master 99 v.
2.2 will recieve a free upgrade to version 3.0, IF the registration postcard is
sent in.   
The SNF is a one of the Crystal Software Projects. 
CakeWalk is a registerd trademark of TwelveTone Systems 
YAMAHA and CASIO are tradenames of YAMAHA LTD. and CASIO LTD. respectively. 
Dealer inquiries invited.

     

ewb6720@pacs.UUCP ( Eric W. Bray) (06/03/91)

==============================================================================
==============================================================================
==============================================================================



A Few NOTES on MIDI Master 99 version 2.21

MIDI Master 99 (here after knows as MM99) allows connection and communication
with MIDI compatible devices.  MIDI stands for Musical Instrument Digital
Interface.  MM99 uses the RS232 card and custom sequencing software to achieve
input and output communication with MIDI interface-equipped devices.  Some of
the MIDI devices on the market today are well within the price range of home
computer owners, and in fact, are quite popular with users of Commodore, IBM
and Apple computers.  MM99 allows 1 input port and 1 output port per RS232
port, so if two RS232 cards on the computer, with "Y" cables, you have the
capability of controlling 4 MIDI IN ports and 4 MIDI OUT ports.

MIDI is defined by a national committee to allow access to MIDI equipped
devices and comunication between them on 16 channels.  These channels are
seperate and independent pathways in which notes, messages, and communication
occurs between keyboard and keyboard, or computer and keyboard, or computer and
computer.  Note playing is the simplest application of MIDI, where it is
allowed to play an unlimited number of polyphonic notes on each channel
(depending on the MIDI device).  The CASIO CT 680 allows two modes of
operation, a 16-note polyphonic mode (on one channel only), or a multi-timbral
(multi instrumental) mode in which 4 channels are available to control 4
instruments within the synthesizer, with 6, 4, 2, and 4 notes polyphonically
available to the 4 selected channels.
Unlike the TI sound generator which is 3 note polyphonic (plus one noise) MIDI
synthesizers can produce the real sounds of many different instruments, and
built in rhythms.  The TI sound chip produces square waves similar to the wood
organ instrument available on the CASIO MT240 synthesizer.  The CASIO MT240 has
29 other instrument sounds accessible through the MIDI interface.
MIDI allows control over the instrumentation as well as the orchestration, and
all of the subtleties that occur in music.  The possibilities and combinations
are only limited by your imagination.  Beautiful and different music is
possible and will change your opinion forever on the usefullness of your
computer in designing music.  The TI is capable of graphics, and with expansion
with graphic board, it is possible to have complex and beautiful graphics.
Likewise, the TI has interesting sound capabilities, and with MIDI Master 99
the expansion to MIDI communication makes sound complex and beautiful.
You don't even have to know how to play the piano to use MIDI.  In fact, if you
would like to learn how to play the piano, it is possible using a MIDI keyboard
and a computer, with the proper program in operation.  If you are familiar with
music then MIDI opens a whole new world of computing for you.  The MIDI device
becomes an extra peripheral which you can use for expansion to your system.

Communication with MIDI devices is possible with MM99 in two different ways.
First, there is the sequencer and compiler software.  Version 2.21 of MM99
allows compiling and playing of SNF (Symbolic Note Format) note files.  It also
allows precise control over the instrumentation through which the notes are
played.  It supports all 16 channels available on MIDI 1.0 devices.  (The
current standard MIDI device is under version 1.0.) SNF file format is an
intuitive, easy format through which notes, comments, and channel directives
are placed for compiling with the MM99 compiler.  SNF is a public domain file
format created specifically to use with MM99.  SNF files are created and edited
using any DV80 file editor, such as TI Writer, My-word, Editor/ Assembler, or
similar text editors.  Sheet music of your favorite music is readily available,
and is very easy to enter, edit, and compile.
After compilation, MM99 music can be saved in fast-loading memory image format.
The second way to access MIDI is through extended BASIC.  There are routines
available with CALL LINK to access up to 4 MIDI OUT ports and 4 MIDI IN ports.
With the routines it is possible to sense for MIDI data on any of the MIDI IN
ports, send data out any of the MIDI OUT ports, and to switch between them qt
any time.  If your keyboard requires special pre-programming or initialization,
then run a program using the above mentioned routines to send the proper
initialization data.  It is therefore imperative to learn the proper way to
communicate with your MItI device, in much the same way you communicate with a
printer using escape codes.  This is necessary for the extended BASIC portion
of the program, but not necessary for the MM99 sequencer.  However, you can
combine the two for full access and programming of the MIDI synthesizer.

MIDI Master 99 version 2.21 is available exclusively from Crystal Software.
This firm has been set up by the author, Michael Maksimik, to support and
expand on the MIDI interface for the TI home computer and the Myarc 9640.  The
necessary hardware to run MIDI Master 99 v. 2.21 is a disk system with at least
one double sided drive, 32k memory expansion, and extended BASIC.  The RS232
interface is also needed (a TI RS232 compatible device) and a MIDI synthesizer
or and MIDI compatible device.  It is recommended thqt you also use, as
optional equipment for greater convenience, a p-GRAM card, a superspace,
supercart, or gram-karte to take advantage of the cartridge feature--that is,
instead of Extended BASIC being used to load MIDI Master 99, it can be loaded
in as cartridge into any RAM expansion at >6000 to >7FFF, which these devices
provide.  MIDI Master has been tested in a p-GRAM and a superspace/ superspace
II.  It has also been tested (and developed) on a Myarc 9640 and works using
Barry Boone's EXEC utility, and also loads as a GPL cartridge, or under E/A as
a memory image file (program image option 5).

As an added incentive to purchase MM99 v 2.21, any registered owners will
receive, upon it's completion, the planned MIDI Master 99 v 3.0, which will
support all of the features of MM99 v 2.21 as well as CakeWalk file format
compatibility, and added memory such as the memory availalbe in a Myarc 9640,
or a p-GRAM or horizon Ramdisk with RAMBO and ROS v 8.14.  Version 3.0 will
also support scanning of the MIDI port in the sequencer, for recording of your
piano playing, for example, while at the same time the sequencer plays music.
Version 3.0 will be released soon, but all developments of v 2.21 will be fully
compatible with version 3.0.

MM99 v 2.21 can be abtained by sending a check or money order for $45.00 to the
author, Michael J Maksimik, Crystal Software Project, 635 Mackinaw Ave,
Calumet City, IL 60409.  Checks should be made out to Michael J Maksimik.
Include $2.50 for shipping.
Once again, MIDI Master 99 V 2.21 includes the full assembly language
sequencer, the MIDI interface and 2 patch cables, the Extended BASIC MIDI
routines, and full documentation.  Also included are songs suitable for
compiling and extended BASIC demonstrations.

Upon sending in a post card with the proper information, and upon completion of
version 3.0, the new version with documentation will be sent.
As added support, MIDI is now supported in a download section on the Chicago
User's group BBS, of which the author is the sysop.  It is hoped that MIDI
becomes an integral part of the TI community, and provides the TI with more
years of life.