[sdiy] lpt polyphonic interface

carsten at analog-monster.de carsten at analog-monster.de
Mon Nov 11 09:49:02 CET 2002


Hi,

if I understood the problem correctly it seems to be a latch timing
problem.

I had this in my home-brewed polyphonic keyboard interface also. A key
event (bit combination) had to be transferred via the 74245 bus
transceiver to a 74373 latch, but because of a time delay caused by two
4051 multiplexer which were also driven by the master clock the
resulting key event came some degrees "later" compared to the master
clock itself, and in my circuit this event had to be "anded" with the
master clock to get a set impulse for the bustransceiver / latch
combination, but the "and" resulted two pulses causing an error.

The duration of the key event (high level) was a complete master clock
cycle. This anded with the master clock should result a "1" during the
positive half wave of the clock. But because of the time delay the
keyboard event lowered when the next positive half wave of the master
clock already startet, and the and function resulted a second small
spike which was recognized by the rest of the circuit.

I solved the problem by using 7414 inverting Schmitt-Triggers delaying
the master clock, and everything worked fine.

Best

Carsten
http://www.analog-monster.de

Karl Ekdahl <_nial_ at yahoo.com> schrieb am 08.11.2002, 14:32:20:
> Hi everyone!
> 
> I'm currently building a lpt (computer parallel port)
> controlled interface controllig several polyphonic
> channels. Basically, this interface will be able to
> select channel and select note on / note off.
> 
> I use the 8-bits from the LPT port like this
> 
> 7th bit = 0 = set key : bit 0-5 forms the key to set a
> value for and bit 6 is 0 for note off and 1 for note
> on.
> 
> 7th bit = 1 = set channel : bit 0-3 is the channel to
> set.
> 
> Select channel simply sets a multiplexer with latches
> that sets an enable '1' to the selected channel. While
> setting a key, key value and note state is send to all
> channels, though only the one selected by the channel
> multiplexer should response.
> 
> Each note on each channel has a output in a 4099 latch
> that is '1' for on and '0' for off. While bit 7 is '1'
> i set WRITE DISABLE to '1' on the 4099 thus disabling
> input since the channel number and key number has the
> same lines.
> 
> The problem is like this:
> I set channel 0 (outputting 10000000) and sets key 0
> to ON (outputting 01000000), everything works OK so
> far. If i then set key 0 to OFF (outputting 00000000),
> key 0 is OFF, BUT if i after that tries to set key 1
> to ON (outputting 01000001) either only key 0 is ON or
> both key 0 is ON AND key 1 is ON.
> 
> I managed to solve this the software way by doing like
> this:
> 
> Set channel 0, (10000000).
> 
> Set key 0 to ON (01000000).
> Disable key write but PRESERVE the old key value and
> key state (11000000).
> Change channel to old channel (10000000).
> 
> Set key 0 to OFF (00000000).
> Disable key write but preserve the old key value and
> state (10000000).
> Change channel to old channel (10000000).
> 
> Set key 1 to ON (01000001).
> Disable key write but preserve the old key value and
> state (11000001).
> Change channel to old channel (10000000).
> 
> This works, but isn't especially elegant. Could anyone
> please give me a hint how to prevent the latches to
> write using hardware?
> 
> I belive this could have been some comfusing.. :)
> 
> /Karl
> 
> _____________________________________________________
> Gratis e-mail resten av livet på www.yahoo.se/mail
> Busenkelt!



More information about the Synth-diy mailing list