Wohlstand / libADLMIDI

A Software MIDI Synthesizer library with OPL3 (YMF262) emulator
GNU Lesser General Public License v3.0
178 stars 17 forks source link

OPL3 Duo support #246

Open sneakernets opened 3 years ago

sneakernets commented 3 years ago

@Wohlstand and I were discussing the possibility of supporting this board directly through Raspberry Pi GPIO and through the Arduino Interface. Filing it as an issue so I won't forget about it. Pinging @DhrBaksteen just in case. I'm confident that the capability is already present, the only challenge is the glue code.

Wohlstand commented 3 years ago

I will need some help against the protocol: the supported OPL2 board does use the protocol with a reduced register address size, which is not suitable for OPL3 that uses bigger address number values. So, I will need to use another protocol.

DhrBaksteen commented 3 years ago

I'm not aware how your library works @Wohlstand, but if it runs on a Raspberry Pi then you can communicate directly with the OPL3 Duo board. Data is sent to the board using an SPI interface and a few extra IO lines to select chip, bank, register / data etc.

If the intention is to have an Arduino in between as a serial interface then for the OPL3 Duo board you can use the Nuke.YKT protocol to send the data. The 2nd OPL3 chip can be selected by setting bit 3 of the first byte if this is needed. https://github.com/DhrBaksteen/ArduinoOPL2/wiki/Nuke.YKT's-OPL3-protocol

Let me know in case I can help out.

Wohlstand commented 3 years ago

My libADLMIDI right now is able to be built for DOS and is able to work on a DOS computer with real sound cards with the chip. So, I could make a similar thing work on the board but use a different hardware protocol than the DOS-ish.