dreamblaster wrote:Hi
OPL3 synth on parallel port
The first version prototype is ready and looks like this :
So, for the OPL3, you're not going for socketed chips like on the OPL2 ?
(SMD IC Socket Adapter ? What's the correct terminology for these ?)
Do you think I would be possible to leave contact point on the PCB to tap into the digital stream if somebody wants to record the output of the OPL3 before the analog conversion ?
dreamblaster wrote:Great Hierophant wrote:Was any progress made with getting the OPL2LPT working with a USB to Parallel Port adapter or patching DOSBox to direct its output to the LPT port?
{...}
but I could not yet get it to work with my USBLPT board.
Technically, it should not be possible to get a OPLxLPT-like device to work with an USBLPT port:
- ISA/PCI parallel port are bit-banging interfaces: you can (also) precisely control the state of any single line (the 8 data bits, the status lines, etc.).
(Though most later standards like IEEE 1284 relieve you from doing such low-level work and define modes (ECP) to automate everything with DMA to transfer data to/from peripherals such as LPT-attached diskdrives, etc., you still have access to the DUMB mode where you control every pin manually)
That's what enables dreamblaster, raph and pdewacht to simulate an ISA bus by precisely playing with the output of each pin of the parallel port (using the LPT's INIT signal to simluate an ISA "read" signal, the LPT STROBE and SELECT to handle the address, AUTOFEED to write, etc.)
- Whereas USB-Printer ports are usually implemented in a way which isn't dissimilar to how USB-Serial works : you send a flux of data packets, and the chip takes care to output it to the printer, with a couple of IOCTL thrown to handle extra status. You don't control directly the pins, the chips handles them for you.
This makes impossible to successfully use such adapters
(though it could be possible to use the "STROBE" pin that is automatically cycled on data output as an ISA read, hope that the timings are close enough for the OPLx to react, find if the timing of some status line is good enough to be used for the address, etc. : still it's a completely different reconfiguration of the parallel port (so new PC or a huge pin remmaper in the middle) and still hoping hat the timings of the USB chips are close enough to be workable)
There is an USB attached bit-banging device, though : It's called an Arduino 😜
Arduinos got a ton of freely controllable I/O Pins.
And as a bonus, it's a full blown micro-controller on which can upload small bits of code. So you can let the Arduino handle all the address selection, ISA Read/Write Cycling, slow timings of the OPL2, etc. and design a simple protocol where you only send <"register";"value"> pairs to the Arduino.
As an extra bonus, if it still fits within the cycle budget of the Arduino, you could tap into the digital stream between the OPLx and the DAC and store the data (on an SD card ?), and do a nice conversion of the FP16 / 49kHz stream to whatever you need, rather than counting on the DAC->ADC analog loop.