cdgriffith / puremagic

Pure python implementation of identifying files based off their magic numbers
MIT License
158 stars 34 forks source link

Update magic_data.json with lots of MED,MOD,IT and similar #58

Closed NebularNerd closed 5 months ago

NebularNerd commented 6 months ago

Big MED, MOD, IT and similar tracker format updates:

These old Tracker formats come in many shapes and sizes; this covers a chunk (but by no means all) of them. It's not perfect as some info is not available, also some very old SoundTracker .mods for example have no true fingerprints (the player software has to look at several factors to determine if it is).

There's a couple of compression formats that were used in conjunction with these files as well. This is a bit of a wordy PR, but as some of this info was so hard to find I'm leaving it here for others to make use of.

I also removed a duplicate for MIDI which I can across 🙂

PowerPacker .pp:

Fingerprints:

A commonly used executable and data compression format on the Commodore Amiga computers. Unpacking these will reveal what they really are inside.

Links:

Fred Editor .fred:

Fingerprints:

A tracker style music format for the Amiga, almost no information left on the net about it. This one almost lost zip contains info about the two formats used:

Links:

ZXEMUL .ay:

Fingerprints:

AY tunes from older computers, there are some different versions/variants but the header will always be present.

Links:

Custom Amiga Module .cust:

Fingerprints:

An Amiga song format primarily used in games, there seem to be two file variants but almost no real info about the format, I guess one is older than the other.

Links:

AHX/THX Music Tracker Module .ahx (formally .thx):

Fingerprints:

Another Amiga music format. Renamed to AHX for legal reasons to do with that bloke who made films about people fighting with glowing swords, then decided to make a popular movie sound standard.

Links:

MYST YM Tracker format .myst (sometimes .ym):

Fingerprints:

Another old computer music format from the Atari ST systems. There are a few .ym formats so I'll follow the modern .myst extension.

Links:

David Whittaker tracker format .dw:

Fingerprints:

Another tracker format created by the game musician himself for Amiga games. There are a couple of versions, however, all files seem to start with the same header

Links:

Brian Postma SoundMon .bp:

Fingerprints:

-0x562E32 / V.2 at offset 26 -0x562E33 / V.3 at offset 26

Another tracker format mainly used in Amiga games, seems to be two versions (I only have one V.3 file in my collection)

Links:

SoundFX module .sfx and .sfx2:

Fingerprints:

Another Amiga based tracker format, not a lot of info out there.

Links:

PokeyNoise Chiptune .pn:

Fingerprints:

Super obscure Atari chiptune music format, almost zero info, can't even find a player for them at present. The more modern .SAP format is the main Atari POKEY song format now.

Links:

Impulse tracker (and clones) and OpenMPT:

Impulse tracker is already in the database, however, loads of trackers hijacked the main 0x494D504D / IMPM fingerprint. As there as so many versions I've left the default entry and added secondary fingerprints for variants we can identify. If we come across other variants, we just need to add them to the multi-part-headers section. Some formats like the early BeRo Tracker have multiple fingerprints per file (and they may not have a fixed position) so we can only match as best as. Due to this there will be duplicates under certain matches.

Links:

XPACK file compressor .xpack:

Fingerprints:

Came across this while trying to unpack/decipher another file in my collection, it was not the one I was looking for, but seeing as I made a test file to compare the header it's not a major effort to add

Links:

Ultimate Soundtracker (aka Soundtracker) and clones .mod:

Fingerprints at offset 1080:

Fingerprints for SoundTracker 2.6:

Fingerprints for StarTrekker:

Fingerprints at offset 0:

The Granddaddy of the tracker-based music formats, much like Impulse tracker there are dozens of subversions but they all (mostly) contain a header at offset 1080. These will confidence clash with Compucon-Singer embroidery design file if no song name was stored in the mod.

The StarTrekker stuff is clever/weird, they use an external file to store the FM Synth pattern used, without this some mods will sound off/broken away from a player that understands them. Big thanks to @stefandrissen on https://github.com/cmatsuoka/tracker-history/issues/6 for helping explain that one.

The PACK header was a killer to understand, I knew they were .mod's of some kind (It turns out they are just the song data, sans samples), but there exists next to nothing aside from the two links below to describe what this was. The header is used for dozens (literally) of formats ranging from fake PowerPacker clones to Quake data files so expect confidence clashes.

Links:

MED/OctaMED, Multitracker, 669, UltraTracker, MO3:

Tidies up existing entries that either lacked versioning info or misreported other formats as .med

Links:

Future Composer (Amiga) .fc:

Fingerprints:

Another Amiga tracker format, shares it name with a C64 music editor but they are not the same. A couple of versions but loads of possible extensions .fc, .fc13, .fc14, .smc, .smod.

Links:

TCB Tracker .mod:

Fingerprints:

An Atari ST Tracker format, commonly used in games. There are two fingerprints, one is newer but not sure which way round they are.

Links:

PowerplayerMusic Cruncher .pmc:

Fingerprints:

An Amiga file compression format for SoundTracker style files, only PowerPlayer can play these, otherwise you need to unpack them to get the original .mod which will play anywhere.

Links:

Oktalyzer .okt .okta:

Fingerprints:

Another 8 Channel Tracker format from the Amiga, very popular in the demo scene. A couple of files types but only one seems to be in use, because the extensions are used willy nilly, trust the confidence 🙂

Links:

Creative Labs AWE Soundbank .sbk:

Fingerprints:

These are custom soundbanks to be used with MIDI files, when loaded onto the AWE and used with the matching MIDI file and they supplement the stock instruments with those the artist created. These can be converted to the modern SoundFont .SF2 for use in MIDI software without needing to own an AWE.

NebularNerd commented 6 months ago

There were a couple more I left out for now as I would like to see if it's possible to implement #57 first.

xibe commented 5 months ago

Nice job gathering all these, @NebularNerd!

NebularNerd commented 5 months ago

@xibe Thanks! 🙂

It took a while but it's much easier to enjoy some of my old Tracker music I had laying around now I can identify or actually play them. Some of the rabbit holes I went down have given me ideas for retro/obscure types to add.

cdgriffith commented 5 months ago

Hi @NebularNerd I merged the other PR first, could you resolve the conflicts of this one and can add it :)

NebularNerd commented 5 months ago

Hi @cdgriffith, all fixed. We should be good to go now. I was not sure if that was for me to resolve or not. But I learned another new GitHub thing for the day 🙂