JUKEBOX.SI: Difference between revisions

no edit summary
No edit summary
No edit summary
 
(5 intermediate revisions by one other user not shown)
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.
{{Confused|JUKEBOXW.SI}}
 
[[JUKEBOX.SI]] is an [[Interleaf 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 ==
== 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.)
As an Interleaf file, JUKEBOX.SI is a container for a large number of asset files. Most of these files are background and radio music (including the radio voices) in Microsoft {{Wikipedia|WAV}} audio, however there are also 4 [[FLIC]] video files for each of the building rooms (dune buggy, jetski, helicopter, and race car). These FLC files are the small instructional videos played in the screen and are interleaved together as "movies" that are equal length (thus looping together).


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.
All audio in JUKEBOX.SI (like most of LEGO Island's audio assets) is mono uncompressed PCM. While the majority of tracks are sampled at 11025 Hz/16-bit, a handful are sampled at 22050 Hz/8-bit. These can be distinguished by each track's WAV header (the "fmt " section if you're familiar with WAV headers) left intact in the first [[MxCh|chunk]] of their respective streams.


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.
When replacing, the WAV "fmt " header can be directly transplanted over the existing data in said first chunk. All WAV formats are compatible. The PCM data can be transplanted too, but it must be interleaved into chunks.


== Technical Information ==
== Technical Information ==
Line 55: Line 57:
|}
|}


Use this [http://archive.is/XXc3O WAV File Format Header Specification] and you'll be able to determine the ordering and size of the 16 bytes from "Audio Format" to "Bits per Sample per Channel" are identical. This makes up most of the WAV header data (apart from file and chunk size which cannot be determined from here) and can be directly transplanted to make extraction easier. Note that the MxCh header contains a few more bytes after this and therefore its "Sub-Chunk Size" is larger than the average WAV file's. These extra bytes should be ignored and not transplanted, though if they are the "Sub-Chunk Size" should be translated too (or at least increased to accommodate for them).
==== Transplanting the Header ====
 
Use this [http://archive.is/XXc3O WAV File Format Header Specification] and you'll be able to determine the 16 bytes from "Audio Format" to "Bits per Sample per Channel" are identical. This makes up most of the WAV header data (apart from file and chunk size which cannot be determined from here) and can be directly transplanted to make extraction easier and ensure the sample rate and sample size are correct in the extraction.
 
Note that the MxCh header contains a few more bytes after "Bits per Sample per Channel" and therefore its "Sub-Chunk Size" is larger than the average WAV file's. These extra bytes should be ignored and not transplanted, though if they are the "Sub-Chunk Size" should be translated too (or at least increased to accommodate for them).