Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request: YM2151 (OPM) #47

Open
bryc opened this issue Mar 4, 2019 · 3 comments
Open

Request: YM2151 (OPM) #47

bryc opened this issue Mar 4, 2019 · 3 comments

Comments

@bryc
Copy link

bryc commented Mar 4, 2019

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

  • Noise
  • Coarse detune (Detune 2)
  • Multiple LFO waveforms, higher fidelity LFO speed etc.
  • Amplitude/Pitch modulation depth

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
Copy link
Owner

jpcima commented Mar 4, 2019

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

  • the YM2151 has emulators in Neko Project fmgen and MAME
  • the *.opm file format has loading ability in the OPN2BankEditor, suggesting some functionality overlap between OPM & OPN families

@Wohlstand
Copy link

Wohlstand commented Mar 4, 2019

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
Copy link
Author

bryc commented Mar 5, 2019

@jpcima Okay did not realize that - moving that issue to Wohlstand/libOPNMIDI#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. ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants