Author Topic: Mo3 file format specs petition  (Read 124464 times)

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #75 on: 14 Feb '06 - 21:56 »
Hi Ian,

I see some space in mo3 structure for which I don't understand the usage. Are they used by BASS to replay the module ? Like the space (16+16+64)*4 bytes just before the song sequence (list of replayed patterns)...

Laurent

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #76 on: 15 Feb '06 - 14:01 »
It's the IT MIDI macro stuff. First come the SF0-SFF settings, which are 1 byte each, and equate to "F0F0<value-1>z" in IT. Then come the Z80-ZFF settings, which are 2 bytes each, and equate to "F0F0<value1-1><value2>".

Before that, are the default channel volume and pan tables, which are 64 bytes each (64 channels).

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #77 on: 15 Feb '06 - 20:15 »
Thank you

Could you describe the instruments structure and especialy the 3*104 bytes (section 2.3.3 is poor) ? it is mostly vol and panning values right ? Could you give me some details ?

Laurent

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #78 on: 16 Feb '06 - 12:09 »
They're the volume/pan/pitch envelopes, with basically the same structure as IT envelopes, except that the node points are 16-bit pos/val pairs.

Laurent

  • Guest
unmo3 v0.5 source code released
« Reply #79 on: 26 Feb '06 - 18:23 »
Hi there,

The source code of unmo3 is released at http://lclevy.free.fr/mo3.

"The piece of code has been written as a compagnion (validation code) of the document "the unofficial MO3 specification".

It is targeted to developpers or technical people, not for end users. It can be used by IT/XM/S3M modules specialists (tracker editor developper or modules players) to write a MO3 import loader, or more generally to handle MO3 modules in any way.

The MO3 format has been created by Ian Luck (http://www.un4seen.com). If you are looking for a good encoder and decoder (but without the source code) and a good module player, Ian's web site is the right place to go.

The features of unmo3 (opensource version) are:

    * uncompress the MO3 header and samples with lossless compressions.
    * able to save to a file uncompressed header and samples
    * able to extract mp3 and ogg compressed samples
    * can display a channel of a given pattern into 2 forms
          o as encoded inside MO3 file
          o as it usually appears in a tracker editor (for .mod only)

"

Laurent

Pailes^MilkyTracker

  • Guest
Re: Mo3 file format specs petition
« Reply #80 on: 28 Feb '06 - 12:28 »
Hi Ian, Hi Laurent,

thanks for all the hard work to get these things done.
I will start working to support MO3 in MilkyTracker soon I promise.
Unfortunately my todo list grew quite a bit in the last months so I'm quite busy.

Regards,
pailes

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #81 on: 28 Feb '06 - 14:11 »

Hi,

Ian, could you help me to complete or adjust the document for the missing parts ?

Laurent

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #82 on: 1 Mar '06 - 14:50 »
There seems to be a little problem with the main header (2.3.1), from the "0x0013" point. 0x13 = global volume, 0x14 = pan separation, 0x15 = internal volume thing that you can probably ignore, 0x16... = default volume table/etc...

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #83 on: 1 Mar '06 - 19:09 »
Hi Ian,

Ok, this is fixed.

What does mean other bits in "flags" ? xxx24xxx for xm for example ?
the usage of linear or amiga frequencies table ?

Any comment or addition about the effects encoding ?
And the sample info are incomplete, could you help me fixing this part ?

Laurent

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #84 on: 2 Mar '06 - 14:04 »
What does mean other bits in "flags" ? xxx24xxx for xm for example ?
the usage of linear or amiga frequencies table ?

1 = linear freqs
0x20000 is always set

As far as I can see, 0x4000 is currently unused.

And the sample info are incomplete, could you help me fixing this part ?

"finetune" is 4 bytes and doubles as "C4/5 speed" for S3M and IT (with Amiga slides).
0x0006 = panning
0x0016-19 = vibrato type/sweep/depth/rate
0x001A = global volume
0x001B = sustain loop start
0x001F = sustain loop end
0x0027 = encoder delay

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #85 on: 2 Mar '06 - 19:52 »
"finetune" is 4 bytes and doubles as "C4/5 speed" for S3M and IT (with Amiga slides).
you mean the value is doubled, but only for S3m and IT modules ?

0x0016-19 = vibrato type
could you tell me how the type is encoded ? 0=sine ? and for ramp up/down, square and random ?

Laurent

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #86 on: 3 Mar '06 - 12:16 »

And the 24 bytes at 0x322 at end of instruments structure ?

Laurent

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #87 on: 3 Mar '06 - 15:52 »
"finetune" is 4 bytes and doubles as "C4/5 speed" for S3M and IT (with Amiga slides).
you mean the value is doubled, but only for S3m and IT modules ?

No, I mean it's sometimes "finetune", and other times it's "C4/5 speed" (they aren't both needed). Basically, it's "C4/5 speed" when either the S3M or IT bit is set, unless the linear bit is also set.

0x0016-19 = vibrato type
could you tell me how the type is encoded ? 0=sine ? and for ramp up/down, square and random ?

0=Sine, 1=Ramp down, 2=Square, 3=Random.
                                               
And the 24 bytes at 0x322 at end of instruments structure ?

0x322-5 = vibrato stuff again
0x328-B = midi channel/bank/patch/bend
0x32C = global volume
0x32D = panning
0x32F = NNA
0x330 = PPS
0x331 = PPC
0x332 = DCT
0x333 = DCA
0x334 = RV
0x336 = RP
0x338 = IFC
0x339 = IFQ

See the IT specs for details of the acronyms above.

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #88 on: 3 Mar '06 - 16:30 »
OK,
and the first 4 bytes after instrument name ?

Laurent

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #89 on: 3 Mar '06 - 16:59 »
I don't where is "NoS"...
IFC and IFQ are not explained in the IT format doc I have...

Laurent

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #90 on: 5 Mar '06 - 14:43 »
and the first 4 bytes after instrument name ?

Flags... 1 = play on MIDI, 2 = mute. These are hardly ever used.

I don't where is "NoS"...

Count them in the "sample map".

IFC and IFQ are not explained in the IT format doc I have...

"IFC" = initial filter cutoff, "IFR" = initial filter resonance.

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #91 on: 5 Mar '06 - 15:27 »
Thank you

And about the effect tables ?
Are they correct ?
Should I regroup them in a single (factorized) one ? or each effect behavior is format (IT, S3M, XM...)
depend ?

had you take a lot at the code source ?

Laurent

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #92 on: 5 Mar '06 - 15:29 »
had you take a lot at the code source ?
ooops, you should have read
had you taken a look at the code source ?

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #93 on: 6 Mar '06 - 16:18 »
And about the effect tables ?
Are they correct ?
Should I regroup them in a single (factorized) one ? or each effect behavior is format (IT, S3M, XM...)
depend ?

I guess you could put them in MOD/MTM/XM and S3M/IT groups.

had you taken a look at the code source ?

No, not yet. If it's working, I guess it's ok :)

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #94 on: 6 Mar '06 - 21:34 »

OK.
The document is almost finished for me, I'm not planning to explain 100% how to replay XM, IT, S3M and MOD,
tracker editors know it better than me. And with the source code, they can analyse the MO3 files.

Ian, if you're thinking this is a good start for your spec, feel free to use the "unofficial" one as a beginning.

My goal is reached : enough details is now available to public about the MO3 format.

Thank you for answering my questions.

Laurent

raina

  • Posts: 1163
Re: Mo3 file format specs petition
« Reply #95 on: 7 Mar '06 - 17:15 »
Just out of curiosity, this:
0=Sine, 1=Ramp down, 2=Square, 3=Random.             
is purely IT, right? Since there's no random in Ft2 but Saw or whatchamacallit, Ramp up(?).

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #96 on: 7 Mar '06 - 18:05 »
Yep, the XM vibrato stuff is instrument-specific, so it's in the instrument info rather than the sample info.

Ian @ un4seen

  • Administrator
  • Posts: 20400
Re: Mo3 file format specs petition
« Reply #97 on: 13 Mar '06 - 15:23 »
My goal is reached : enough details is now available to public about the MO3 format.

I see the XMPlay wiki entry has been updated...

Quote
MO3 support - MO3 is only playable using XMPlay or players which rely on the UNMO3 tool, both closed-source freeware written by Ian Luck.

Was that you? :)

Besides being factually incorrect (plenty of software plays MO3 using BASS), I don't really see how it's relevant.

Zarggg

  • Posts: 1242
Re: Mo3 file format specs petition
« Reply #98 on: 13 Mar '06 - 23:41 »
Quote
MO3 support - MO3 is only playable using XMPlay or players which rely on the UNMO3 tool, both closed-source freeware written by Ian Luck.

Was that you? :)

Besides being factually incorrect (plenty of software plays MO3 using BASS), I don't really see how it's relevant.

I modified that statement to just read "MO3 support".

Laurent

  • Guest
Re: Mo3 file format specs petition
« Reply #99 on: 14 Mar '06 - 11:00 »

I see the XMPlay wiki entry has been updated...

Quote
MO3 support - MO3 is only playable using XMPlay or players which rely on the UNMO3 tool, both closed-source freeware written by Ian Luck.

Was that you? :)

Besides being factually incorrect (plenty of software plays MO3 using BASS), I don't really see how it's relevant.

I haven't written this sentence.

But I agree MO3 support replaying is today only supported by closed source software (unmo3 or bass).

I have written the link to MO3 page, that's all.

Laurent