Skip to main content
Topic: Module decoder (Read 4854 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Module decoder

Peter, why do you still use your own module engine in Fb2K? If I'm correct, it plays modules just like Winamp 2.X did and Winamp's module plugins was damned by many music writers, as it's known to play music completely wrong. Even now I can hear this old known harsh sound...
There's a great BASS.DLL library available, which is the hearth of XMPlay, one of the most accurate module players. Why don't you use this one instead? IMO it's a much better idea, than supporting half-dead engine.

Thanks.
P.S.: nice to see, that foobar is getting better and better. Now it's almost usable

Module decoder

Reply #1
doesnt foobar use modplug's engine?  The options are identical iirc.


Module decoder

Reply #3
Quote
doesnt foobar use modplug's engine?  The options are identical iirc.

the mod plugin uses libmodplug, which is not simillar to Modplug Tracker/Player/Browser Plugin. It has playback problems those don't have. Not much can be done about the plugin, the plugin is great, the libraries however need fixes and that's another story.
[span style='font-size:8pt;line-height:100%']before people will say the previous, mikmod plugin was better, no, it definately had many problems as well, which personally i find more annoying than of this plugin.[/span]

Module decoder

Reply #4
Damn...
You're right. Just loaded my test song, written in ModPlug. It clearly shows, that Modplug's engine bugs are still there. But it sounds different from other Modplug software (used their tracker and player for a couple of years). Agree: not too annoying, as mikmod, but still not accurate.

Module decoder

Reply #5
...and it plays things too fast and at the wrong pitch if the sampling rate is set higher than 48kHz.

:'(  >_< 
godzilla525

Module decoder

Reply #6
modplug.. mikamp.... bleh.. There's gotta be better alternatives available. 

Module decoder

Reply #7
Quote
modplug.. mikamp.... bleh.. There's gotta be better alternatives available. 

Really? You don't say?
Do you seriously think if there was a better alternative, with a proper license, kode54, or someone else wouldn't have used it by now?
Got any suggestion anyone?

Module decoder

Reply #8
People have been saying the BASS library from xmplay is the one to use.  I have no idea whether its license is compatible with fb2k though.  But I do agree xmplay sounds great.

Module decoder

Reply #9
BASSMOD gets my approval... plays back UMX/IT files much better than modplug. Here's the license ::

Quote
The BASSMOD library is free for non-money making use... if you are
not charging for the software, then you can use BASS in it for free.
A mention in the credits would be nice though!

This software is provided "as is", without warranty of ANY KIND,
either expressed or implied, including but not limited to the implied
warranties of merchantability and/or fitness for a particular purpose.
The author shall NOT be held liable for ANY damage to you, your
computer, or to anyone or anything else, that may result from its use,
or misuse. Basically, you use it at YOUR OWN RISK.

Usage of BASSMOD indicates that you agree to the above conditions.

You may freely distribute the BASSMOD package as long as NO FEE is
charged and all the files remain INTACT AND UNMODIFIED.


If it's in any way incompatible with fb2k's licence, maybe it could be made available as an optional third-party replacement for the one included with foobar?

Module decoder

Reply #10
Quote
<SK1> kode54, i assume you knew BASS for a long time, what kept you was license or something or just time?
<kode54> SK1: various complications
<kode54> I didn't like not knowing the resampling algorithm
<kode54> I didn't think I could actually pull rendered samples out instead of it playing on its own through dsound
<kode54> on the contrary, it can most definately render
<kode54> and it also supports multi instance (multiple streams/channels)
<kode54> without brokenness of libmodplug
<kode54> libmodplug multiinstance was b0rk
<kode54> this sucker is fast too
<SK1> so, basically those were the reasons? not possible licensing probs?
<kode54> I RG scanned all of Nether.umx in about 10 seconds


Licensing issues were not the problem in this case.
The current module player plugin based on libmodplug will be replaced by this one, the current one will be kept as optional download.
The new plugin is in finalizing stages, no assumption as to when it will be availible, but shouldn't be too long. It will be announced.

Module decoder

Reply #11
Go to kode54's foobar2000 page and download the new plugin!

edit:
Note that the plugin is still very new, and currently umx files can't be loaded and reverb should be added. As well as playback modes support.
playback modes means
Quote
Norm/FT2/PT1 MOD - decides how MOD files should be played:
FT2 MOD = FT2 plays MODs slightly differently from the convention, infact most trackers play MODs differently from eachother! Anyway, if you want to hear MOD files as FT2 plays them, then select this.
PT1 MOD = This plays MODs as the original ProTracker did, so now youcan relive those early Amiga days!

Thanks to temporal' for this info.

Module decoder

Reply #12
Oktazlyzer support is _STILL_ bad.

Module decoder

Reply #13
Quote
Oktazlyzer support is _STILL_ bad.

BASS does not have .OKT modules support (an amiga module format). libmodplug has support, but most probably very broken.

Module decoder

Reply #14
update: .umx support added

Module decoder

Reply #15
OK, I admit that BASS is a damn good engine. But, it's missing something, PSM support. I know, PSMs arn't exactly well known. The libmodplug engine did have support, buggy, but pretty good support. I'd mostly like PSM support so I can hear the background music from Jazz Jackrabbit and Epic Pinball. Heh, old school I know, but isn't that what most Modules are now? More or less old school? I know I could just use the libmodplug engine and convert them to say, OGG. But that's an extra step. Also, the filesize is bigger, you don't get the looping, etc. Heh, if I could code at all, what I'd do is just pull the PSM decoder from libmodplug and put it in it's own plugin.

Guess till then I'll just play my MODs, XMs, ITs, etc in Foobar using BASS and my PSMs in ModPlug Player.

*Sigh* Just thought I'd toss in my $0.02
"It's the panties fault! The panties made me a pervert!"

Module decoder

Reply #16
Quote
OK, I admit that BASS is a damn good engine. But, it's missing something, PSM support. I know, PSMs arn't exactly well known. The libmodplug engine did have support, buggy, but pretty good support. I'd mostly like PSM support so I can hear the background music from Jazz Jackrabbit and Epic Pinball. Heh, old school I know, but isn't that what most Modules are now? More or less old school? I know I could just use the libmodplug engine and convert them to say, OGG. But that's an extra step. Also, the filesize is bigger, you don't get the looping, etc. Heh, if I could code at all, what I'd do is just pull the PSM decoder from libmodplug and put it in it's own plugin.

Guess till then I'll just play my MODs, XMs, ITs, etc in Foobar using BASS and my PSMs in ModPlug Player.

*Sigh* Just thought I'd toss in my $0.02

libmodplug PSM support is broken. I managed to get it to a decent state with my copy of the library, but it still cannot read default pan positions and probably gets several of the pitch sliding effects wrong. I'll post converted modules somewhere when I have finished touching them up. Perhaps later? (And not my web host, which only has about 600KB of free space left.)

Expect files converted to .IT, or .S3M, depending on what the source module does with its initial pan positions. Said information collected by using play1.exe from EPICTEST. Took me a lot of tweaking to get the slides right. (Or close enough.)

The only stand-alone player I know of that supports the default pan positions properly is MASI itself. You can try searching around for EPICTEST.ZIP. The bundled converter doesn't convert effects to the same scale that the library uses, so pitch slide effects will end up wrong... not a good reference for reverse engineering...

EDIT: Thought I'd point out that libmodplug's PSM support is no more broken than ModPlug Tracker/Player's PSM support. Try song1.psm from Epic Pinball, listen for the lead synth pitch sliding around. Another fine example is song7.psm.

Anyway, I already have Epic Pinball and One Must Fall 2097 converted, just need to finish with Jazz Jackrabbit. Anything else? (Wait, I know there's Sinaria, but it uses an incompatible version of MASI and PSM.)

397,368 omf.rar
734,336 epicpin.rar

EDIT AGAIN: Wow, looks like those files were popular, my bandwidth quota shot up by, correction: 627MB overnight. Their system notified me when I shot over 1024MB, yet it appears they won't be shutting me down until midnight, so it's crept 227MB over quota. OMG, and I just realized epicpin.rar was autodeleted or smth, guess it went over my space quota from trying to upload that file last night. Now it's there until whenever Earthlink gets around to shutting the site down.

Module decoder

Reply #17
I can't believe what the UMX folder sounds like.  (w00t) That's incredible!! Phantom.umx seems to trip it up, though, causing a system-wide jerky slowdown after the end at 6:20 or so and thinking the file is 8:41.

Thankfully there aren't any pitch/speed issues at 96kHz.

(Edit:  I'm going to turn music off in Unreal Tournament and load the umx tracks up into foobar instead...  this MOD decoder plugin sounds WAY better!  )
godzilla525

Module decoder

Reply #18
this plugin only plays the first subsong of deus ex songs.  the old libmodplug played through the entire track, though the time display was wrong (displayed time of the first subsong but played well past it)

Module decoder

Reply #19
I've already asked Ian about adding an extra feature to the music load function for that. I could add start-on-order function, perhaps allow you to manually edit playlists so you can have one entry start on a specific pattern by using a different sub-song, but total length will still be for the first song... not to mention that seeking will throw you somewhere into the first song as well. The extra feature I've asked about is loading and seeking to a specific pattern from the start, or the ability to recalculate length and seek table from the current position, so I can seek to wherever I want before playing.

Module decoder

Reply #20
the way in_mod's (by x-fixer) playlist function works would be perfect.  you can specify seperate playlist entries, starting on different orders, with unique titles, and even specify number of loops per playlist entry.  Too bad in_mod doesn't sound anywhere near as good as BASS.

Module decoder

Reply #21
Quote
you can specify seperate playlist entries starting on different orders

Easy to implement the sub-songs to allow you to manually edit a playlist file, duplicate entries for the same module, set different sub-song numbers on each one. Or would you rather manually type a path URL into the Open Location box?

Quote
with unique titles

Not so easy.

Quote
specify number of loops per playlist entry

Also not easy, as BASS only has loop on, or loop off. I could specify a flag to make it signal whenever it loops, though.

I'll try adding subsong start, but length and seeking will be broken. You will be able to add unique titles to the metadata for each subsong, though they won't be stored in the playlist. (And when the system eventually supports length/seektable calculation for multiple start positions, reloading the info will get you the new length, but will erase those titles you added.)

 
SimplePortal 1.0.0 RC1 © 2008-2019