HydrogenAudio

Hosted Forums => foobar2000 => 3rd Party Plugins - (fb2k) => Topic started by: MarkP on 2022-12-11 17:36:16

Title: foo_adplug
Post by: MarkP on 2022-12-11 17:36:16
Here's my first contribution to the world of Foobar2000, having enjoyed it for so long. It's an updated foo_input_adplug component, based on the great original work by Kode54, so you can continue to enjoy your DOSBox and MAME classics in the 64bit world. The changes have been so extensive since the last version of the source that I could find, that I have given it it's own new name, foo_adplug, in line with the more modern naming convention, and is at v1.1 as of today.

Highlights:

For developers:
- I've updated the code to compile against the very latest SDK.
- I've moved the plugin to the VS2022 Toolchain and Windows 10 SDK.
- I've tidied up the code and brought things in line with the latest SDK foo_sample where I can.
- I'm not an experienced C coder, so please don't judge my efforts too harshly! 😅
- The full changelog is in the source.

Other notes:
- Plugin priority should be automatically set to low, as foo_adplug will also play AdLib Tracker S3Ms. I expect most people will have Amiga S3Ms they want to prioritise.
- MIDI support has been removed, there are better plugins for that (foo_midi).
- Built in tagging has been removed, there are better plugins for that (foo_external_tags).
- The standalone DOSBox core has been removed, as AdPlug now contains this itself (WoodyOPL).
- Built-in resampling has been removed, FB2K does this itself.

Known issues:
- Jarek Burczynski's OPL emulator only renders to the left channel for now.

Enjoy!
Title: Re: foo_adplug
Post by: MarkP on 2022-12-11 20:16:15
A quick update to v1.2, to fix a version numbering issue.
Title: Re: foo_adplug
Post by: MarkP on 2023-02-09 12:33:10
Are there any Adlib fans who would be interested in RetroWave OPL3 Express support being added to this?
Title: Re: foo_adplug
Post by: MarkP on 2023-05-07 20:57:20
Now at v1.2.1

Changes:
 - Built against the latest Foobar2000 SDK following the Foobar2000 v2.0 release.
 - Includes ARM64EC binary (in addition to x86 and x64). This is untested as I don't have access to an ARM device, feedback appreciated.
 - No longer uses the Powershell command 'Compress-Archive' to build the plugin, as this appears to make a ZIP incompatible with fb2k's plugin installation process.

Title: Re: foo_adplug
Post by: funnydog95 on 2023-08-19 18:05:16
neat rewrite. absolutely baffled by the omission of the "play indefinitely" function from original adplug though as tracks now no longer loop flawlessly.
Title: Re: foo_adplug
Post by: UELong on 2023-08-24 21:18:27
Could I ask a stupid question?  What exactly is this component?  Willing to try anything, but I'm just not sure what it is.  Thanks.
Title: Re: foo_adplug
Post by: MarkP on 2023-08-24 21:38:33
It provides a selection of software synthesizers that generate audio matching the output from the Yamaha OPL series of sound chips, directly from the music source files. Usually these source files come from MS-DOS era games, or from direct captures of register writes to those chips. They contain note data (like a MIDI file), and FM synthesis parameters to define the sounds (rather than samples).

These chips were commonly used on DOS soundcards, such as the SoundBlaster Pro.

In short, if you're into DOS gaming, and want to enjoy music from that era without running the games, you can use this plugin to play the games audio files. It also so happens a huge number of arcade machines used this chips too, so audio can be played in a similar manner.
Title: Re: foo_adplug
Post by: MarkP on 2023-08-25 10:58:02
Now at v1.2.2

Includes x64, x86 and ARM64EC binaries.

Changes:
 - Built against the latest Foobar2000 SDK (2022-05-10)
 - Pulls the latest changes from AdPlug master to 6ea36d6.
    Key changes are:

RIX: Subsongs did not work as expected
RIX: Add *.MKF as valid file extension for Softstar RIX OPL Music.
CMF: Fix typo in comparison, this fixes 'slowdown' of certain CMF files
Loader for .mtr tunes (Master Tracker)
Add player for PIS format (Beni Tracker)
LDS: protect patterns[] against overflow
Updated Nuked to the latest master
Reality tracker 1.0 files expects dual OPL2
A2M files: try to "repair" files that have a broken order pattern list.


Title: Re: foo_adplug
Post by: Supermansaga on 2023-08-28 05:46:51
So this isn't the same as https://www.foobar2000.org/components/view/foo_input_adplug which only supports x86 32bit. Shouldn't OP manage to publish onto "components" at https://www.foobar2000.org/components to educate more people about its existence? This is so great!!!!!!!!!!!!!!!!!!!! I now have only one reason left to keep the foobar2000 v2.1 x86 32bit version which is to play fmpmd PC9801 music files.

May OP also look into that plugin? https://ux.getuploader.com/foobar2000/download/31/foo_input_fmpmd_v0.8.0.15.zip. As the Japanese author(s) are totally irresponsive, I have run out of my tricks. ChatGPT couldn't help me convert the code into x64 compatible. Should I pay for ChatGPT plus?
Title: Re: foo_adplug
Post by: pqyt on 2023-08-28 06:00:15
I now have only one reason left to keep the foobar2000 v2.1 x86 32bit version which is to play fmpmd PC9801 music files.

Have a look at https://www.foobar2000.org/components/view/foo_input_pmd
Title: Re: foo_adplug
Post by: Supermansaga on 2023-08-29 19:56:21
I now have only one reason left to keep the foobar2000 v2.1 x86 32bit version which is to play fmpmd PC9801 music files.

Have a look at https://www.foobar2000.org/components/view/foo_input_pmd


I totally didn't expect this. It totally works!!!! Please see my response to your more dedicated thread at https://hydrogenaud.io/index.php/topic,124426.new.html. You have heard my plea finally. Deeply grateful. Now I have no need to keep the x86 foobar2000 v2.1
Title: Re: foo_adplug
Post by: MarkP on 2023-09-01 12:02:40
Shouldn't OP manage to publish onto "components" at https://www.foobar2000.org/components to educate more people about its existence?
Thanks! but unfortunately I don't have the deep technical knowledge to really fix complex issues, or keep it up to date on a regular schedule.
Title: Re: foo_adplug
Post by: Supermansaga on 2024-03-30 03:11:15
the original adplug is now v1.56 in Oct 2023 and finally supports x64. What does that mean compared with the alternative at 1.2.2? Thanks.
Title: Re: foo_adplug
Post by: C_Gear on 2024-04-09 14:23:56
Excuse me:-)

The function "set_offset(double offset)"of AdPlug Core doesn't seem to have a corresponding setting option added to configure page yet? It is required by certain AdLib instrument to sound correctly in surroundOPL mode.

Its default value is like this:
#define FREQ_OFFSET 128.0

But for a special instrument, the default value makes the sound of the right channel incorrect. A larger value like 384.0 works well.

Could I expect it in the next release? Thanks so much!

This is the context:
https://github.com/adplug/adplug/pull/73

Title: Re: foo_adplug
Post by: C_Gear on 2024-04-09 14:39:01
I just tested v1.2.2 x86, and found problems in Nuked OPL3 core.

Volume levels seem to be very high, causing distortion on quite a few loud tracks.
Some of the percussion tones appear wrong.

Would you please have a check before the next release? Thanks so much!