Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: WIP: Module Player (.mod, .s3m, .xm, .it)  (Read 3844 times)

0 Members and 1 Guest are viewing this topic.

Tenry

  • Full Member
  • ***
  • Posts: 120
  • Experienced Programmer
    • View Profile
    • Simon-Burchert.com
WIP: Module Player (.mod, .s3m, .xm, .it)
« on: February 25, 2012, 06:29:06 pm »
As there have been some discussions about module and midi support I've have started a new project. Actually it's just a derived class from sf::SoundStream which renders module files.

I'm programming everything on my own using file format specifications and documentations, and no code snippets from other libraries. That way I avoid any license incompatibilities with SFML.

I hope it might be useful for SFML, what do you think?



No source or programs are currently avaible as the project just recently started. It only renders .mod files yet, and is still quite buggy.


Output comparison with OpenMPT (wav file)
output.wav (4.50 MB)
openmpt.wav (OpenMPT wave output; 4.50 MB)
itaki001.mod (original file)


Current Progress (implemented, partly/buggy, not implemented):
loading
* MOD loading
* S3M loading
* XM loading
* IT loading
playback
* pitch
* volume
* tempo
* speed (ticks per row)
* samples
* instruments
* linear interpolation
* stereo
effects
* note delay
* pattern break
* position jump
Please note that my previous display name was "Shy Guy".

Laurent

  • Administrator
  • Hero Member
  • *****
  • Posts: 32498
    • View Profile
    • SFML's website
    • Email
WIP: Module Player (.mod, .s3m, .xm, .it)
« Reply #1 on: February 25, 2012, 06:37:22 pm »
That's a nice project, but are you really sure that there are no alternatives?

For example, have you seen libmodplug?
http://sourceforge.net/projects/modplug-xmms/files/libmodplug

I downloaded it and the license says "public domain".
Laurent Gomila - SFML developer

Tenry

  • Full Member
  • ***
  • Posts: 120
  • Experienced Programmer
    • View Profile
    • Simon-Burchert.com
WIP: Module Player (.mod, .s3m, .xm, .it)
« Reply #2 on: February 25, 2012, 06:49:54 pm »
Quote from: "Laurent"
That's a nice project, but are you really sure that there are no alternatives?

Well, I don't know, but it's fun to me to have such a challenge :)
I learn things by that.
Please note that my previous display name was "Shy Guy".

NullHypothesis

  • Newbie
  • *
  • Posts: 1
    • View Profile
WIP: Module Player (.mod, .s3m, .xm, .it)
« Reply #3 on: March 06, 2012, 09:42:37 am »
That's no small undertaking, especially if you intend to be true to the original trackers, which means replicating all the original bugs and quirks of each format. Most module APIs leave something to be desired, and few, if any, are in active development.

Quote from: "Laurent"
That's a nice project, but are you really sure that there are no alternatives?

For example, have you seen libmodplug?
http://sourceforge.net/projects/modplug-xmms/files/libmodplug

I downloaded it and the license says "public domain".
libmodplug doesn't fare so well in terms of accuracy, last I knew. It would be nice if the Schism fixes backported to OpenMPT for it files have made their way into libmodplug as well. libmodplug also been done as a library for SFML not too long ago, though it may have fizzled out:
http://www.sfml-dev.org/forum/viewtopic.php?t=6178

What I'd really like to see is something other than fmod (expensive for commercial use) or DUMB (joke license) with proper callbacks triggered on multiples of rows, order changes, notes in selected channels, and Zxx commands. That kind of feature is a godsend for synching music with game events.