jpcima / ADLplug

FM Chip Synthesizer — OPL & OPN — VST/LV2/Standalone
Boost Software License 1.0
439 stars 22 forks source link

Request: YM2151 (OPM) #47

Open bryc opened 5 years ago

bryc commented 5 years ago

While OPN2 is nice, it lacks some features that the original OPM had:

So some sounds on arcade games, or FB-01/DX21 sounds do not translate 1:1. So it would be great if those features were also supported. Perhaps as an OPMMIDI version I suppose. Otherwise great software!

jpcima commented 5 years ago

Hi @bryc. There has been some discussion on idea of adding other chips with libOPNMIDI's author, among which is OPM. notify @Wohlstand

No work has been made about this chip currently, and I have researched nowhere enough to tell if it the driver must be integrated in libOPNMIDI or remade from scratch.

things I know

Wohlstand commented 5 years ago

It's also dependent how big difference between OPN and OPM, so, bank editor can be based on OPN2-BE and can be used for both OPN and OPM (for case of OPM, show extra controls are absence on OPN2 or opposite). For case of playback, looks like OPN2-BE will need to have second chipset and second generator (or same, but with subclassing) which will pass instrument data to the necessary chip emulator. What about playback, maybe same. Anyway, for a first thing I will need the complete OPM specification to be able tweak around the chip and features.

Anyway, I have this: ym2151datasheet.pdf

It contains registers map but doesn't contains complete explanation of their sense... Otherwise, guess them and probe.

bryc commented 5 years ago

@jpcima Okay did not realize that - moving that issue to https://github.com/Wohlstand/libOPNMIDI/issues/87. I suppose this issue can be closed or repurposed for implementing any changes downstream ?

the *.opm file format has loading ability in the OPN2BankEditor, suggesting some functionality overlap between OPM & OPN families

Yes, there is much overlap between the two chips. I made a script that converts raw YM2151 registers to bank formats like OPM. Then I loaded them in VOPMex and GENNY (click to hear .opus). They're almost identical. ~There is some distortion in GENNY but that's probably a bug in that plugin (it has been abandoned)~ That's actually 'ladder effect'. Even VOPMex is kinda buggy/incorrect. Which is why we need solutions like ADLplug and libOPNMIDI. ;)