Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

XM and MOD support has been implemented -- multiple times! -- by other Javascript projects, most notably:

http://mod.haxor.fi/Jester/mod.stardustmemories

Playing files from within archives should be possible using the MediaSource API. No need to port the entirety of VLC to get that.



I think you'd use VLC's modular architecture to your advantage. Maybe you'd start with an Emscripten port, but then replace parts with a "native" JS implementation of tracker music support.

That's the first time I've heard of MediaSource being able to play from archives, though - do you have any more info?


MediaSource doesn't specifically support archives; it gives Javascript the more general ability to generate data to be presented by an <audio> or <video> element. How the Javascript code decides to generate that data is up to it -- be it loading chunks over HTTP, pulling them out of an archive, generating them from scratch...


And nearly every one of these does not do it correctly. I haven't recently checked this in VLC either since normally I just use the original trackers and other programs for playback on the real hardware.

From the github of the project you linked:

  "None of the player classes fully implement all the
  features and effects in each file format, but all the major
  ones should be implemented. In addition, there most 
  certainly will be some playback bugs in each player class -
  let me know if you run into some bad ones."
Additionally, I did not see support for some other tracker formats listed (though perhaps supported) such as IT. There seems to be some sort of culture of "cool web page" or "on github" means "works PERFECT" to many people. Worse, sometimes these things do work well, get abandoned, then something breaks them like a security change, so we're back to unsupported again.

As someone who has a passion for what some describe as "scene" formats, I have to say that 99% of the stuff I come across, whether for MOD, ANSI, RIP, DIZ, whatever is fundamentally broken or missing key functionality. The same holds true to other related tech such as vt100/vtxxx emulators. Music and ANSI are some of the worst offenders. Music is interesting since even at the time, different programs would play things back differently, however there was some degree of consistency to make things playable. Literally every ANSI parser in popular places I check have some combination of horrible bugs, missing parts of the standard, abysmal performance, inaccuracies, and worse. It's as if the authors didn't read the specs, because, well, they probably did not (or at least didn't understand them).

The situation gets worse when you think about preservation. Some of the formats had multiple versions and iterations, not to mention were built with different processors and architecture in mind. I was working with one format recently that used a little-endian packed struct that added fields between versions and stored this data as binary. If you read a previous version of the format with the most of the code out there (supporting the latest), it would actually crash. I've actually hit this with archives too, such as with LZH/LHA that are especially used in retro settings or on some platforms.

There's a lot of complexity to older formats and the evolution of things that appeared in more wild circumstances and/or times. Implementations that work perfectly are a rarity and worthy of attention. VLC in this regard does a better job than most. So I think part of the logic whether I agree or disagree is that VLC is widely used, maintained, and active, so it's a bit better for preservation at the moment than random collections of github libraries.


For ios I can really recommend modizer: http://yoyofr.blogspot.se/p/modizer.html Otherwise the only good generic mod player i've used was deliplayer, unfortunately abandonware.

http://modarchive.org/?article-players for more info, VLC isn't even mentioned here.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: