Jump to content


Photo

[Fixed 2.8] Xm Header Size Is Ignored


  • This topic is locked This topic is locked
5 replies to this topic

#1 Saga Musix

Saga Musix

    Member

  • Normal Members
  • PipPip
  • 11 posts
  • Gender:Male

Posted 07 August 2011 - 17:59

Renoise seems to make assumptions about the header size of loaded XM files which are not always true. Most trackers write a 276 (20 + 256) bytes long header, but actually this is not necessary. The header size is 20 + length of order list, and the order list does not have to be 256 bytes long. Some programs like OpenMPT or BoobieSqueezer will only write as many bytes in the header as neccessary, and Renoise does not seem to like that, although it is a perfectly valid XM file. So to read the order list, you should use the "Song length (in patten order table)" field from the XM header (http://aluigi.alterv.../mymusic/xm.txt), which indicates how long the actual order list is, and after having read the order list, you should read the XM patterns at position 60 + "Header size" field from the XM header.

#2 carmazine

carmazine

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 390 posts
  • Gender:Male
  • Location:Krakow / Poland

Posted 07 August 2011 - 23:05

it was said numerous times that xm/it/etc. support is not reneoise's priority. AFAIK there are tools for legacy file formats available somewhere..

#3 Saga Musix

Saga Musix

    Member

  • Normal Members
  • PipPip
  • 11 posts
  • Gender:Male

Posted 07 August 2011 - 23:25

I think it was also said numerous times that if somone gives instructions how it can be fixed, it will most likely be fixed. I gave detailed instructions and I can give even more details if it's necessary. You probably didn't understand of my bugreport anyway, I don't care at all how good or bad Renoise imports oldskool modules, but if it doesn't import them at all, something is seriously wrong. Practically any XM file saved with OpenMPT will not load at all in Renoise because of this bug, and that is certainly not satifactory for those people who want to import music from other legacy formats (f.e. ScreamTracker or OctaMED) that are not supported at all by Renoise, and instead we get the bad feedback because OpenMPT again "writes files that don't load in other applications" (while it's the "other application's" fault in this case) or people recommend to use old versions of the software, which is probably even worse.

You cannot really ignore such a trivial a one-line fix that makes a whole bunch of files not load. Spend five minutes on it and it's done. I don't say that Renoise must have excellent XM support. I just say that it should be able to actually load XM files made with another popular tracker.

Edited by Saga Musix, 07 August 2011 - 23:28.


#4 carmazine

carmazine

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 390 posts
  • Gender:Male
  • Location:Krakow / Poland

Posted 07 August 2011 - 23:36

ok, sorry for being an ass.

Edited by carmazine, 07 August 2011 - 23:38.


#5 taktik

taktik

    Renoise Developer

  • Admins
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 15040 posts
  • Gender:Male
  • Location:Berlin, Germany
  • Interests:füße waschen

Posted 07 August 2011 - 23:58

You cannot really ignore such a trivial a one-line fix that makes a whole bunch of files not load. Spend five minutes on it and it's done. I don't say that Renoise must have excellent XM support. I just say that it should be able to actually load XM files made with another popular tracker.


Sure thing. Will have a look. Do you have an example file lying around somewhere? This would make the five minutes a two minutes job ;) Thanks for the detailed description.

#6 Saga Musix

Saga Musix

    Member

  • Normal Members
  • PipPip
  • 11 posts
  • Gender:Male

Posted 08 August 2011 - 00:09

doeswork.xm - this is the file with a 256 byte order list (header size = 276). You should hear two tones playing.
doesntwork.xm - this is the same file with an order list as short as possible. When loaded properly, you should hear two tones playing, currently you will just get an empty pattern. With more complex files, Renoise would throw an error that it reached EOF too early, but in this case it doesn't seem to do so.

Edit: The board didn't seem to like my attached file, so here's a link instead: http://sagagames.de/...xm-testcases.7z

Edited by Saga Musix, 08 August 2011 - 00:11.

  • Conner_Bw likes this