simple MIDI?
Stopp,Gene
gene.stopp at telematics.com
Tue Jan 20 19:39:00 CET 1998
I've scribbled many such circuits on paper, just kicking around
ideas....
I thought I had a drawer full of 6402's in the garage, but no such luck.
Those chips are so old that it's even hard to find a datasheet. The 6402
(as mentioned in another post lately) would be great for such
applications - all the signals needed for async send/receive come out to
pins, no programming registers. Perfect for "dumb" projects.
For lack of a 6402, I once programmed an Altera EPLD to act as a UART to
receive MIDI sync bytes and output start/stop/continue pulses as well as
a bunch of divided clock outputs. I created the UART out of a shift
register for serial-to-parallel conversion (using some way of assuring
proper byte framing, I can't remember the exact approach), and a bunch
of gate logic to detect different bit patterns and do the appropriate
thing. Also included was a pre-scaler to get 31.25 kbps out of an
external crystal. The whole mess would have consumed a huge amount of
vectorboard real estate, something I would never have done to achieve
such a simple task, but in an EPLD you just draw schematics on the PC
and burn it into the chip so chip count isn't an issue.
I still have the chip somewhere, on a little circuit board, but I've
never actually tried it in a MIDI setup. I know I did test it on the
bench when I created it, however, and it seemed to work.
It's farily easy to envision an simple transmitter - just a
parallel-to-serial shift register clocked by a counter running at 31.25
k, which scans once through the count when triggered and sits at rest
when not triggered. You can set up the parallel pins for the bits in the
byte, adding a start bit to the front and one or more stop bits at the
back. I've seriously considered making a simple Note-On/Note-Off
generator for a drum interface, but I just never get around to it. It's
getting to the point in my life where I'd almost rather pop for the $325
and get an Alesis DM5 - external drum triggers to MIDI plus a lot of
sounds as well. But that's no fun, right?
Receiving is more difficult - it's not much harder to make a UART
receiver, but once you frame a byte you need to decide whether it's one
you want to act on or discard. Plus you get running status and clocks in
the middle of messages.... it can get real ugly without a CPU in there
somewhere. Some years ago I wrote a decent MIDI protocol stack, and I've
decided that as long as I have that, I might as well stick to code when
it comes to receiving MIDI and acting on it.
So - without a CPU, I think that transmitting is easier than receiving,
and a hard-wired UART chip is easier than a discrete transmitter, so
little message-senders like percussion controllers are probably fairly
do-able. Anything more complicated than that and I'd go with some
number-cruncher.
- Gene
----------
From: John E Blacet
To: synth DIY
Subject: simple MIDI?
Date: Saturday, January 17, 1998 4:24AM
Has anyone run across a circuit that will send or receive one midi
command? Something that is non uP? Maybe not a practical idea, but
thought I'd check!
John
More information about the Synth-diy
mailing list