XA (eXtended Architecture) has to do with the way data is placed on a CD. Specifically, raw data is on one sector, while headers and text are on a separate sector.
Muzak CDs are probably XA format - but that has nothing to do with decoding the audio data. First I need to decipher the audio - then work on the XA part.
BGM CD (Background Music CD)
I wonder if ACU Shell or Media Stockroom (from icdia.co.uk) decode mode would work on it?cdifan wrote:Try looking for the CD-ROM XA ADPCM format, it is a subset of the CD-i encoding (restricted sample rates and/or bitrates, I think). I believe FFMPEG is able to decode it; don't know if there is an open-source encoder for it...
These programs can create it.
You should be able to take the files from the disk using IsoBuster.
- cdifan
- CD-i Emulator Author
- Posts: 923
- Joined: Fri Jun 24, 2005 6:19 am
- Location: The Netherlands
- Contact:
They should, otherwise the discs wouldn't play on stock CD-i hardware (which they did, in addition to the BGM players).cdoty wrote:I wonder if ACU Shell or Media Stockroom (from icdia.co.uk) decode mode would work on it?
The files were not created with ACU Shell, though; much too slow. Codim used a hardware encoding board (very rare and treated with extreme care; I think it was produced by Sony).
That was then, this is now!cdifan wrote:The files were not created with ACU Shell, though; much too slow. Codim used a hardware encoding board (very rare and treated with extreme care; I think it was produced by Sony).
![Smile :)](./images/smilies/icon_smile.gif)
I wonder if a modern PC would be faster than the board today? It probably wouldn't take advantage of a multi-core processor, but in raw processing power alone it might blow the board away.
- cdifan
- CD-i Emulator Author
- Posts: 923
- Joined: Fri Jun 24, 2005 6:19 am
- Location: The Netherlands
- Contact:
Re: BGM CD (Background Music CD)
What CD-I emulator did you use, and how does it crash? If I had a sample disc, I could probably do some reverse engineering. The original BGM discs did play on "regular" CD-I players, as far as I know.musicbymuzak wrote:I get the impression that the 76kb music player from 1995, included on every one of these discs, was based on the original 1989 CD-I music player application, adapted for AEI's purposes, and eventually supposed to enable sophisticated features on later machines. It seems to have provisions for recognising a non-AEI player (so it would crash a home CD-I player; it won't work when I try to get a CD-I emulator to run it), "expiring" a disc based on date-time, enable different remix sequences based on the day; and relies on three files to tell it what to do.
The "PATH_TBL" file is usually the "path table" that defines paths to all the directories on the disc, its format is defined directly in the Green Book.musicbymuzak wrote: "RemixSEQ" tells it to sequence a set of four folders (CBCACDC for example, if folder "C" contained popular music and "B" not so much); and "BGMINDEX" may act like a TOC, that tells the player where each song is within the folders in the MUSIC suitcase. "PATH_TBL" may be for defining paths.
The ultimate mastering program was probably just "master", the standard disc image creation program by OptImage. It would take a build script and data files to build that image.musicbymuzak wrote: Jac, do you recall any names of the mastering or creation programs? I would reeeeallly love to create CD-BGMs if only for the novelty!
For a BGM disc, the data files would all the files mentioned above except the "PATH_TBL" file.
- cdifan
- CD-i Emulator Author
- Posts: 923
- Joined: Fri Jun 24, 2005 6:19 am
- Location: The Netherlands
- Contact:
Re: BGM CD (Background Music CD)
That would be the cracked version, and I know the ROMs it has. Interesting that the application "hacks" the front display... I didn't know of any CD-I application that does this.musicbymuzak wrote:I used the version of CdiEmu that has the ROMS bundled in the ZIP file that's floating around the net. The black and white "display" box will flash "AEI--" and then the player will continually reboot.
- cdifan
- CD-i Emulator Author
- Posts: 923
- Joined: Fri Jun 24, 2005 6:19 am
- Location: The Netherlands
- Contact:
Re: BGM CD (Background Music CD)
Thanks for the info so far, but I really need an actual disc image if I am to start debugging...
- jac_goudsmit
- Burn:Cycle Activated
- Posts: 5
- Joined: Fri Jan 27, 2006 11:23 pm
- Location: Mesa, Arizona
Re: BGM CD (Background Music CD)
I've forgotten most details but the music file would be a large file with 4 tracks of interleaved ADPCM encoded data. This is a real-time-file, i.e. it gets played at single speed i.e. 75 sectors per second. It's stored on the disc as Mode 2 Form 2 (M2F2), i.e. 2324 bytes of data per sector instead of the 2048 that are usual for CD-ROM (so to extract the file from the disc, you need a program that knows how to extract M2F2 sectors). Because the file is played in real-time and ADPCM is 4:1 compressed, it's possible to put 4 (mono) tracks of ADPCM in a single file. Each sector has 4 ADPCM frames; one for each audio track. The Green Book describes how ADPCM is encoded and interleaved.musicbymuzak wrote:At first I thought the 500mb "music" file on an AEI Prodisc was just an XA audio file, since PSMplay can play it and shows 4 51min tracks. But any XA audio file made from a WAV at the same sampling rate wouldn't work in PsmPlay.
I know many people refer to PCM files as WAV files and PCM files (i.e. with uncompressed audio data) are usually stored as WAV files but a WAV file can contain other data too. Replacing the music file of a BGM disc with PCM data wouldn't work because (1) it's not ADPCM (2) it's not interleaved and (3) the information in the other files won't match your music file. Also (4) to make the BGM disc play on an actual BGM player, some files need to be in the right locations on the disc.
It should be possible and not too hard to encode ADPCM from any music data, and use a simple program to interleave it into a file that could be used on your own BGM disc. That would solve problem 1 and 2. But you would still need to solve problems 3 and possibly 4.
Are you sure that the music file has a header on your disc? I'm quite sure that song, artist and title data is stored in separate files (stored in Mode 2 form 1) to make sure that the information can be read without a chance that it might get corrupted. If you're seeing non-ADPCM data in the music file on your disc, it may be because the disc producer made a mistake when mastering, or it may be because they wanted to add some redundancy or it may be because they wanted to make the music more difficult to copy or something.I thought I would be clever and simply make one giant XA file and swap it out within the CDi image of a 'working' BGM disc, but the genuine MUSIC file has all the song, artist and label info embedded in a header; I can't tell where the actual audio data begins or ends. There went that idea.
That being said, the file that contains the track/artist info contains time codes if I recall correctly, and it's definitely possible to make the first song of each track start at a different location than the first sector, so the BGM player and CD-i player can definitely deal with garbage at the beginning of the music file -- they just skip it if the time codes tell it to do so.
The path_tbl file (as well as "album" "author" "manufacturer") are standard CD-i files described in the Green Book. I don't remember which files are required for BGM discs and the Green Book PDF that I just found online doesn't have any information about BGM (I think it was a separate attachment that came later, but I don't remember).The discs do seem to follow the basic standard, with some seemingly empty files from 1992ish and 3 that are always updated in addition to MUSIC.
REMIXSEQ, PATH_TBL, BGMINDEX.PRO, and MUSIC are always dated the same month the disc is marked for.
They always have different data within them, so it stands to reason they're created at the same time MUSIC is. I just have no idea what relation these files have to each other, aside from speculation.
I expect that BGMINDEX.PRO contains track information in ASCII. It's possible that time codes are stored as binary codes or as BCD codes (e.g. 0x123456 means 12 minutes, 34 seconds and 56 sectors; there are 75 sectors in a second and there are 2324 bytes per sector, of which I think 2304 bytes are used for four ADPCM frames). Either way the time codes are probably offsets in terms of sectors, stored in Big Endian format because the CPU was a 68000. Probably the information for each title on the disc takes up the same number of bytes in the file.
I don't remember seeing the REMIXSEQ file, I speculate that that might be a specific feature for the program that's on your disc. It's possible that the producer of your disc added special features that weren't required by the standard BGM format.I get the impression that the 76kb music player from 1995, included on every one of these discs, was based on the original 1989 CD-I music player application, adapted for AEI's purposes, and eventually supposed to enable sophisticated features on later machines. It seems to have provisions for recognising a non-AEI player (so it would crash a home CD-I player; it won't work when I try to get a CD-I emulator to run it), "expiring" a disc based on date-time, enable different remix sequences based on the day; and relies on three files to tell it what to do. "RemixSEQ" tells it to sequence a set of four folders (CBCACDC for example, if folder "C" contained popular music and "B" not so much); and "BGMINDEX" may act like a TOC, that tells the player where each song is within the folders in the MUSIC suitcase. "PATH_TBL" may be for defining paths. I have a feeling the disc mastering program would dump the song info plus raw music into the MUSIC suitcase, then generate the other 3 files based on what was in there.
As far as I know, there were no public programs to master CD-i's specifically for BGM. At Codim, we just used the standard OptImage mastering tools with an input file that was probably either the same for each disc, or was automatically modified to adapt to the differences between discs. I think BGM required certain files (presumably the BGMINDEX.PRO file and the music file) to start at a certain location on the disc, and that was easy to accomplish with the OptImage tools.Jac, do you recall any names of the mastering or creation programs? I would reeeeallly love to create CD-BGMs if only for the novelty!
Hope this helps!
===Jac