Skip to main content

Topic: AdPlug (Read 29279 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Vagabond
  • [*]
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.

  • kode54
  • [*][*][*][*][*]
  • Administrator
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.

  • Vagabond
  • [*]
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!

  • kheops
  • [*][*]
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

  • kode54
  • [*][*][*][*][*]
  • Administrator
AdPlug
Reply #29
Upload at will.

  • kheops
  • [*][*]
AdPlug
Reply #30

  • kode54
  • [*][*][*][*][*]
  • Administrator
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.

  • kheops
  • [*][*]
AdPlug
Reply #32
thanks for the fix, it seems "my" xmi are broken, i wasn't aware of that of course

take care

  • kode54
  • [*][*][*][*][*]
  • Administrator
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.

  • kcowolf
  • [*]
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?

  • kode54
  • [*][*][*][*][*]
  • Administrator
AdPlug
Reply #35
Rename them to .ldsa.

  • kcowolf
  • [*]
AdPlug
Reply #36
Works great!  Thanks for the quick reply.

  • kode54
  • [*][*][*][*][*]
  • Administrator
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.
  • Last Edit: 03 February, 2012, 11:16:13 PM by kode54

  • Nahkranoth
  • [*][*]
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! 


  • newbie!(*)
  • [*]
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! 

  • cosmos816
  • [*]
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!

  • kode54
  • [*][*][*][*][*]
  • Administrator
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.

  • C_Gear
  • [*]
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!
  • Last Edit: 23 September, 2012, 10:01:30 AM by C_Gear

  • kode54
  • [*][*][*][*][*]
  • Administrator
AdPlug
Reply #43
Done.

  • C_Gear
  • [*]
AdPlug
Reply #44
Done.

Thank you very much! The rix simulation is closer to its original sound since V1.41. 

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!

  • kode54
  • [*][*][*][*][*]
  • Administrator
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!

  • Wormbo
  • [*]
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!