JUKEBOX.SI: Difference between revisions

no edit summary
(Created page with "JUKEBOX.SI is an SI file containing 60 audio tracks of music and radio dialogue. With a few exceptions{{Citation needed}}, all of Lego Island's music is s...")
 
No edit summary
Line 1: Line 1:
[[JUKEBOX.SI]] is an [[SI Files|SI file]] containing 60 audio tracks of music and radio dialogue. With a few exceptions{{Citation needed}}, all of [[Lego Island]]'s music is stored in JUKEBOX.SI.
[[JUKEBOX.SI]] is an [[SI Files|SI file]] containing 60 audio tracks of music and radio dialogue. With a few exceptions{{Citation needed}}, all of [[Lego Island]]'s music is stored in JUKEBOX.SI.
== Details ==
All audio in JUKEBOX.SI is uncompressed mono PCM. Most of the tracks are in 11025 Hz and 16-bit, but a handful are 22050 Hz and 8-bit. Each track starts with a header specifying its format (sample rate, sample size, byte rate, etc.)
Due to SI files' standardization with RIFF, each track's header is Microsoft {{Wikipedia|WAV}} compatible and can be transplanted directly into a WAV file's header. However due to SI files' chunked/interleaved nature, the PCM data cannot be directly transplanted without noticeable clicks and glitches in the output.
JUKEBOX.SI does not actually interleave its audio with any other data, making extraction easier than most SI files. However the audio is still separated into chunks and each chunk's 20-byte header (which is naturally not PCM data) is what causes the aforementioned clicks/glitches when trying to extract the data directly. These chunk headers will need to be removed to extract a clean copy of the audio.


== Technical Information ==
== Technical Information ==
All audio in JUKEBOX.SI is uncompressed mono PCM. Most of the tracks are in 11025 Hz and 16-bit, but a handful are 22050 Hz and 8-bit. Each track starts with a header specifying its format.
Due to SI files' standardization with RIFF, each track's header (containing information about the sample rate, format, etc.) can be transplanted directly into a WAV file, however due to their chunked/interleaved nature, the PCM data cannot be directly transplanted without noticeable clicks and glitches in the output.


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.
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.


All bytes are little endian.
All bytes are little endian as is normal for RIFF-based files.


'''MxDa Header Specification'''
'''MxDa Header Specification'''