<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Michael,
<p> The serial stream you want to read is self-clocking.
No clock is provided. You really need a UART. While you could
use a discrete UART chip and other discretes around it, it's going to cost
a lot more and be a lot less versatile, if you can get it to work, than
a microcomputer approach. You need to find a buddy who does this
kind of stuff to get you started. I have a few copies of my
out of print book <u>Microcomputer Design & Troubleshooting</u> that
I'm will to part with for $25 postpaid. Some of the stuff in it is
dated, but I think that it's a good intro to Micro's and doing stuff with
them.
<p>Gene Z.
<br>
<br>
<p>WeAreAs1@aol.com wrote:
<blockquote TYPE=CITE>Hello list,
<p>I have a need for a couple of boxes that will decode a simple MIDI message
<br>and output a high or low logic signal. I have absolutely no software
<br>programming skills, so I cannot use a microprocessor or PIC device
to do
<br>this, even though that might be the most efficient method.
<p>The MIDI message would be a continuous controller (the controller number
is
<br>as yet to be determined - probably one of the less often used ones).
I want
<br>the logic gate output to go high, and stay high, whenever this particular
<br>controller is received with a value of 64 or higher. If the decoder
circuit
<br>receives that same controller with a value of 63 or lower, the logic
output
<br>would then go low, and stay low.
<p>I am wondering about using discrete logic IC's to do the job, and I'd
like to
<br>know if others have made similar attempts. I haven't yet tried
to work out
<br>the details on paper, but in my head I've figured out some rough ideas:
<p>I would clock the incoming serial MIDI data through a few cascaded
<br>serial-to-parallel shift register chips (74ls164 or similar), and send
the
<br>3-byte parallel output to a few "equality/magnitude comparator" chips
<br>(74ls686 or similar), one chip for each byte: Status/Channel, Controller
<br>Number, Value), to be compared with the specific preset MIDI byte that
they
<br>need to respond to. The first two comparators (looking at the
Status/Channel
<br>and Controller Number bytes) would be in "Equality Comparator" mode,
and
<br>their outputs would be AND'ed together to give a True output if they
both
<br>exactly agreed with the preset bytes. I would use "Magnitude
Comparator"
<br>mode for the last byte (Controller Value) and would compare the incoming
byte
<br>with a preset byte having a value of 63, so the magnitude comparator
output
<br>would go True for any Value bytes greater than 63, and go False for
any bytes
<br>valued 63 or lower. The output of the third comparator would
then be AND'ed
<br>with the output of the previously mentioned AND gate (the "True" signal
from
<br>the correct Status and CC# bytes), and that would be my final output.
<br>Hopefully, the MIDI Stop Bits would allow the Serial-to-Parallel converters
<br>to keep track of the incoming MIDI bytes, and the comparators and associated
<br>logic would simply ignore all incoming MIDI messages except the important
<br>one.
<p>Obviously, I haven't completely thought this out, and there is probably
a
<br>more elegant way to do this, but am I at all on the right track here?
Is
<br>there a simpler way to do this (without using a microprocessor)?
What are
<br>some traps that I must watch out for? I've seen some circuits
that use a
<br>UART chip, hard-wired with some external logic, to achieve a similar
result,
<br>but I didn't really understand them (I couldn't find enough background
<br>material about the inner workings of the UART chips). Has anyone
done any
<br>non-microprocessor MIDI stuff with any of those types of devices?
(6502,
<br>AY-1013, AY-1015, etc.) Do you know where I can find data sheets
on them?
<p>If any of you have built MIDI devices using discrete logic, I'd love
to see
<br>your circuits. Even if their purpose or function is completely
different
<br>than the one I have described, I'm sure that I would still learn something
<br>useful from them.
<p>Best regards,
<br>Michael Bacich
<p>P.S. - Yes, I know that MIDI Solutions makes a nice little box that
will do
<br>what I need done, but that wouldn't be DIY, would it?</blockquote>
</html>