getID3 icon indicating copy to clipboard operation
getID3 copied to clipboard

Future plans query - Support for MOD (mod/stm/s3m/it/xm/mtm/ult/669)

Open christiansacks opened this issue 2 years ago • 10 comments

Hi there,

I don't know if this is a good place to ask this... how "future" are the future plans for this feature? I'm desperate to get this included, so that my favourite streaming service that I use can use the file formats that I really would like to use, instead of having to convert them all to MP3.

Thank you for listening.

christiansacks avatar Apr 13 '22 20:04 christiansacks

I have no plans to expand support for MOD formats. I have done about as much as I can with the documentation I have available. I didn't think they were much used anymore.

JamesHeinrich avatar Apr 13 '22 22:04 JamesHeinrich

Ah That's a shame, there's a whole scene of demoscene musicians who would disagree that it isn't used anymore. If you change your mind in the future, I know that the demoscene would all be very grateful.

Thanks and best wishes, Christian aka MeaTLoTioN

On 13/04/2022 23:11, James Heinrich wrote:

I have no plans to expand support for MOD formats. I have done about as much as I can with the documentation I have available. I didn't think they were much used anymore.

christiansacks avatar Apr 14 '22 09:04 christiansacks

It's all a matter of file format documentation.

Is there something specific that's not working? If there's a specific issue with a specific file that you want me to look at, please provide a sample file.

JamesHeinrich avatar Apr 14 '22 12:04 JamesHeinrich

Well here's the thing, I use a platform called AzuraCast which is a platform to create an internet radio station. It works hand in hand with liquid soap, icecast, etc.

AzuraCast uses your getID3() to recognise and use music/audio files to be able to be played, however the formats that are available to use with getID3() are not as exhaustive as ffmpeg for example, which AzuraCast uses to actually play the audio files.

The file format audio/x-mod and audio/xm are just a few of the tracked music files that I would like to use. Here's a link to what audio/x-mod is about; https://en.wikipedia.org/wiki/MOD_(file_format)

There's a whole scene of tracker musicians who produce music in this format every day, and the file sizes are so small it would really cut down the storage and bandwidth usage if we could also use these formats in our radio streams.

An example track is attached.

I hope that these help, you can get the track info with ffprobe so hopefully you can also work out how to do it with getID3() so AzuraCast can implement using these files.

Many thanks, Christian aka MeaTLoTioN

On 14/04/2022 13:44, James Heinrich wrote:

It's all a matter of file format documentation.

Is there something specific that's not working? If there's a specific issue with a specific file that you want me to look at, please provide a sample file.

christiansacks avatar Apr 14 '22 15:04 christiansacks

I can't attach that file type here, so a link: https://erb.pw/sundance.mod

christiansacks avatar Apr 14 '22 15:04 christiansacks

Other formats I'd wish to use;

STM/S3M: https://en.wikipedia.org/wiki/S3M_(file_format) IT: https://en.wikipedia.org/wiki/Impulse_Tracker XM: https://en.wikipedia.org/wiki/XM_(file_format)

All the above are able to play with things like ffmpeg/vlc/etc, and all are current formats that are used by tracker musicians partly because of the small sizes of the files that they produce, among many reasons.

Hope this helps.

christiansacks avatar Apr 14 '22 16:04 christiansacks

Those formats have all had roughed-in support in getID3 for many years (they're detected, but no in any detail). I'm lacking proper file format documentation. I managed to find some partial old documentation for the first sample file you sent: http://www.textfiles.com/programming/FORMATS/modulesg.txt https://web.archive.org/web/20100921225940/http://io.debian.net/~tar/debian/xmp/xmp-2.7.1/docs/formats/Ultimate_Soundtracker-format.txt That was enough to get the file format recognized and extract song and track names, but I have not had any insight on how to calculate the track length.

JamesHeinrich avatar Apr 14 '22 17:04 JamesHeinrich

Did you see this? https://www.ocf.berkeley.edu/~eek/index.html/tiny_examples/ptmod/ap12.html

christiansacks avatar Apr 14 '22 21:04 christiansacks

I have a bunch of test files if you want to try them all out, downloadable from https://erb.pw/silver.zip ... There's about 200 files of .mod .stm .s3m .xm formats.

According to ffmpeg, they're of type;

.STM = pcm_f32le application/octet-stream .MOD = pcm_f32le audio/x-mod .S3M = pcm_f32le audio/x-s3m .XM = pcm_f32le audio/xm audio/x-mod

Hope this helps you out.

christiansacks avatar Apr 15 '22 02:04 christiansacks

I've taken another look at it but I still don't understand how to calculate the playtime of mod files in general. Until someone wants to volunteer some code or documentation that shows how to do that I likely can't do anything more, sorry.

JamesHeinrich avatar May 01 '22 19:05 JamesHeinrich