Jump to content

  • Log In with Google      Sign In   
  • Create Account

xm format problem


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 thepi   Members   -  Reputation: 122

Like
Likes
Like

Posted 23 July 2000 - 06:50 AM

Okay, this one is to all you pro''s who use to design players and stuff for the .xm format (or other module formats)... I have a lil'' problem with the format description which was released by mr.t or what''s-his-name. It says that if an instrument has more than one sample, you gotta load the sample header, and then the sample data for each of the samples. This is right if every sample actually contains sample data. But now there are plenty of modules which contain instruments with more than one sample, and the first sample says it contains n bytes sample data. But immediately after it''s header, there comes another sample, and then another, until the last of those samples finally contain the actual sample data. But this one which has the sample data attached to it actually says it doesn''t (samplesize field is zero). So I fixed my reading algo, but now it''s unable to read modules with instruments that contain several samples *with* sample data. So is there any flag or something indicating how I have to handle the instrument''s samples? I''d really appreciate your help!!! pi~

Sponsor:

#2 thepi   Members   -  Reputation: 122

Like
Likes
Like

Posted 23 July 2000 - 06:51 AM

ah, and by the way is it possible to change the nick in this forum?

#3 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 24 July 2000 - 09:06 AM

The XM format is quite messy and the description not accurate.

I suggest you take a look at the modplug XM loader (it was ported to Linux some time ago and is open-source)

if XMINSTRUMENTHEADER.size is zero, there is still
sizeof(XMINSTRUMENTHEADER) bytes that are written.

(Search for gmodplay and/or modplug-xmms)

Here is the structures I''m using


typedef struct tagXMINSTRUMENTHEADER
{
DWORD size;
CHAR name[22];
BYTE type;
WORD samples;
} XMINSTRUMENTHEADER;


typedef struct tagXMINSTRUMENT
{
DWORD shsize;
BYTE snum[96];
WORD venv[24];
WORD penv[24];
BYTE vnum, pnum;
BYTE vsustain, vloops, vloope, psustain, ploops, ploope;
BYTE vtype, ptype;
BYTE vibtype, vibsweep, vibdepth, vibrate;
WORD volfade;
WORD res;
BYTE reserved1[20];
} XMINSTRUMENT;

typedef struct tagXMSAMPLESTRUCT
{
DWORD samplen;
DWORD loopstart;
DWORD looplen;
BYTE vol;
signed char finetune;
BYTE type;
BYTE pan;
signed char relnote;
BYTE res;
char name[22];
} XMSAMPLESTRUCT;

Olivier



#4 thepi   Members   -  Reputation: 122

Like
Likes
Like

Posted 25 July 2000 - 02:34 AM

Thx for your response. I''ll immediately try it out to fix my code, I hope it works.
I can''t understand though why the group who invented this format is unable to build up a fine documentation on it.

pi~




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS