Midi File Player for the Palm Pilot.

Only tested on the Palm III / OS 3.0.

mfftoprc will convert a standard midi file (format 0 or 1) to a .prc
file.  Type it in without parameters for usage, but basically:

mfftoprc song.mid song.prc "Song Title"

An executable compiled under Windows NT is provided.  For UNIX, just
do "make mfftoprc".

If the mid/mff file has a track longer than 64K, it will fail, but
that is what mfffix is for.  Basically it splits tracks as needed so
that they are no larger than 60k, so any size track should now work.

You will need to construct some hardware, but most parts should be
available at a local Radio Shack or other electronics supplier.

You will need a MIDI connector, an RS232 connector (to plug into your
hotsync cable), a diode and a 300 (approx - 220 to 330 should work)
ohm resistor.

Connect the end of the diode with the band to pin 5 of the RS232
connector.  Connect the resistor to pin 2.  Looking at the side you
will be soldering with the 5 pins on top and 4 on the bottom, pin 5 is
the leftmost pin and pin 2 is one from the right.  You will probably
want to trim the resistor and the diode so they don't hang out too
far.  Hold the 5-pin DIN (MIDI) connector with the solder lugs or
other connectors on top forming an arc (like a rainbow, not like a
smile).  The diode should connect to the middle left pin, and the
resistor to the middle right.

Or, diagramatically (from the solder side):


 S S S S S
 |     |     RS232 connector
 |S S S|S
 |     |
 --    <     Diode, Resistor
 /\    <
 |     |
 |  m  |
 m     m     MIDI Connector

m         m

To record, you need the converse of the above:


m         m

 m     m
 |  m  |
 |     |
 |  +--+
 <  |  |
 <  |  -     Resistor (220 ohm), Diode
 |  |  ^
 |  |  |
 +-----+     Note: no connection at crossover
    |  |
+-o--o--o--o-+
|    +|<+    |
|6n138   --  |
|        /\  |
+-o--o--o--o-+
       |  |
   +^^^+  |  Resistor (20K)
   |   |  |
   S S S S|S
          |
    S S S S

pin 5   3  6


I MAKE NO WARRANTY TO THE USE OF THIS CIRCUIT OR SOFTWARE - USE AT
YOUR OWN RISK.  IF YOU DAMAGE ANYTHING IT IS YOUR OWN FAULT.

It worked on my system, but I checked the current with a meter so I
could adjust things without damage.



THE SCREEN


MIDI Player    song name

Mode



TEMPO

Minutes : Secs : Hundths

Measure : Beat : Click


Stop |Play |Pause| FFwd| Rec




BASIC USAGE (nonobvious features)

The /I brings up an info dialog, and tapping the info icon will bring
up some of this information.

/J enables the jukebox mode, where it will play each song through,
pause for two seconds, and continue with the next song.

Record (the circle) will store timed events to a "clip" track (similar
to the clipboard for cut/paste).  The next time play is hit, they will
be replayed as if it were an added track.  Later versions will allow
editing tracks, but for now it is just for testing.  Record will light
the screen for 1 second, shut off for 1 second, light for 1 second and
then start recording (plans are to change this to metronome timing).

/N will create an empty song, but this feature is not yet useful.
/R will allow the sequence to be renamed.  /D will delete the current
sequence (don't delete the last one).

IF NO MUSIC TRACK IS AVAILABLE IT WILL CRASH.



MUSIC

John Sankey's rendition of the Italian Concerto and Goldberg Variations
by Bach are included.

For more of his excellent sequences, check out:

http://www.ncf.carleton.ca/~bf250/harpsichord.html



I can also recommend The Classical MIDI archives at:

http://www.prs.net/midi.html#index

(Check out Smetena's Moldau, Rimsky-Korsakov's Russian Easter Festival
Overture if you want to test your tone module).

And the Cyber Hymnal at:

http://tch.simplenet.com/Default.htm




CHANGELOG:

Version 0.25
       Fancy buttons, larger font.
       Record mode.
       Disabled play to palm speaker.
       Jukebox mode

Version 0.2
       Add [Fwd] to play using the Palm Speaker.
       2.5mS resoultion (up from 10mS).
       Faster time printouts using new font.

Version 0.1
       First Release