kode54 / dumb

[Semi unmaintained] Dynamic Universal Music Bibliotheque - DUMB - Module/tracker based music format parser and player library -- Please consider using libopenmpt instead of this, it's considerably faster and produces similar or better rendering quality
Other
128 stars 26 forks source link

basement.it sounds garbled (silence and short bleeps) #57

Closed SimonN closed 7 years ago

SimonN commented 7 years ago

File: http://www.lixgame.com/etc/basement.it -- from the soundtrack of the cancelled Jazz Jackrabbit 3. Most files of that soundtrack play perfectly in DUMB. This one file doesn't.

Issue manifests in a small Allegro 5 program that calls DUMB master (6e924e69701ffc) as dumb_read_any(file, 0, 0).

Issue manifests slightly differently in DeaDBeeF that uses the DUMB plugin, version 1.0. The plugin says: "(C) 2009-2014, uses a fork of DUMB, Version 0.9.3". The issue here is: The file isn't recognized as a playable file at all. DeaDBeeF says: playlist load fail (basement.it)! failed to add file or folder basement.it.

File plays normally in VLC.

kode54 commented 7 years ago

I have examined this file and determined it to be broken. The current version of DUMB will not even load it.

The 22nd sample, Wave.FX.4, from U_WELCOM.XM, is truncated by 3871 bytes. All of the samples following it are completely missing.

I managed to find a copy of U_WELCOM.XM to replace that sample, which was a reversed version of the sample from the original module. But the filenames and sample names of the rest of the samples do not yield enough of a clue as to their origin, so they cannot be replaced.

If you want to use it as-is, delete samples 23 and on, leave 22 truncated, and resave with Schism Tracker. The sounds will be missing, but it should load. I don't know where Schism Tracker gets the sample data for those missing samples, since the file offsets clearly go past the end of the file.

SimonN commented 7 years ago

Thanks for the detailed analysis!

I was merely surprised that only DUMB rejected this file, and was worried whether DUMB had a bug, or the file. But if the file is as broken as you describe, then you're good in outright rejecting it.

It's just an unrelated bonus that VLC plays it somehow, not a bug in DUMB.

kode54 commented 7 years ago

It would be a nice effort by somebody to try contacting Alexander Brandon and locate a working copy of that file, if it still exists.

kode54 commented 7 years ago

Hey look, I have a present for you:

https://f.losno.co/basement.it.zip

Basically, basement.it and basement2.it use the same samples, so I just pasted the truncated sample data on from basement2.it, and it works. Enjoy.

E: Sadly, it appears that basement.it is just an incomplete version of basement2.it.

SimonN commented 7 years ago

Hah, thanks! It's a beautiful piece.

Good to have this mystery cleared, even if it turns out that basement2 obsoletes basement1. I'll keep both your file and basement2!