View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000828 | OpenMPT | File Format Support | public | 2016-07-07 14:32 | 2019-03-16 13:56 |
Reporter | Monsterovich | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | sometimes |
Status | closed | Resolution | won't fix | ||
Product Version | OpenMPT 1.26.02.* (old testing) | ||||
Summary | 0000828: itogg format support | ||||
Description | https://github.com/Monsterovich/itogg OpenMPT just should decompress itogg modules to normal .it (.mptm) modules. | ||||
Tags | No tags attached. | ||||
Has the bug occurred in previous versions? | |||||
Tested code revision (in case you know it) | |||||
As discussed before on IRC, there is already Modipulate's ITQ format with ogg-compressed samples: https://github.com/MrEricSir/Modipulate/blob/master/src/modipulate/libopenmpt-forked/soundlib/Load_itq.cpp And even IF we were going to implement this, I'd rather implement the additional changes to the IT format myself rather than relying on an external library which essentially just duplicates code that already exists. I don't consider a DIA file to be sufficient documentation for a file format, though. |
|
I can use my code anywhere, because it's very SIMPLE to do that: https://github.com/Monsterovich/itogg/blob/master/itogg.h There are still a lot of projects/players that not use libopenmpt, but they use libmodplug, libbass, libdumb, libfmodex... What program can covnert to ITQ?
It won't. |
|
<blockquote>What program can covnert to ITQ?</blockquote> <blockquote>1. I don't change impulse tracker sample headers for many reasons.</blockquote> |
|
I can't use ITQ outside libopenmpt anyway. I've already mentioned that.
Without provided converter this format is useless.
Why? |
|
Frankly, I do see neither a reason to add a whole new set of file structures and headers like ITOGG, nor to extend the on-disk structure of the IT sample header like ITQ does. As far as I can see, there are still bits left in the sample header (OpenMPT used one of those to signal external sample in MPTM), which could easily be used to signal OggVorbis encoding (or general compressed encoding, detected using file magics stored in the sample data). As IT already has support for variable-length encoded data in case of IT sample compression, the difference for stored bytes and sample length could be handled just the same way as there. |
|
<blockquote>I can't use ITQ outside libopenmpt anyway. I've already mentioned that.</blockquote> Yes you can. Just from a quick look (I was never involved with this format), ITQ's only differences to IT are:
It cannot be any simpler than this, apart from using existing bits that are still left in the sample header, as manx states. The things you add to the format make it more complicated to parse. <blockquote>Without provided converter this format is useless.</blockquote> <blockquote>I'm curious about those reasons, because I think it's a particularly bad idea. Why?</blockquote> |
|
Looking again, I see you are in fact using different magic bytes (using color coding to code only SOME instead of all differences made that very easy to miss in your diagram). All other concerns still apply. |
|
This information is not redundant, it also simplifies the decoding, because I can decode my format in three steps while ITQ changes a lot of sample data. Plus, I use this information to check for modules with garbage samples.
I wasn't planned to do an IT-only structure. What if I want to support other module formats like .xm? |
|
If you can use the information to detect some corruption, it is in fact redundant.
XM works completely differently and I frankly cannot see how to apply the ITOGG approach to XM at all. For example, your "ISGG" header feels completely alien (even more so than in IT) in XM (as do the OpenMPT extensions, which were a bad design in the first place, in particular in XM). You would need to invent yet another mechanism. Also, there are already 4 variants of compressed lossy samples for XM and/or IT: Does the world really need yet another, incompatible, method? |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2016-07-07 14:32 | Monsterovich | New Issue | |
2016-07-07 14:58 | Saga Musix | Note Added: 0002498 | |
2016-07-07 18:16 | Monsterovich | Note Added: 0002499 | |
2016-07-07 18:18 | Monsterovich | Note Edited: 0002499 | |
2016-07-07 18:19 | Saga Musix | Note Added: 0002500 | |
2016-07-07 18:37 | Monsterovich | Note Added: 0002501 | |
2016-07-07 18:42 | manx | Note Added: 0002502 | |
2016-07-07 18:48 | Saga Musix | Note Added: 0002503 | |
2016-07-07 18:50 | Saga Musix | Note Edited: 0002503 | |
2016-07-08 07:02 | manx | Note Added: 0002504 | |
2016-08-08 16:23 | Monsterovich | Note Added: 0002569 | |
2016-08-08 16:55 | manx | Note Added: 0002572 | |
2016-08-11 12:43 | Monsterovich | Steps to Reproduce Updated | |
2019-03-16 13:56 | manx | Status | new => closed |
2019-03-16 13:56 | manx | Resolution | open => won't fix |