andretim wrote:Since you started extending the format support, I may as well list all the knowledge I collected about the ProTracker like formats:
Offset &43C:
CHNx FastTracker x channels
CHxx FastTracker xx channels
FAxx DigitalTracker xx channels
FLTx StarTrekker 4/8 channels, the 8 ch patterns are store as 2 successive 4ch patterns
TDZx TakeTracker x channels
CDx1 Octalyser 6/8 channels
OKTA Oktalyzer 8 channels
NSMS SoundTracker31 4 channels
M.K. ProTracker 4 channels
M&K! "
M!K! "
N.T. "
Offset &7e0:
TXPx The Xperience x channels, 62 instruments in Archimedes LOG format, VBLANK mode (Fxx is speed even when >= 32)
Offset &5bc
MTN\0 Soundtracker 2.6, 4 channels, patterns of 1 channel (like Digital Symphony), note: \0 means a &00 byte
IT10 IceTracker, 4 channels, patterns of 1 channel (like Digital Symphony)
Otherwise we assume it's a 15 samples SoundTracker:
4 channels, 15 samples, VBLANK mode, sample repeat offset (but not repeat length) is in bytes instead of words, instead of the restart position you get a tempo.
If there is no effect nr > 2 if could possibly be the very old "Ultimate SoundTracker" with an different effects mapping (1xy is arpeggio, 2xy is pitch slide x=down, y=up, x has priority) but there is real effective way to be sure.
Misc:
Some programs use an extra octave so if TimPlayer finds such a note in a pattern when it loads the file it increases the upper pitch limit for pitch slides by one octave.
The TimPlayer module allows to set some compatibility flags:
- "Ultimate SoundTracker", thought this flag is reset if the we are sure it can't be one (> 15 samples or effects nr > 2)
- VBLANK mode, some files where converted from SoundTracker to ProTracker and so speed Fxx >= 32 are incorrectly treated as a tempo
- No sample swap, by default TimPlayer assumes that if you specify in a pattern a sample without an associated note, the current note continues with the new sample data. With this flag the note continues with the old sample but sample volume is set to volume of new sample. Apparently this behaviour changed even between different versions of the same tracker.
Wow, thanks Andre.
This is really useful - I should check back in here more often...! (but with wedding and honeymoon taking up the last 2 months, I've not had a chance, so only just read this today).
However, I have been updating QTM and had already worked out some of what you describe above. The new version of QTM, v1.45, now supports FastTracker/Octalyser 6/8 channel format internally, with ProTracker for the 4 channel format.
Previously QTM used StarTrekker FLT8 format for 8-channels internally, but it now converts these on loading to FastTracker, as the FastTracker pattern layout is more efficient to work with.
I also rewrote much of QTMs pitch/tuning code, to allow the extra octave(s) of FastTracker. QTMv1.45 now fully supports 6 octaves with fine tuning/pitch slides/arpeggio/etc. for FastTracker mods (however it restricts to 3 octaves for ProTracker/etc. so those mods play as expected). I've also added partial 7th and 8th octave support, mainly for converters to use (as I don't think many trackers went that low, and quality gets pretty bad down there), but it may help converting from obscure Trackers...(Coconizer is so far the only one I've found that allows these extra-low octaves).
Do you have example .mods in all the formats you list above? I'd love to add these to QTM where possible, but finding of the obscure format mods to test with QTM is a challenge...
Steve