Mo3 file format specs petition

Started by discontinued,

Pailes^MilkyTracker

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


Hi,

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

Laurent

Ian @ un4seen

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

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

Quote from: LaurentWhat 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.

Quote from: LaurentAnd 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

Quote from: Ian @ un4seen"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 ?

Quote from: Ian @ un4seen0x0016-19 = vibrato type
could you tell me how the type is encoded ? 0=sine ? and for ramp up/down, square and random ?

Laurent

Laurent


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

Laurent

Ian @ un4seen

Quote from: Laurent
Quote from: Ian @ un4seen"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.

Quote from: Laurent
Quote from: Ian @ un4seen0x0016-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.
                                               
Quote from: LaurentAnd 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

OK,
and the first 4 bytes after instrument name ?

Laurent

Laurent

I don't where is "NoS"...
IFC and IFQ are not explained in the IT format doc I have...

Laurent

Ian @ un4seen

Quote from: Laurentand the first 4 bytes after instrument name ?

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

Quote from: LaurentI don't where is "NoS"...

Count them in the "sample map".

Quote from: LaurentIFC and IFQ are not explained in the IT format doc I have...

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

Laurent

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

Quote from: Laurenthad you take a lot at the code source ?
ooops, you should have read
had you taken a look at the code source ?

Ian @ un4seen

Quote from: LaurentAnd 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.

Quote from: Laurenthad you taken a look at the code source ?

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

Laurent


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

Just out of curiosity, this:
Quote from: Ian @ un4seen0=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

Yep, the XM vibrato stuff is instrument-specific, so it's in the instrument info rather than the sample info.

Ian @ un4seen

Quote from: LaurentMy goal is reached : enough details is now available to public about the MO3 format.

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

QuoteMO3 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

Quote from: Ian @ un4seen
QuoteMO3 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

Quote from: Ian @ un4seenI see the XMPlay wiki entry has been updated...

QuoteMO3 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