mborik / SAA1099Tracker

SAA1099Tracker is chiptune music tracker for Philips SAA 1099 soundchip
https://saa1099tracker.borik.net
MIT License
34 stars 3 forks source link

Implement import of E-Tracker format #17

Closed mborik closed 1 year ago

mborik commented 2 years ago

📝 Feature description

💡 Expectations

⚒️ Solution

🔦 Additional context

stefandrissen commented 2 years ago

As a feature creep, perhaps also support importing compiled e-tracker tunes? Zxart.ee has hundreds, they can be manually decompiled with a tool I wrote back in the day (see https://www.worldofsam.org/products/fred-best-fred )

mborik commented 2 years ago

@stefandrissen Thank you for your suggestion. 🙏 It's great but I'll need some cooperation to make it happen.

support importing compiled e-tracker tunes

Is there any description of E-Tracker compilation format? It's backward compatible to module format?

they can be manually decompiled with a tool I wrote back in the day

Are there any sources of your decompiler in readable form that could act as blueprint? As a bonus, would you be able to suggest an algorithm or JS/TS/anything code draft for this import? 😉

stefandrissen commented 2 years ago

No, unfortunately there's no description that I know of.

I do have a documented (disassembled) player.

I have also just found the source code to my d-compiler and added it to that repo.

mborik commented 2 years ago

Thank you for your repo and info, it will help a lot. 👍

mborik commented 1 year ago

@stefandrissen Well, importing of E-Tracker compilation was a bit tough... ufff! 🥴 ... but positions, patterns and ornaments are imported well and it seems OK. 🤞 I have a problem with samples. I don't get a point how to handle sample format; It's pretty confusing for me that searching in 5th pointer from header and how it affecting a volume or repeating...? 🤔 https://github.com/mborik/SAA1099Tracker/blob/55b31a56aea6d5b41bd52b67ddaca63fd2596928/src/tracker/file.import.ts#L521

stefandrissen commented 1 year ago

:-) from a quick scan of the D-Compiler at line 426 - I /think/ I understand your confusion.

The volume / noise mask are all stored as RLE deltas (deviation).