Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: AdPlug (Read 42306 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

AdPlug

Reply #25
Thanks for the responses, everyone! I utilized the tools that romor pointed out, and did indeed successfully extract the music. I then played it with SSPlayer, a player designed for System Shock. However, deus-ex is right in that the timing and instrumentation was off. A more grunt-work approach may be necessary (recording with DOSBox manually). It would be great to access the music directly instead of doing methods like this.

AdPlug

Reply #26
The timing for the XMI files in foo_midi should be spot on now, the only problem would be that they're designed for Adlib playback with custom instrument sets.

AdPlug

Reply #27
The timing for the XMI files in foo_midi should be spot on now, the only problem would be that they're designed for Adlib playback with custom instrument sets.


Ah, you're right; the timing is just fine. It is just the awkwardness of hearing banjos and telephone rings in placement of eerie synth!

AdPlug

Reply #28
hi all

i'm using foo_midi 1.141
some xmi files i have make foobar crashes (for the game "lands of lore" for the older ones here )
the same files play pretty fine in winamp but using winamp isn't an option

i'm wondering if i could upload one file and give a link here (just 10kb) for kode54 to have a look

is this ok ?

take care

AdPlug

Reply #29
Upload at will.


AdPlug

Reply #31
AdPlug does not handle those files, and foo_midi does not crash on them. I have fixed it so that it will read them now, though.

AdPlug

Reply #32
thanks for the fix, it seems "my" xmi are broken, i wasn't aware of that of course

take care

AdPlug

Reply #33
Not explicitly yours, but maybe the game's. The issue with several of these files seems to be that one of the main nested chunks lists a static number as its size instead of the actual size, and that the EVNT chunk for the main MIDI stream seems to be missing the zero byte after the FF/2F end of track meta event, even though it's included in the length field for that chunk. It's the latter problem which caused the actual parsing errors.

AdPlug

Reply #34
If I have this foo_input_adplug.dll and foo_midi.dll (both latest versions), can I do anything to force the AdPlug component to handle .lds files instead of the MIDI component?

AdPlug

Reply #35
Rename them to .ldsa.

AdPlug

Reply #36
Works great!  Thanks for the quick reply.

AdPlug

Reply #37
The same trick goes for .mid(a), .s3m(a), and .msc(a). Although, some day, I'll probably incorporate a passable (possibly tandem) AdLib emulation based MIDI driver into foo_midi, just for kicks. It will also support multiple loadable instrument banks, such as the widely used Fat Man set, featured in such games as Hocus Pocus, and included in the MSOPL driver. Or the Duke Nukem 3D patch kit. Or the Doom engine games, which had layered 2 operator instruments, and also had slight variations between different game franchises. I could probably adapt the MIDI driver from AdPlug to work with all of those, and also work under my own MIDI player loop.

My MIDI component utilizes MIDI parsers which turn various formats into basic multi-track MIDI sequence data in an internal format, with functions to turn that data either into a timestamped event stream, or a Standard MIDI File. All of the current player drivers, except for the disabled DXi player, use the event stream data. I just need a MIDI driver which is capable of accepting raw MIDI events, and rendering sample data between sets of events to simulate time passing. The only special case is the VSTi driver, which I moved out to its own process because some VST plug-ins are so crashtastic.

AdPlug

Reply #38
The same trick goes for .mid(a), .s3m(a), and .msc(a). Although, some day, I'll probably incorporate a passable (possibly tandem) AdLib emulation based MIDI driver into foo_midi, just for kicks. It will also support multiple loadable instrument banks, such as the widely used Fat Man set, featured in such games as Hocus Pocus, and included in the MSOPL driver.


So one can listen to adlib version of Ultima Underworld's *.xmi and they will sound exactly like in the game? 


I knew that this day will come! 


AdPlug

Reply #39
Thank you so much for this plugin!

I've always wanted to listen to music from the Xargon trilogy.

I realized that by renaming the music files (examples: SONG_1.XR3) to .cmf, this is possible.

The music is "exactly" what you hear in the game.

Great job! 

AdPlug

Reply #40
Any chance to play Westwood ADL files? The latest plugin version does not seem to support the extension while vanilla adplug/adplay do.

Perhaps it is simply disabled due to some known problems with format support in the library atm? Dune II files are a no-go in particular, which is a great disappointment.

P.S. Great plugin, thanks a lot!

AdPlug

Reply #41
Westwood ADL is disabled for that exact reason. I don't want to enable it until all supported files play without crashing.

AdPlug

Reply #42
Excuse me, we are the authors of the RIX decoder part of AdPlug. Recently we have modified our code. A bug was fixed to make our rix simulation more close to its original sound. Would you please update your codebase with upstream cvs and give us a test build?
Thank you very much!

AdPlug

Reply #43
Done.


AdPlug

Reply #45
Love the AdPlug plugin for foobar2000, I've noticed that it seems to have a more accurate overall sound than the Winamp build. Thanks for making it available.

One thing that would be nice to see on the input configuration is the ability to loop a song X number of times and have a fade out of X seconds. I love converting old game music into FLAC for my MP3 player, but it's not easy to do when my only options are play once or play indefinitely.

A lot of chiptune player designers have added the play X loops and fade out options, (DUMB Module Decoder, Game Emu Player, Highly Experimental, etc.), so a lot of people appreciate when they're added.

Keep up the great work!

AdPlug

Reply #46
The current design of AdPlug doesn't really afford me the loop start offset or loop length. It only reports when a track has looped once, and doesn't report where it has looped to.

AdPlug

Reply #47
The current design of AdPlug doesn't really afford me the loop start offset or loop length. It only reports when a track has looped once, and doesn't report where it has looped to.


Okay, thanks for looking into it. And keep up the amazing work, you're a coding machine!

AdPlug

Reply #48
Replay gain support would be nice. Would it be possible to add that?

AdPlug

Reply #49
I was recently listening to the Tyrian soundtrack (Loudness format, *.lds) and found that the music sounded pretty bad, so I played it in the old Winamp AdPlug, and it sounded accurate. After trial and error of disabling plugins, I found that the problem was with the MIDI plugin taking precedence and playing the music inaccurately. I came here and found your work-around, changed the file extensions to *.ldsa, and everything now sounds spot-on again. But this made me think, why do you even bother with having LDS format supported in the MIDI plugin when AdPlug plays the sound properly?

Anyway, thank you so much for porting this plugin and being an all-around awesome coder!