use Nuked OPL3 emulator #2
Comments
|
I did some experiment with it, but wasn't sent result yet, it seems more accurate, but I still need to optimize something. Also I would have both of them but switch by macro. I need to test it on phones too to be sure it will don't lag on them. (especially SGS III with 1.2 Ghz quad core ARM cpu). |
|
Just small comparison of DOOM hihats generated by DosBox's (current) and by Nuke (register Management still be same): |
|
involving @nukeykt |
|
Doom drums are quite frequency sensitive. |
|
@nukeykt , okay, thanks for hint, much better: P.S. that coefficient was before I forked original ADLMIDI player |
|
Just pushed everything I made, now I will test this on my phone how it will lag it. |
|
Okay, on phone it lags a lot, and sound is choppy. Seems is really need optimize it for best performance as possible to keep accuracy same, even one chip is processed. On same device is 4 virtual chips of DosBox are processed and sound playing fine. Used Open SL ES api for wave output. I'll try to optimize it as possible to look what will happen. |
|
I'll give it a try |
|
P.S. What you are mean "crashing sound"? Which sample rate you are requesting? Also seems you may requested samples incorrectly. It spawns signed 16bit stereo. In the bottom of adlmidi.cpp (or in the midiplay fodder) you will find SDL Audio playing example which implements tiny console tool to test library. |
|
I just updated my MIDI Player using your changes and it works just fine on my Nexus 5X https://play.google.com/store/apps/details?id=net.volcanomobile.midiplayer |
|
go in the Settings and enable ADLMIDI |
|
just tested on a Nexus 4, and indeed, sound is choopy. |
|
Just installed, waiting until it will fetch all my MIDIs (I have a huge and deep folders tree with lots of MIDIs in my collection), and it still think long time... Ok, just fetched, so long... But work have been done. I have CianogenMod 13 (based on Android 6.0) installed on SGS 3 (latest official for my phone 4.3 is fat, slow and glitchy) (1 GB official vs ~300 MB custom firmware). I though to make at runtime selection, but some notices I have: ... but, wait, I can have polymorphic class for that to don't change code a lot and just swap pointers while toggling emulator type. Anyway I like Nuked synth, but I don't like it's CPU requirement which I want to fix. P.S. I toggled Duke Nukem bank, and your app still use 0'th when I jumping to another melody. |
|
Another P.S. Just trying play Corritor 7's IMF files (which are as every IMF file, a raw sequence of chip commands which targeted to real chip and if emulator doesn't plays them right, seems emulator doesn't correctly processing them), which by unknown reasons had silent melodic part on DosBox's OPL, but playing fine on Nuked OPL, so, that really makes sense! Anyway, by unknown reasons, snare drum on "dukeiia.imf" from Duke Nukem II sounds like is not correct (more like agogo) or I really need play it on my real Sound Blaster 16 card... Or, @nukeykt , what's wrong I made with macros experiment Or is it a one of "artifacts" of resampler (which you noticed on the Vogons before)? Or nothing to worry because real chip plays same? (chip commands which stored in IMF as is as was in original game, and just sequentially passed into emulator) IMF file itself (I converted it into Wolfensten 3D hz rate): http://wohlsoft.ru/docs/Music/Misc/dukeiia.imf |
|
Nuked OPL3 sounds exactly like real OPL3: |
|
Okay, so, agogo-like snare is not problem and that fine, so, thanks for the proof! |
|
Closed because already implemented |
NukedOPL3 emulator has a very good emulation (close to real OPL3) and is LGPL licensed.
There is a version in adplug (https://github.com/adplug/adplug) which I integrated.
I gave it a quick shot for libADLMIDI, but the result was very bad (crashing sound).
The text was updated successfully, but these errors were encountered: