Music: Difference between revisions

From LEGO Island Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 14: Line 14:
|-
|-
| <code>MxCh</code> || 4 || Chunk Header
| <code>MxCh</code> || 4 || Chunk Header
|-
| Chunk Size || 8 || 4-byte Integer
|-
|-
| Sub-Chunk Size || 22 || 4-byte Integer - The remaining size of this chunk after this value
| Sub-Chunk Size || 22 || 4-byte Integer - The remaining size of this chunk after this value
Line 28: Line 30:
|-
|-
| Bits per Sample per Channel || 38 || 2-byte Integer - 8 = 8-bit, 16 = 16-bit, etc.
| Bits per Sample per Channel || 38 || 2-byte Integer - 8 = 8-bit, 16 = 16-bit, etc.
|}
'''MxCh Specification'''
{| class="wikitable"
|-
! Bytes !! Offset !! Description
|-
| <code>MxCh</code> || 0 || Chunk Header
|-
| Chunk Size || 4 || 4-byte Integer
|-
| Data|| 8 || Arbitrary data no more than "Chunk Size" in bytes
|}
|}

Revision as of 02:39, 18 April 2019

Technical Information

Music is stored in Lego Island SI files. SI files are derivatives of the Resource Interchange File Format best known as the basis of AVI and WAV files.

All music appears to be 11025Hz Mono Signed 16-bit. All bytes are little endian.

Music appears to begin with a MxDa and is split into chunks of MxCh. The MxDa header contains information about the PCM audio in the MxCh chunks. The first MxCh appears to be information about the remainder of the chunks in the MxDa structure.

MxDa Header Specification

Bytes Offset Description
MxDa 0 Identifier
MxCh 4 Chunk Header
Chunk Size 8 4-byte Integer
Sub-Chunk Size 22 4-byte Integer - The remaining size of this chunk after this value
Audio Format 26 2-byte Integer - 1 = PCM, others indicate some form of compression
Number of Channels 28 2-byte Integer - 1 = Mono, 2 = Stereo
Sample Rate 30 4-byte Integer
Byte Rate 34 4-byte Integer - is equal to Sample Rate * Number of Channels * BitsPerSample/8
Bytes per Sample 36 2-byte Integer - is equal to Number of Channels * BitsPerSample/8
Bits per Sample per Channel 38 2-byte Integer - 8 = 8-bit, 16 = 16-bit, etc.

MxCh Specification

Bytes Offset Description
MxCh 0 Chunk Header
Chunk Size 4 4-byte Integer
Data 8 Arbitrary data no more than "Chunk Size" in bytes