|
|
Line 1: |
Line 1: |
| == Technical Information ==
| | #REDIRECT [[JUKEBOX.SI]] |
| Music is stored in Lego Island SI files. SI files are derivatives of the {{Wikipedia|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 <code>MxDa</code> and is split into chunks of <code>MxCh</code>. The <code>MxDa</code> header contains information about the PCM audio in the <code>MxCh</code> chunks. The first <code>MxCh</code> appears to be information about the remainder of the chunks in the <code>MxDa</code> structure.
| |
| | |
| '''MxDa Header Specification'''
| |
| {| class="wikitable"
| |
| |-
| |
| ! Bytes !! Offset !! Description
| |
| |-
| |
| | <code>MxDa</code> || 0 || Identifier
| |
| |-
| |
| | <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
| |
| |-
| |
| | 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 <code>Sample Rate * Number of Channels * BitsPerSample/8</code>
| |
| |-
| |
| | Bytes per Sample || 36 || 2-byte Integer - is equal to <code>Number of Channels * BitsPerSample/8</code>
| |
| |-
| |
| | 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
| |
| |}
| |