Skip to main content
Question Refined & Clarified (Hopefully)
Source Link

I'm using an onboard parallel port on an otherwise disused laptop to try and sample the MIDI output of a very old keyboard. MIDI is a serial link at fixed 32 kbit/s, and so far i've managed to connect the output of the keyboard to the SELECT pin of the parallel port; however, i can't make sense of the data i get (it doesn't appear to conform to the MIDI spec), and i suspect that's because the signal is getting distorted somewhere along the way, or perhaps the parallel port isn't fast enough and is therefore missing some bits...

So what i'd like to ask is: Have i made a bad choice of input pin? Should i use some status line other than SELECT, or is it indifferent?

I've written a custom program in assembly which runs standalone, so there is no other task or OS to muck up the timings... The port itself is one of the later ones, supporting EPP/ECP, though i'm not sure whether i'm making use of those advanced modes... I'm simply sampling the status byte of the port in a tight loop.

Any advice?

P.S.: As per the comments below, i'll try to refine and clarify my query. I realise that connecting a MIDI Out port to a parallel port involves the use of an optocoupler; i'm using one of those cables that connect MIDI to a soundcard's gameport, and i believe it contains an optocoupler built-in already (since multimeter readings don't show direct connections between any of the pins on both ends). I know the cable works because i used it back in the era of soundcards (so, a long while ago).

So what i'd like to know, specifically, is whether a parallel port is fast enough to accurately read a 32 kbps bitstream on one of its status pins. I chose the SELECT pin, only because i assumed any input pin would do equally well. Should i have used another?

The parallel port in question is one of the later ones, right before laptops stopped coming with them altogether, and i can devote the full resources of the PC to the task (no other programs, not even an OS).

I'm using an onboard parallel port on an otherwise disused laptop to try and sample the MIDI output of a very old keyboard. MIDI is a serial link at fixed 32 kbit/s, and so far i've managed to connect the output of the keyboard to the SELECT pin of the parallel port; however, i can't make sense of the data i get (it doesn't appear to conform to the MIDI spec), and i suspect that's because the signal is getting distorted somewhere along the way, or perhaps the parallel port isn't fast enough and is therefore missing some bits...

So what i'd like to ask is: Have i made a bad choice of input pin? Should i use some status line other than SELECT, or is it indifferent?

I've written a custom program in assembly which runs standalone, so there is no other task or OS to muck up the timings... The port itself is one of the later ones, supporting EPP/ECP, though i'm not sure whether i'm making use of those advanced modes... I'm simply sampling the status byte of the port in a tight loop.

Any advice?

I'm using an onboard parallel port on an otherwise disused laptop to try and sample the MIDI output of a very old keyboard. MIDI is a serial link at fixed 32 kbit/s, and so far i've managed to connect the output of the keyboard to the SELECT pin of the parallel port; however, i can't make sense of the data i get (it doesn't appear to conform to the MIDI spec), and i suspect that's because the signal is getting distorted somewhere along the way, or perhaps the parallel port isn't fast enough and is therefore missing some bits...

So what i'd like to ask is: Have i made a bad choice of input pin? Should i use some status line other than SELECT, or is it indifferent?

I've written a custom program in assembly which runs standalone, so there is no other task or OS to muck up the timings... The port itself is one of the later ones, supporting EPP/ECP, though i'm not sure whether i'm making use of those advanced modes... I'm simply sampling the status byte of the port in a tight loop.

Any advice?

P.S.: As per the comments below, i'll try to refine and clarify my query. I realise that connecting a MIDI Out port to a parallel port involves the use of an optocoupler; i'm using one of those cables that connect MIDI to a soundcard's gameport, and i believe it contains an optocoupler built-in already (since multimeter readings don't show direct connections between any of the pins on both ends). I know the cable works because i used it back in the era of soundcards (so, a long while ago).

So what i'd like to know, specifically, is whether a parallel port is fast enough to accurately read a 32 kbps bitstream on one of its status pins. I chose the SELECT pin, only because i assumed any input pin would do equally well. Should i have used another?

The parallel port in question is one of the later ones, right before laptops stopped coming with them altogether, and i can devote the full resources of the PC to the task (no other programs, not even an OS).

Source Link

Sampling MIDI Via Parallel Port

I'm using an onboard parallel port on an otherwise disused laptop to try and sample the MIDI output of a very old keyboard. MIDI is a serial link at fixed 32 kbit/s, and so far i've managed to connect the output of the keyboard to the SELECT pin of the parallel port; however, i can't make sense of the data i get (it doesn't appear to conform to the MIDI spec), and i suspect that's because the signal is getting distorted somewhere along the way, or perhaps the parallel port isn't fast enough and is therefore missing some bits...

So what i'd like to ask is: Have i made a bad choice of input pin? Should i use some status line other than SELECT, or is it indifferent?

I've written a custom program in assembly which runs standalone, so there is no other task or OS to muck up the timings... The port itself is one of the later ones, supporting EPP/ECP, though i'm not sure whether i'm making use of those advanced modes... I'm simply sampling the status byte of the port in a tight loop.

Any advice?