Why do some PS1 tracks not loop seamlessly?

Audio and Music (Sound Processing Unit) based area of development, including VAB, XA, etc
Post Reply
FulminisIctus
What is PSXDEV?
What is PSXDEV?
Posts: 2
Joined: Sep 11, 2020

Why do some PS1 tracks not loop seamlessly?

Post by FulminisIctus » September 11th, 2020, 1:53 am

I'm currently researching the reason behind why some PS1 games don't have seamlessly looping music (specifically Mega Man X3) and stumbled upon this forum. I hope someone can help me clear things up!

Mega Man X3 on PS1 doesn't have seamlessly looping music, as opposed to the SNES version. It fades out at some point, pauses for a few seconds (which might be the pregap's fault that's attached to each track) and then restarts the music from the beginning. Same is true for the Spyro games, which fade out and then fade back in again (though they seem to be one big file without pregaps). FF7 on the other hand seems to have mostly seamlessly looping music.

From what I've gathered it sounds like the PS1 supports MIDI, which would allow for seamless looping, SPU-ADPCM which allows you to set loop points (or does SPU-ADPCM have something to do with MIDI?) and XA-ADPCM which doesn't support looping according to this (https://problemkaputt.de/psx-spx.htm#spuadpcmsamples), though I don't quite understand if the latter just means that XA-ADPCM audio doesn't support loop points or if you can't tell it to automatically start from the beginning once it's done playing.

This probably means that Final Fantasy 7 uses MIDI (which others on the internet seem to confirm) and that Mega Man X3 and Spyro use XA-ADPCM (or SPU-ADPCM?). I can imagine what the reasons for using (XA-?)ADPCM over MIDI or the other way around are, but it's not quite clear to me if there was no way for PS1 game devs to have looping music if they didn't want to use MIDI and if that was why they went for the "fade out and then fade back in"-loop tactic.

To sum things up my questions are pretty much:
- Do SPU-ADPCM and MIDI have something to do with each other?
- Can XA-ADPCM not loop seamlessly, and if so, why (is it maybe because there's a mandatory pregap that can't be skipped)?
- Do the tracks in Mega Man X3 and Spyro not loop because they are in the XA-ADPCM format?
- If SPU-ADPCM and MIDI are indeed different things, then why did the devs not use SPU-ADPCM rather than XA-ADPCM to make sure that the music loops seamlessly (is it because the SPU RAM was too small for that? What was SPU-ADPCM used for instead then)?
- Was there no way to have looping music on the PS1 without using MIDI?
(The penultimate question is pretty much: Why do some PS1 games have tracks that do not loop seamlessly?)

I'm sorry for the barrage of questions but I hope someone can clear up my confusion (and maybe misunderstandings) about this whole ADPCM and looping topic. I'd really appreciate any kind of help!
Last edited by FulminisIctus on September 20th, 2020, 11:50 pm, edited 2 times in total.

User avatar
Shadow
Verified
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » September 20th, 2020, 6:40 pm

Any music track (SPU based or CDDA/XA based) can loop. Just depends if the programmers added it or not.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

FulminisIctus
What is PSXDEV?
What is PSXDEV?
Posts: 2
Joined: Sep 11, 2020

Post by FulminisIctus » September 20th, 2020, 11:49 pm

Shadow wrote: September 20th, 2020, 6:40 pm Any music track (SPU based or CDDA/XA based) can loop. Just depends if the programmers added it or not.
Thanks a lot for the response! Does that include seamless looping? I've seen someone mention that because the laser has to readjust itself to get back to the beginning of a sector to play the XA file from the beginning, there's a small gap that makes seamless looping impossible for XA files. The tracks in Spyro and Mega Man X3 do loop, but not seamlessly and I assume it's because of the aforementioned reason.
(I should add "seamlessly" to my post title to make that clearer)

User avatar
Shadow
Verified
Admin / PSXDEV
Admin / PSXDEV
Posts: 2670
Joined: Dec 31, 2012
PlayStation Model: H2000/5502
Discord: Shadow^PSXDEV

Post by Shadow » October 12th, 2020, 12:46 pm

Yes, that is correct. There is always a slight pause because the laser needs to seek.
Development Console: SCPH-5502 with 8MB RAM, MM3 Modchip, PAL 60 Colour Modification (for NTSC), PSIO Switch Board, DB-9 breakout headers for both RGB and Serial output and an Xplorer with CAETLA 0.34.

PlayStation Development PC: Windows 98 SE, Pentium 3 at 400MHz, 128MB SDRAM, DTL-H2000, DTL-H2010, DTL-H201A, DTL-S2020 (with 4GB SCSI-2 HDD), 21" Sony G420, CD-R burner, 3.25" and 5.25" Floppy Diskette Drives, ZIP 100 Diskette Drive and an IBM Model M keyboard.

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests