danfrz / PLEBTracker

Ncurses based audio tracker program inspired by goattracker and milkytracker
MIT License
144 stars 5 forks source link

Support for XM, S3M, Mod? #19

Open sxiii opened 4 years ago

sxiii commented 4 years ago

Is there any plan to support any of popular tracker formats?

Thanks.

danfrz commented 4 years ago

Interesting suggestion!

If it was implemented it wouldn't be seamless.

I never had any plans of adding samples. and xm, s3m, and mod files use samples. I assumed samples wouldn't fit in to the Wave-table interface very nicely. At the time I wrote this I took a lot of inspiration from goattrk, which also doesn't use them, though it does have noise options that sound better than anything I've figured out how to implement here. I've found that it's difficult to make good and diverse percussive sounds with this tool with the options that it currently provides. Samples would help with that.

If I did add samples, I could add a special "Sample" waveform to choose in the wavetable, then the pulse parameter could identify which sample. Would also need a way to upload samples into the song (hard? but worth it?)

If I didn't add samples, I could still offer an import / export function that at least chooses square wave for every sample. With this method, you'd have to do that work of modifying the wave/pulse/filter tables to approximate the original sound, which could be a fun exercise but I don't know how excited people would be about that. Some effects are divergent between filetypes but I guess that's to be expected.

I don't know much about s3m but it looks like it uses Attack/Sustain/Decay/Release for volume envelopes. Exporting volume envelopes from PLEBTracker to s3m could be obnoxious. xm and mod should be easier.

The minutiae of getting all the details right between formats sounds like quite a bit of work, which I'm not really up to right now on my free time.

I like the idea though and it would be a good thing for the project. But as far as priorities go with this project, I think first is bridging the gap between the tracker and interpreter programs, so that we're not using this hacky script to listen live.

So, it is now a part of the plan, but how quickly it gets resolved is nebulous as I've been focusing on art on my free time for a while. I hope that answers your question!

Thanks

sxiii commented 4 years ago

Hi @danfrz .

Yes this definitely answers! It's even more detailed answer than I was waiting :+1:

So as I understand you, it might happen somewhere in the future. And it would be nice than!

Thanks for your detailed answer!