DeaDBeeF-Player / deadbeef

DeaDBeeF Player
https://deadbeef.sourceforge.io/
Other
1.65k stars 178 forks source link

adplug: update upstream library and add OPL synth options #3129

Closed thomasjepp closed 3 weeks ago

thomasjepp commented 2 months ago

Hi!

I was trying to play back some CMF files using DeaDBeeF and hit some audio quality issues with the adplug plugin.

To resolve, I've updated the plugin to the latest upstream - I've not looked too hard at the upstream changes, they're quite substantial - and added support for several more synth types. I've set the default to Nuked OPL3, which seems to be the highest quality/most accurate. It looks like the updated upstream library supports some extra file formats, but I've not enabled these as I don't have any example files to confirm they're functional.

From my checking this looks okay still for LGPL v2.1 - there are options to use the MAME upstream OPL plugin that would affect the license, so I've avoided this.

A full list of changes is below:

Please let me know if you have any comments or feedback - my C is a little rusty!

thomasjepp commented 2 months ago

libbinio might need updating, but seems functional for me

I've only tested building this on macOS - not on Linux or Windows.

Oleksiy-Yakovenko commented 2 months ago

One important thing that's easy to overlook (and hard to do) is to see whether all patches that were applied on top of previous version of adplug need to be re-applied after updating. If they are not applied - some bugs will return, and some optimizations will be lost.

dmitrysmagin commented 1 month ago

Come on, give this patch a go! Adplug was updated with new music formats and bug fixes. Most probably, old optimizations are no longer relevant.

Oleksiy-Yakovenko commented 1 month ago

I'm temporarily unavailable for large patches. I'll have a good look in about 1-2 weeks.

Oleksiy-Yakovenko commented 3 weeks ago

I'll merge it from another branch, where I'm applying deadbeef patches.

Oleksiy-Yakovenko commented 3 weeks ago

Merged

thomasjepp commented 3 weeks ago

Apologies for not testing on Linux & rebasing deadbeef's patches, real life caught up!

I appreciate you merging this though, thanks!