Subject: Problems with Fasttracker modules (not XM)

From: DigitalAxis
Date: Wed Nov 8 00:17:23 2006

To: UADE-User-discussion
I'm using UADE 2.0.3 on Ubuntu Linux, and several modules (for instance, &quot;Onward Ride&quot; or dope.mod by Jugi) sound awful.  I'm almost entirely certain that all the modules it's failing on are Fasttracker modules; they play properly in Surfsmurf's Oldsk00l Mod plugin for Winamp and Timidity (in Ubuntu)

I'm lead to believe that Fasttracker modules are easy to distinguish by their identifier string... or are they unsupported as mostly a PC format?

I say Fasttracker because that's what the Oldsk00l Mod plugin detects them as, I suppose they could be Startrekker or another mutant &gt;4 channel format.

How can I fix this?

I apologize if I've stumbled onto another frequently asked topic you're all tired of.

---

From: shd
Date: Wed Nov 8 16:50:04 2006

To: UADE-User-discussion
[quote:bdc82792f5="DigitalAxis"]I'm lead to believe that Fasttracker modules are easy to distinguish by their identifier string... or are they unsupported as mostly a PC format?
[/quote:bdc82792f5]

They are unsupported, because it is a PC format.

[quote:bdc82792f5]I say Fasttracker because that's what the Oldsk00l Mod plugin detects them as, I suppose they could be Startrekker or another mutant &gt;4 channel format.[/quote:bdc82792f5]

How can I fix this?[/quote]

Do not try to play them with uade.

---

From: DigitalAxis
Date: Thu Nov 9 22:23:03 2006

To: UADE-User-discussion
Ok.

I changed my little command frontend to grep for &quot;28CH&quot; etc. before selecting uade123 or timidity to play the file.

---

From: mld/uade team
Date: Mon Nov 13 09:06:39 2006

To: UADE-User-discussion
Hmmh, if I think about it, if uade doesn't reject fastracker 28ch, then there's a quirk here. 

As far I remember, I took out mod_pc some time ago off the eagleplayer.conf, so uade shouldn't play them, even though we check for them in our file heuristics...  It seems the &quot;detection by extension&quot; kicks in, then...

You might put a &quot;detect-format-by-content&quot; as option in the &quot;PTK-Prowiz prefixes=mod&quot; line in ~/.uade2/eagleplayer.conf to work around that...

I might blacklist mod_pc either in the heuristics or in the filetype process of the Prowiz replayer (I prefer the latter), altogether...
Any objections, shd?

thanks for the report!

mld/uade team

---

From: shd
Date: Mon Nov 13 09:37:14 2006

To: UADE-User-discussion
[quote:3e70b8b2ed="mld/uade team"]I might blacklist mod_pc either in the heuristics or in the filetype process of the Prowiz replayer (I prefer the latter), altogether...
Any objections, shd?[/quote:3e70b8b2ed]
No objections.

I would prefer the former because it would be faster, but considering the complexity of the current heuristics system, do the latter. 

There is one solution that can be done here to avoid the issue on one system:

uade123 -r --set=reject /path/to/all/fasttracker/modules

This will blacklist all files under that path :-) File ~/.uade2/song.conf is updated accordingly (and can be edited later). Undoing those options is simply:

uade123 -r --set= /path/to/all/fasttracker/modules

---

From: shd
Date: Mon Nov 13 09:37:44 2006

To: UADE-User-discussion
[quote:a1db92a76d="DigitalAxis"]Ok.

I changed my little command frontend to grep for &quot;28CH&quot; etc. before selecting uade123 or timidity to play the file.[/quote:a1db92a76d]

See me answer to MLD about black-listing those songs. It might help you.

---

From: alankila
Date: Wed Nov 15 08:13:20 2006

To: UADE-User-discussion
For the wider audience, I would like to add that the reason we blacklist PC formats is that UADE is simply not the optimal replayer for them. We would play them back a lot like Amiga, with its particular set of hardware limitations, would play them. It is much better to run other replayers against these, which are closer in operation to the system these songs were likely composed and played back with.

---

From: DigitalAxis
Date: Sun Dec 10 01:16:25 2006

To: UADE-User-discussion
Ok, something's seriously wrong (or I'm doing it wrong)

Rather than have to go through each file on a per-song basis (which seems more of a hack than just telling it to be careful with them), I decided to use mld's suggestion and add detect-format-by-content to the PTK-Prowiz prefix=mod&quot; line.

It played my test file.

I went back and added comments to ALL the PTK-Prowiz entries; It still played my test file.

I ran uade123 with the --detect-format-by-content option... by this time I noticed it was printing out an &quot;Unrecognized option: detect-format-by-content&quot; error.
[code:1:c5f26bc925]adric@riedel-02&#58;~/music/modules$ uade123 -g dope.mod
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Unrecognized option&#58; detect-format-by-content
Song&#58; dope.mod &#40;957334 bytes&#41;
playername&#58; Protracker and family
modulename&#58; 
formatname&#58; type&#58; Protracker
subsong_info&#58; 1 1 1 &#40;cur, min, max&#41;

adric@riedel-02&#58;~/music/modules$ 
[/code:1:c5f26bc925]

UADE123 detects dope.mod, blackhole.mod, avmissn.mod and 1998-smr.mod as Protracker.
It detects pacman.mod as Protracker compatible

pacman.mod played semi-normally, except for failing to play notes above a certain pitch.  Oldsk00l played all those high notes at the same annoyingly wrong pitch, unless I manually set it to Fasttracker mode... I assume this is an odd Protracker variant with more than 3 octave range.

I physically examined each file (in nano, if you must know, not a hex editor) for M.K., 4CHN, 6CHN, 8CHN, 28CHN, M!K!, and DOG (as a control, in case it would find anything)
*avmission.mod identifies itself with 8CHN, no others.
*pacman.mod identifies itself with M.K., and no others.
*1998-smr.mod identified itself as 8CHN, and found a random occurrence of DOG somewhere in the middle of the file
*dope.mod identifies itself as 28CH, no others.
*blackhole.mod identifies itself as 6CHN, no others (this is probably a bad test, because I wrote this in Modplug tracker; it's a cover of a short repetitive XMI file from an old game/encyclopedia called Space Adventure)

As a side note, GNU Grep sucks at trying to find a literal anything with a . in it.

Anyway, there's evidence that mod detection isn't working; uade123 seems to be misidentifying all Fasttracker 1.x modules as pure Protracker.
My OS is Xubuntu 6.10, with all the latest updates.
UADE package is 2.03, from Morgoth's repository: http://morgoth.free.fr/ubuntu edgy-backports

---

From: DigitalAxis
Date: Sun Dec 10 01:22:35 2006

To: UADE-User-discussion
er, I actually tested the files for 28CH, not 28CHN

sorry about the accidental new thread

---

From: shd
Date: Sun Dec 10 01:48:38 2006

To: UADE-User-discussion
[quote:3da3a300dd="DigitalAxis"]As a side note, GNU Grep sucks at trying to find a literal anything with a . in it.
[/quote:3da3a300dd]
Maybe you are confused with shell semantics:
[code:1:3da3a300dd]$ grep \\. [/code:1:3da3a300dd]
or
[code:1:3da3a300dd]$ grep '\.'[/code:1:3da3a300dd]

---

From: DigitalAxis
Date: Mon Jan 15 02:20:26 2007

To: UADE-User-discussion
Well, I finally got it nearly working after returning to it and changing the command from [b:d04a4d977a]grep 'M\.K\.' &quot;$i&quot; 1&gt;/dev/null[/b:d04a4d977a] to [b:d04a4d977a]grep &quot;M\.K\.&quot; &quot;$i&quot; 1&gt;/dev/null[/b:d04a4d977a]; and scanning for Fasttracker modules with [b:d04a4d977a]grep &quot;[6-8]CHN&quot; &quot;$i&quot; 1&gt;/dev/null[/b:d04a4d977a]

('nearly' meaning there's an occasional false negative when a module just happens to contain xCHN somewhere in the data section, and it gets passed to Timidity instead of UADE123)

The problem still remains that, when passed to UADE123, Fasttracker I (and Taketracker, I suppose) modules are identified as Protracker.  Don't understand why.  Audacious/UADE identifies them as *.MOD_PC

By the way (not that it's important now), how do you differentiate Noisetracker Modules from Protracker Modules?  I thought they had [b:d04a4d977a]N.T.[/b:d04a4d977a] as a format identifier code; yet I find all of them have [b:d04a4d977a]M.K.[/b:d04a4d977a] instead (at least, UADE identifies a few M.K. as being Noisetracker 2).)  I was going by Michael Schwendt's discussion of Ultimate Soundtracker modules for that one...

---

From: Guest
Date: Mon Jan 15 13:49:21 2007

To: UADE-User-discussion
if you pass your fastracker or taketracker mods with -v verbose switch to uade you should see somewhere something like &quot;mod_pc&quot;.

If it's still be played, it could be that in eagleplayer-conf mod_pc are still associated with the protracker player (even though it shouldn't I think). (I'll check that, I though I dealt with it...) or the &quot;play by extension case&quot; is kicking in. If detection fails, uade relies on the *.mod extension and plays it with the default player (mod == Protracker) :-) 

As for distinguishing Protracker from Noisetracker 1.x, 2.x and Soundtracker 2.4:

We do some file heuristics, based on observation of differences when saving those mod files between different tracker version.

Michael Schwendt's doc is just the tip of the iceberg, so to speak. E.g. early Soundtracker 2.4 had the word/byte instrument repeat, so if anything falls into that category it going to be played as such.

Noisetracker 1.x and 2.x had no finetune, some used songstart and saved their empty instruments differently from Protracker. And so on and so on.
There was no N.T. afaik for Noisetracker, at least I haven't come across one. There are M&amp;K! though. :-)

If you feel curious, have a look into amifilemagic.c There's the whole identifying done.

---

From: mld/uade team
Date: Mon Jan 15 14:03:48 2007

To: UADE-User-discussion
DigitalAxis could you test and report back, if modplaying of stock mod 4 channels isn't broken when you alter following line in your eagleplayer.conf:

[code:1:e065686edd]
PTK-Prowiz		prefixes=mod		epopt=type&#58;pt30	always_ends detect_format_by_content 
[/code:1:e065686edd]

It should make uade only play detect by contents mod files, and ignore the rest. It should the right way (tm), but who knows. :-)

---

From: DigitalAxis
Date: Mon Jan 15 16:48:27 2007

To: UADE-User-discussion
[code:1:adf636cc37]1997-darken-heart.ft.mod&#58; deduced extension&#58; MOD_PC
Deduced file extension &#40;MOD_PC&#41; is not on eagleplayer.conf.
Player candidate&#58; PTK-Prowiz
Using eagleplayer option type&#58;pt30
Player&#58; /usr/share/uade2/players/PTK-Prowiz &#40;54832 bytes&#41;
Song&#58; 1997-darken-heart.ft.mod &#40;336648 bytes&#41;
Playing time position 0.0s in subsong 0                
Message&#58; open library uade.library

Message&#58; score issued an info request&#58; eagleoptions &#40;maxlen 256&#41;

Message&#58; reply to score&#58; type&#58;pt30 &#40;total len 10&#41;

Message&#58; type&#58;pt30

Player name&#58; Protracker and family

Module name&#58; 1997&#58; Darken Heart

Format name&#58; type&#58; Protracker

subsong&#58; 1 from range &#91;1, 1&#93;

Message&#58; Starting audio output at 289268
Playing time position 27.7s in subsong 1            [/code:1:adf636cc37]

I'd say there's our answer.  There's no replayer, so it defaults to Protracker.

And guess what, when I use underscores instead of dashes, detect_format_by_content works!
[code:1:adf636cc37]Unknown format&#58; 1997-darken-heart.ft.mod[/code:1:adf636cc37]

Gee whiz.  ...sigh...

I did take a look at amifilemagic.c... yikes!  From what I can make out, TFMX is almost as messy as .mod... so many special cases for specfic TFMX modules.

As for MOD, well, I&quot;m just gonna stick to my somewhat broken Magic Number method and let UADE sort it out from there.  Not gonna touch that, especially not with [b:adf636cc37]grep[/b:adf636cc37]