Java MOD/XM Playback

How annoying, the native alBufferData() function does require you to specify the byte-ordering, but that isn’t exposed. That change would break the Javasound player , Kev, unless you also do a nativeOrder() check in the player application when setting up the AudioFormat.

Rather than checking the byte-ordering twice, I think the neatest change is to add a boolean to the IBXM get_audio() method to specify the byte-ordering., then do the byte-ordering detection in the wrapper.

So much for hiding platform differences!

Well, I suppose is Java Sound was to need the input switched on MacOS then there could be a default get_audio() which used the platform native ordering. I mean there’d still be cases where you’d want specific ordering anyway - streaming audio from a server for instance.

Kev

In Javasound you specify the endian-ness when you open the device. I suppose it’s possible an implementation might throw a FormatUnsupportedException, but the default Windows Javasound implementation is happy with both. There might not even be a byte-swapping overhead, since WAV is always little-endian, and CDDA is always big-endian the hardware could well support both natively.

It’s a fair bet that opening the device using the system endian-ness is a good choice, though.

What is it with me and old trackers? I don’t want to think about how much of my free time gets spent on this sort of thing! I love the sound, but I also like the technology (I didn’t say it was good technology, it’s awful :slight_smile:

I’ve been meaning to clean up the S3M support in IBXM for a while, as it’s a mess. S3M and XM are substantially different, and it’s quite complicated converting between the two. I eventually decided to write a simple-as-possible S3M only player. It’s not quite as small and simple as I hoped, but that’s S3M for you. I did a version of Micromod based on the design, aswell, which is now the smallest and simplest (I didn’t say it was simple…) ever!

http://geocities.com/sunet2000/micromod2007/Micromod.java
http://geocities.com/sunet2000/micromod2007/Micros3m.java

Both have high quality mixing should match IBXM in sound quality. Let me know if you find any bugs. I suspect you might.

Just to keep things relevant, if you can get the latency low enough (I’m still working on that) you can use either one of these to provide in-game special effects, with or without music. I do intend to write a small game at some point (no, really).

Cheers,
Martin

Sorry, I do not want to interrupt this thread but maybe anyone would like to try this java mod player as well:
www.quippy.de/mod.html
or to download directly
http://www.quippy.de/modplayer/javamod.jar

The sources are downloadable as well. Currently I am working on IT-Mods. XM, MOD, STM, S3M and WOW is already supported.

The project is supposed to demonstrate the capabilities of java in rendering music “just in time” - not to show what you can do with SWING. The user interface needs some update.

And sorry, the page is yet only german - I am working on that, too

:wink:

Greetings,

You have a terrific little application. I get a kick out of these tracker files. I have hundreds on my disk! I like the unique sound with a techno slant. I ran across your applet located at http://geocities.com/sunet2000/kbapplet.

I have an interest in this as a hobby, and would like to use the applet to playback files via a web site. Does the liscensing allow me to use the app in this manner?

Also, how can I via the applet start and stop playback, and prevent autostart?

Good luck with your project. I am looking forward to seeing your work. Support of new file types must be a mess given the jungle of formats trackers use. You must like squinting at code.

Best regards,

dcbevins