AGI Sound
Moderator: ScummVM Team
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
AGI Sound
The AGI integration via Sarien is a welcome addition to ScummVM. I'd use it for all my AGI games if it weren't for this little hitch: Basically the sound is just not good. I remember hearing that Sarien was made to look more like the Amiga counterparts and that's probably why it sounds like a bad 80s synth or something, but is there any way we can get the original Tandy 3-voice (with volume envelope) square wave sounds implemented as well? The likes of which are supported by DosBOX and other AGI interpreters?
King's Quest I, for instance, should sound like this:
http://brandonblume.commerceculture.co. ... andy3v.ogg
King's Quest I, for instance, should sound like this:
http://brandonblume.commerceculture.co. ... andy3v.ogg
ScummVM already supports simulation of the IBM PCjr sound chip, with which the Tandy sound-chip in question was attempting to be compatible. While I agree that it doesn't sound as good as the clip you provided (I can't say if that's because of the different chips or just an imperfect simulation), it still sounds a lot better than the single-voice PC-Speaker music.
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
The IBM PCJr selection gives me the same sounds I've mentioned above: a bad 80s synth. I already know it has 3-voice compatibility but it's awful. I'm wondering if a true Tandy 3-voice-like sound will someday be integrated? I can't see how it can be that difficult. In terms of technicality, the current sound ScummVM is using (bad synth) is a lot more complex of a sound to generate than a simple square wave. Currently it sounds like some kind of saw wave. It just sounds bad. And I can't say it sounds anything like the IBM PCJr chip.
Unless my ScummVM 0.11.1 has an outdated sound driver for IBM PCJr for AGI games?
Unless my ScummVM 0.11.1 has an outdated sound driver for IBM PCJr for AGI games?
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
I say I can't see how it's difficult because the creators of other AGI interpreters said it wasn't that difficult. NAGI, for instance. I know ScummVM is a huge program which I guess makes it more difficult. I have experience in programming but currently couldn't hope to do anything so bold as program something on the scale of ScummVM. What little I do know makes me understand how difficult a huge program like ScummVM can be.
I wasn't trying to say "it's barely any work so why aren't you doing it?!" I'm simply asking if it will be supported someday and if it's a goal to be completed or just something that's not a priority (or ever will be). It would be a shame if it was the latter as it's not true AGI support otherwise. Like I said before, I'd really like to use ScummVM for AGI games but not if proper sound support isn't added. I don't mean to sound rude or insult anybody's work, but it seems like a cheap excuse to continue using the current support it has and call the AGI integration "finished." I don't remember any AGI game on any system sounding like that and that breaks the nostalgia factor (unless that's actually how it sounds on the Amiga).
Just wondering when/if it'll happen.
I wasn't trying to say "it's barely any work so why aren't you doing it?!" I'm simply asking if it will be supported someday and if it's a goal to be completed or just something that's not a priority (or ever will be). It would be a shame if it was the latter as it's not true AGI support otherwise. Like I said before, I'd really like to use ScummVM for AGI games but not if proper sound support isn't added. I don't mean to sound rude or insult anybody's work, but it seems like a cheap excuse to continue using the current support it has and call the AGI integration "finished." I don't remember any AGI game on any system sounding like that and that breaks the nostalgia factor (unless that's actually how it sounds on the Amiga).
Just wondering when/if it'll happen.
Last edited by MusicallyInspired on Sun Aug 10, 2008 1:28 pm, edited 1 time in total.
-
- ScummVM Developer
- Posts: 53
- Joined: Mon Apr 16, 2007 4:18 pm
- Location: Turku, Finland
- Contact:
To start off: I'm not the author of the sound engine currently in ScummVM's AGI engine but I've worked on the still-not-very-functional Apple IIGS sound support and other things in ScummVM's AGI engine. Also I have no experience with a real Tandy machine, I played AGI games on a normal PC with DOS back in the day.
So, to the point: I've thought so far that the sound engine used in ScummVM's AGI engine already is emulating the Tandy sound (Not perhaps very accurately but it has multiple sounds that one didn't have with a PC speaker back in the day).
After a quick glance into ScummVM's AGI engine's sound code it looks like it uses a square wave for Amiga and PC sound, but oddly the volume enveloping isn't used with them although there seems to be some code involving volume enveloping already in there. There's also a define for SOUND_EMU_TANDY but it's not used at all, a little weird. The square wave is taken from a small lookup table so that may explain why it doesn't sound very good (I'm not skilled at DSP algorithms but what I know about them generating even a square wave properly can be nontrivial).
BTW is that example sound file from an emulator (And if, from which one?) or a real Tandy?
So, to the point: I've thought so far that the sound engine used in ScummVM's AGI engine already is emulating the Tandy sound (Not perhaps very accurately but it has multiple sounds that one didn't have with a PC speaker back in the day).
After a quick glance into ScummVM's AGI engine's sound code it looks like it uses a square wave for Amiga and PC sound, but oddly the volume enveloping isn't used with them although there seems to be some code involving volume enveloping already in there. There's also a define for SOUND_EMU_TANDY but it's not used at all, a little weird. The square wave is taken from a small lookup table so that may explain why it doesn't sound very good (I'm not skilled at DSP algorithms but what I know about them generating even a square wave properly can be nontrivial).
BTW is that example sound file from an emulator (And if, from which one?) or a real Tandy?
Last edited by Buddha on Sun Aug 10, 2008 1:10 pm, edited 1 time in total.
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
Interesting.
That recording would be from DOSBox. NAGI sounds almost identical with a few differences (I think pitch is one of them). I may be able to get a true Tandy recording from a friend, though, if it'll help.
I should also mention that the current sfx channel sounds different as well (a single pitch hiss as opposed to a multi-pitch noise, if that makes sense). I can get a recording of that as well.
That recording would be from DOSBox. NAGI sounds almost identical with a few differences (I think pitch is one of them). I may be able to get a true Tandy recording from a friend, though, if it'll help.
I should also mention that the current sfx channel sounds different as well (a single pitch hiss as opposed to a multi-pitch noise, if that makes sense). I can get a recording of that as well.
-
- ScummVM Developer
- Posts: 53
- Joined: Mon Apr 16, 2007 4:18 pm
- Location: Turku, Finland
- Contact:
Ok, it's good to know sources for sounds. And to know which other sound emulation may sound close to them (e.g. NAGI). Hearing examples from a real Tandy might be nice too.
About the sfx channel, I think it's probably because currently the noise channel is simply made using the random number generator that ScummVM uses generally and not using a specific Tandy noise channel algorithm. I've previously searched the net for some info related to the Tandy's noise channel and there are some links already in AGI/TODO at http://wiki.scummvm.org/index.php/AGI_T ... ce_to_have
About the sfx channel, I think it's probably because currently the noise channel is simply made using the random number generator that ScummVM uses generally and not using a specific Tandy noise channel algorithm. I've previously searched the net for some info related to the Tandy's noise channel and there are some links already in AGI/TODO at http://wiki.scummvm.org/index.php/AGI_T ... ce_to_have
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
Ah, so it's planned but not a priority then.
Here's some recordings taken from an actual Tandy:
King's Quest III
Space Quest I
And for fun, here's a couple from Maniac Mansion.
Maniac Mansion
Maniac Mansion (Enhanced)
Here's some recordings taken from an actual Tandy:
King's Quest III
Space Quest I
And for fun, here's a couple from Maniac Mansion.
Maniac Mansion
Maniac Mansion (Enhanced)
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
Well they sound just like ScummVM does in my opinionMusicallyInspired wrote: And for fun, here's a couple from Maniac Mansion.
Maniac Mansion
Maniac Mansion (Enhanced)
So they couldn't just bring the pcjr calls of AGI's games to the sound emulator maniac mansion uses?
- MusicallyInspired
- Posts: 1138
- Joined: Fri Mar 02, 2007 8:03 am
- Location: Manitoba, Canada
- Contact:
I received an email of a bug report I submitted to SourceForge about this and was overjoyed to discover that this issue has been resolved! Finally ScummVM has proper AGI PCjr/Tandy 3-voice sound support! This is fantastic! Thank you so much! It's in the latest SVN currently and the new sounds are available by default for DOS games while the Atari and Amiga versions default to the original sound engine.
Joy! Happiness! Gladness!
Joy! Happiness! Gladness!