Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SCUMM: Add adjustment sliders for VGA Loom (CD) and MI1 (CD) audio #3920

Merged
merged 2 commits into from Jun 3, 2022

Conversation

eriktorbjorn
Copy link
Member

@eriktorbjorn eriktorbjorn commented May 29, 2022

When ripping the audio tracks from CD, you may not get quite what the game expects, e.g. my copy of Loom has less silence at the start of the track than the CDDA.SOU file from the Steam version, causing numerous sound glitches. And the MI1 intro appears to be timed with the assumption that there is no silence at all at the start of that track.

This pull request adds game-specific settings to help compensate for this without having the edit the audio files. ("Why settings?" you may ask. Well, I'm told that all CD rippers/CD drives don't produce quite identical results, so hard-coding the adjustments seems risky. And for MI1, I can easily see a situation where someone may want to replace the audio tracks, e.g. from the Special Edition.)

There are three settings:

  • For VGA talkie Loom, "Playback Adjust" adjusts the offset to start playing from by anything from -2 to +2 seconds. I set this to -0.34 to match CDDA.SOU.
  • For MI1 CD (DOS, SEGA, FM Towns, SE Talkie), "Intro Adjust" adjusts the offset to start playing the opening music from by anything from 0 to 2 seconds. I set this to +1.14 to get the music to sync up better with the animation, and not get cut off at the end.
  • For MI1 CD (DOS, SEGA, FM Towns), "Outlook Adjust" adjusts the offset to start playing the outlook part of the intro music from by anything from -2 to 2 seconds. I set this to +0.40 to avoid hearing the fade-out of the intro music. This option is not available for the SE Talkie since it uses a separate track for the outlook music.

Actually, it seems to be of limited use for the SE Talkie since both the "CD" soundtracks it built appear to be well timed. So maybe the setting should be removed completely from that version to keep things simple?

The names of the settings are also open to debate.

I don't own the SEGA and FM Towns versions, so I can't test with them. It's possible that timing differences make the settings less useful there.

When ripping the audio tracks from CD, you may not get quite what the
game expects, e.g. my copy of Loom has less silence at the start of the
track than the CDDA.SOU file from the Steam version. And the MI1 intro
appears to be timed with the assumption that there is no silence at all
at the start of that track.

This makes it possible to compensate for that without having to edit the
audio file. It may also be of some help with fan soundtrack replacements
for MI1, though I have little experience with that.
@eriktorbjorn
Copy link
Member Author

@eriktorbjorn eriktorbjorn commented May 29, 2022

Some screenshots of what the settings look like, with my adjustments applied:

mi1-settings

loom-settings

The tracks built for the SE Talkie already have little to no silence at
the beginning, and the outlook has its own separate track instead of a
continuation of the first one.

That means the settings are of limited use here, and removing them
simplifies the code.
@sev-
Copy link
Member

@sev- sev- commented Jun 3, 2022

Excellent thing! Could you please also mention it in the NEWS.md?

@sev- sev- merged commit 682330f into scummvm:master Jun 3, 2022
8 checks passed
// Slightly increase the delay (5 frames = 1/25 of a second).
// This noticably improves the experience in Loom CD.
delay = (int)(delay * 7.5 + 5);

_sound->playCDTrack(1, 0, offset, delay);
_sound->playCDTrack(1, 1, offset, delay);
Copy link
Member

@somaen somaen Jun 3, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, why is this changing?

Copy link
Member Author

@eriktorbjorn eriktorbjorn Jun 4, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Because I wanted to be able to play from the very start of the track, i.e. offset 0, but specifying 0 both as offset and loop counter caused it to not play the track at all. See DefaultAudioCDManager::play(). If I understand things correctly, specifying 0 and 1 as loop counter does the same thing?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants