Implement import of E-Tracker format
Closed this issue · 6 comments
📝 Feature description
- E-Tracker is well known music tracker on Sam Coupé and there are still active composers.
💡 Expectations
- To support a migration of composers to our SAA1099Tracker we should implement import of their modules.
⚒️ Solution
- E-Tracker module import was already implemented in early iteration of this project (then called MIF85Tracker) here.
- We should just rewrite it into TypeScript and enable the menu item.
- Refactor all imports into
src/tracker/file.import.ts
🔦 Additional context
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 )
@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? 😉
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.
Thank you for your repo and info, it will help a lot. 👍
@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...? 🤔
SAA1099Tracker/src/tracker/file.import.ts
Line 521 in 55b31a5
:-) 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).