I've already said that I think the Genesis for the most part sounds better (I'll take the tinnier noise over the ultra muffled fare of the SNES) but there are a few games that actually manage to sound very clear and have me wondering how they could have fit all the sound data into the puny 64KB of audio ram. The Donkey Kong Country games all sound very good for the most part, but a few songs like Gangplank Galleon, Bayou Boogie, and Rockface Rumble sound nearly CD quality. It's really dependent on what instruments are being used for each song, as while I love both Nuts and Bolts and Big Boss Blues, the guitar sound samples are of noticeably less quality than the rest for whatever reason. Ironically, if you listen to Rendering Ranger R2, the guitar sounds sound almost exactly like the ones from the Roland SC55 while some of the others are shit-tier (Stage 2's music will make your ears bleed). I'm assuming the disparity in instrument quality in songs has more to do with space than how the instruments themselves sound, unless there are some instruments that aren't as impacted by lower sample rates or Gaussian filtering. Also, although it sounds like shit, the SFC port of Undercover Cops blows my mind for having so many sound samples that need to be played at the same time even if they are terrible.
https://www.youtube.com/watch?v=hG-DIhaK5BQ#t=10m58s
I suspect that the best sounding SNES games don't just sound so good because of high-quality samples - although I'm sure that's a part of it.
Listen to something like the flutes on
Seiken Densetsu 3's soundtrack. That's a good sample for sure, but I also bet that the sound engine gave the composer a ton of flexibility to manipulate that sample in real-time, to make it warble and decay and vary the intensity in a really natural way.
The worst sounding SNES games are the ones that sound like they're just blaring a sequence of WAV files at me. Even if they're "realistic" WAV files, it sounds rinky-dink.
I do wonder what is the average length of a good sounding sample, what pitch they were recorded at and how many samples do good sounding games actually use at once. Plus how many instruments use tricks like vibrato, or layering and stuff.
This would be really cool for someone to look into, I haven't seen a lot of writing on this subject, and as Espozo already pointed out, David Wise really knew how to make the SNES soundchip purr, like almost no other. So it's definitely possible to go beyond what people usually expect from this machine.
Tim Follin is another really fine example - although I much prefer his NES soundtracks, the music in Plok sounds remarkably clear compared to almost every other SNES game.
One thing I always suspected is that the constant attempt to make something that sounds like real instruments tended to backfire a lot on developers. No matter the sample rate, there are just some sounds that will never come out well on a SNES, especially for the purpose of playing music. Certain instruments will work better than others, and electronic/synthetic music is always easier to get the right sound out of.
And of course, just like when you are mixing your tracks in "actual" music production, I'm sure you want to prevent the frequencies of multiple instruments to clash with eachother. I woudn't be surprised if a lot of SNES musicians weren't too familiar with this concept. It's definitely another thing David Wise did really well.
Sumez wrote:
David Wise really knew how to make the SNES soundchip purr, like almost no other.
Eveline Novakovic did some of the songs for DKC. According to this, she composed and arranged:
Simian Segue
Candy's Love Song
Voices of the Temple
Forest Frenzy
Treetop Rock
Northern Hemispheres
Ice Cave Chant
According to this, she also single-handedly made all of DKC3's soundtrack. David Wise is listed in the credits, but from my understanding, he didn't really do much of anything for this game. I actually really like the music in DKC3, even if most people don't. It really goes well with the atmosphere of the levels, like how the music for the water levels is earie and the music for the mill levels is lighthearted. Most people gush over Stickerbrush Symphony and Forest Interlude, but I never liked how "bubbly" they are considering the setting, although the haunted forest levels are a bit comical (of course, the whole game is with its concept and art style). Flight of the Zinger and Bayou Boogie are awesome though.
Sumez wrote:
No matter the sample rate, there are just some sounds that will never come out well on a SNES, especially for the purpose of playing music.
That would be the sample rate.
I sincerely doubt any instruments in any of the songs I listed run at the full 32KHz.
Sumez wrote:
And of course, just like when you are mixing your tracks in "actual" music production, I'm sure you want to prevent the frequencies of multiple instruments to clash with eachother. I woudn't be surprised if a lot of SNES musicians weren't too familiar with this concept. It's definitely another thing David Wise did really well.
I wouldn't be surprised if most from the period weren't too familiar with the concept. I can't comment on games now, because they don't have music.
Is there another SPC player with a view like this? This player kevtris made displays all the CPU reads/writes, samples, and echo buffer. It's pretty interesting to see exactly how the RAM is used.
https://www.youtube.com/watch?v=Q2WJCgOW4qMhttps://www.youtube.com/watch?v=maQffWS2_jQ
Star Ocean has some nice stuff. They had a streaming engine, where they'd switch out instruments while the track was playing. As far as I know it's the only commercial game that did that, unless you count the intro to Tales of Phantasia. The result is that several tracks are undumpable in SPC format.
Lord of the Rings has a non-encapsulated audio engine and is therefore undumpable; not sure of the details. There are a couple of really nice tracks on there.
NBA Live '96 seems to have stuffed the ARAM so full of samples there wasn't room for an engine, though that's just a guess. It's undumpable too.
My amazing ports of [redacted], Street Fighter Alpha 2 and Thunder Force IV use a high-speed HDMA streaming engine, similar to the one in Espozo's port of Metal Slug. It allows up to two 32 kHz channels or three 22 kHz channels of streamed audio, or a larger number of lower-bitrate channels, and it can be used either to play samples live or to switch out static samples, code, or song data. All with only a few percent load on the S-CPU. If this ever actually happens it will be cool... Heck, if I ever got a sound playing on the SPC700 it would be cool...
But I don't think anybody's going to beat blargg's record - one minute of uncompressed 32 kHz 15-bit stereo sound with just a few bytes of ARAM used...
Memblers wrote:
Is there another SPC player with a view like this? This player kevtris made displays all the CPU reads/writes, samples, and echo buffer. It's pretty interesting to see exactly how the RAM is used.
https://www.youtube.com/watch?v=Q2WJCgOW4qMhttps://www.youtube.com/watch?v=maQffWS2_jQIt's interesting that the electric guitar in Plok is so tiny. Must use a ton of vibrato.
That's actually the first time I've heard music from Plok. That's probably the weirdest, most distinct soundtrack I've heard (nothing like anything else I've heard on the SNES) but damn is it clear.
93143 wrote:
My amazing ports of [redacted], Street Fighter Alpha 2 and Thunder Force IV use a high-speed HDMA streaming engine, similar to the one in Espozo's port of Metal Slug
As long as you have some of the more prominent instruments sounding clear (such as the guitar in Plok), I'm sure you can get away with a lot more muddled sounds for all the subtle stuf. The biggest issue of a lot of SNES soundtracks is how the "foreground" of the music tends to blend into the "background". I really hate the Castlevania IV soundtrack for this, but people love that, so I shouldn't comment on it. YMMV I guess.
Not so long ago I went through all the SNES soundtracks and sorted out things that were "good" and "OK" and these are the results :
Code:
Good :
Aero The AcroBat 2
Air Strike Patrol
Battletoads & Double Dragon
Biker Mice From Mars
BioMetal.rsn
Blazeon.rsn
Brainlord
Brandish 2
Der Langrisser
Dino Dini's Soccer
Dragon Knight 4
F1 Grand Prix partIII
Famigom Tantei Club 2
Fighting To Bassing
Final Stretch
First Queen
Ghost Chaser Densei.RSN
Gundam Wing Endless Duel
Hourai Gakuen Bouken.RSN
Jaki Crush
Kyuuyaku Megami Tensei
Lagoon
Last Bible 3
Little Master
Masoukishin
Mega Man 7
Mighty Morphin' Power Rangers
Mighty Morphin Power Rangers Fighting Edition.RSN
Monstania
Ohmono Black Bass Fishing
Pac-In-Time.RSN
Parlor! Mini.RSN
Phalanx.RSN
Popful Mail
Pop'n'Twinbee
Power Rangers The Movie
Power Rangers Zeo
Pro Sport Hockey
Shin Nippon Pro Wrestling
Side Pocket
Solid Runner
Super Bonk
Super Mad Champ
Syutoko Battle Racing 2.RSN
The Ninja Warior
Zennihon Pro Wrestling 2
Zero The Kamikaze Squirrel
OK :
Accelebrid
Ace O Nerae!
Addams Family Values
Adventure Island.RSN
AokiDenetsuShoot!.rsn
Apocalypse2.rsn
ArcusSpirits.rsn
BahamutLagoon.rsn
BarbieSuperModel.rsn
BarbieVacationAdventure.rsn
Bastard!!!.rsn
Battle Cars
BattleGrandPrix.rsn
BattleMaster.rsn
BattleMobile.rsn
BattletoadsInBattlemania.rsn
BazookaBlitzkrieg.rsn
BlockKuzushi.rsn
CaptainTsubasa3.RSN
CekisouSentaiCarRangers.rsn
ChronoTrigger.RSN
CrystalBeans.rsn
Cyborg009.rsn
David Crane's Amazing Tennis.RSN
Dolucky's Kusa Yakyu.RSN
Donkey Kong Country.RSN
Donkey Kong Country 2.RSN
Donkey Kong Country 3.RSN
Doukyuusei 2.RSN
Dragon Ball Z Super Gokuden.RSN
Energy Breaker.RSN
F1 Grand Prix Part 2.RSN
Fight Da Pon!.rsn
Foreman For Real.RSN
Full Throttle Racing.RSN
Ghost Sweeper Mikami.RSN
GP-1.RSN
Gradius III.RSN
Great Battle Gaiden 2.RSN
Gundam F-91.RSN
Hagane.RSN
Hansei Zarujirou Kun No Daibouken.RSN
Hat Trick Hero 2.RSN
Hero Senki.RSN
Human Grand Prix 3.RSN
International Superstar Soccer Deluxe.RSN
International Superstar Soccer.RSN
Iron Commando.RSN
Jikkyou Powerful Pro Yakyuu 3.RSN
Jim Lee's Wild CATS.RSN
Jim Power.rsn
Jimmy Connors Pro Tennis Tour.RSN
J-League Super Soccer 95.RSN
Jumbo Ozaki No Hole In One.RSN
Ken Griffey Jr. Baseball.RSN
Kishin Douji Zenki.RSN
Kouryu No Mimi.RSN
Lethal Enforcers.RSN
Live A Live
Madara 2.RSN
MegaMan X
MegaMan X2.rsn
MegaMan X3
Nekketsu Tairiku Burning Heroes
Parlor Parlor 2.RSN
Parlor Parlor 4.RSN
Parlor Parlor 5.RSN
Pieces.RSN
Plok!.RSN
Power Slide FX.RSN
Prince Of Persia.rsn
Raiden Densetsu.RSN
Rockman & Forte.RSN
Rushing Beat Syura.RSN
Saturday Night Slam Masters.RSN
SD Gundam 2.RSN
Seijuu Maden - Beasts & Blades.RSN
Shijou Saikyou League Serie A.RSN
Shin Ikkau Senkin.RSN
Shonen Ninja Sasuke.RSN
Shooting Macross.RSN
Sonic Blastman.RSN
Spark World.RSN
Sparkster.rsn
Spider Man & The X-Men.RSN
Star Ocean
Stargate.rsn
Stone Protectors.RSN
Sunset Riders.RSN
Super Back To The Future.RSN
Super Bomberman Panic Bomber W.rsn
Super EDF.RSN
Super Family Gerende.RSN
Super Hockey 94.RSN
Super Robot Taisen 3
Super Volley II.RSN
SuperxTekkyuxFight.RSN
SWAT Kats.RSN
Tarot Mystery
The Great Battle IV.RSN
The Great Battle V.RSN
The Lawnmower Man.RSN
TMNT Tournament Fighters.rsn
Tokimeki Memorial.RSN
Top Gear 2.RSN
Turtles In Time.RSN
TwinBee Rainbow Bell Adventure.rsn
Waterworld.RSN
Wild Guns.RSN
Winter Olympic Games.RSN
Wolf Child.rsn
Zennihon Pro Wrestling Dash
Zennihon Pro Wrestling.RSN
One thing to consider however is that "good" and "ok" are highly subjective, plus I also accounted for compositional quality first and foremost not just sound quality, though usually both go hand in hand with these games but not always. Good composition and not so good sound quality can get to the list but the opposite does not.
Memblers wrote:
Is there another SPC player with a view like this? This player kevtris made displays all the CPU reads/writes, samples, and echo buffer. It's pretty interesting to see exactly how the RAM is used.
Raphnet's vspcplay has most of the same functionality. Less good APU emulation, tho.
Yeah, I'm not going to respect a list that doesn't put DKC1-3 in the highest tier, but fucking Phalanx instead.
This list would be impossible for me to make, because there are games where I like the compositional quality but the sound quality is bad. Stage 1 of R-Type III (of course
) is an amazing remix of Stage 1 of the first game, but it sounds like you're listening to it from across the house.
DKC games sound nice and have a few good tracks here and there but not enough of them for me to put them in the higher category. But that is the whole thing with subjectiveness, plus my lists aren't about "best sounding" though there is some overlap with what this thread is about so there's some usefulness.
I have a hard time listening to anything with bad instruments, or clashing instruments.
I honestly think Donkey Kong Country 2 is the absolute finest soundtrack to come out of the SNES, when looking at a combination of compositions and technical feats. The sounds are crisp and clear, and you can tell that the music was crafted with the strengths and limitations of the system in mind (something you'd also see especially British developers do a lot in the 8 bit era, but was a very rare sight in any 16 bit game). It's a masterpiece, and I wouldn't let the popularity of Stickerbush Symphony overshadow how great everything else is. Here's a completely different track that showcases a very different style, and playing my SNES with the sound connected to my PA system, I love to crank it up on these stages. The bass is real:
https://www.youtube.com/watch?v=v5VYcjnCEuoAnd in the same game we have something like this. I love how it plays with the low res audio samples to get a very specific atmosphere:
https://www.youtube.com/watch?v=unSBD_4mDT4This whole thing is so incredibly memorable.
I'm probably more of a fan of both Chrono Trigger and FF6's soundtracks overall, but I feel like these are the products of great composers to a bigger extend than great sound engineers (though CT's soundtrack seems to fit the SNES soundchip somewhat better)
From what I can tell, it seems like most samples are about 8kB long.
Could you guys please share your toughts about Rock'n Roll Racing sound engineering?
Seems like the "composer" only needed to adapt the tracks for the SPC hardware.
Sumez wrote:
And of course, just like when you are mixing your tracks in "actual" music production, I'm sure you want to prevent the frequencies of multiple instruments to clash with eachother.
Sorry, but that sentence is absolutely meaningless.
As for the rest, the worst sounding SNES games (for sound quality - not music composition itself) are the ones which loads the entiere game soundtrack in RAM at the same time, such as
Super Mario World and
The Legend of Zelda - A Link to the Past. Those who have voices loaded in all the time (hem hem... Street Fighter 2... hem hem) are also bound to sound poor.
The best sounding games are the ones which loads the minimum stuff in RAM and allows as much memory as possible to be used for sound. So the music engine has to be very small, use few RAM and the music and sound effect data has to be packed as tightly as possible, to leave RAM free for samples and echo buffer.
Personally I think Dragon Quest III, VI and Tactics Ogre sounds the best (they mostly sound the same) - they're close to a real orchestra sometimes. The PS1 version of Tactics Ogre sounds much worse than the SNES version ironically.
Quote:
From what I can tell, it seems like most samples are about 8kB long.
Probably the real secret is to make short samples as short as possible so that there's more space available for long samples and they can fit with a better quality. For example, if drums are encoded at full 32kHz even if other samples are shitty the overal feel will be much better, as the percussion really is here, however if you have muffled drums this will be really noticeable.
Bregalad wrote:
Sumez wrote:
And of course, just like when you are mixing your tracks in "actual" music production, I'm sure you want to prevent the frequencies of multiple instruments to clash with eachother.
Sorry, but that sentence is absolutely meaningless.
How so? What Sumez is talking about is called frequency slotting - it's a technique that results in individual instruments primarily occupying a given band of the audio frequency spectrum.
As an example, say you have a song with both lead vocals and an electric rhythm guitar with a distorted tone. Both normally would occupy the same frequency range, and if they were simply layered on top of another it might not sound great. To improve this, you could use EQ to boost the mid-range band on a vocal track while cutting the same range in the rhythm guitar track to make the vocals stand out more.
Conveniently, this is what's demonstrated in the first google image search result for frequency slotting.
Of course I'm not talking using EQ to completely band-pass the given tracks - in most cases, that'd sound pretty awful. But by boosting and cutting EQ in specific bands, you can "slot" a given instrument into a mix.
This video demonstrates the technique. Or, at least, I think it does - I'm at work and watching with the sound off.
https://vimeo.com/12381399And there's the part that's SNES-relevant: per-channel EQ isn't the only way to do this. Arrangement choices can achieve this effect - carefully choosing instrument patches and placing things in different octaves can mean the difference between a muddy, indistinct sound and a clear and balanced mix.
How is the resampling sound quality of OpenMPT compared to an SNES? I can swear I hear a lot of aliasing noise on OpenMPT.
psycopathicteen wrote:
How is the resampling sound quality of OpenMPT compared to an SNES? I can swear I hear a lot of aliasing noise on OpenMPT.
View > Setup > Mixer > Resampling
You can make it as good or bad as you like, there's several resampling options to choose from.
psycopathicteen wrote:
From what I can tell, it seems like most samples are about 8kB long.
Wait, how is that even possible? There should be at minimum 8 samples/sound effects, and at that point, there's absolutely no room for SPC700 code. Or, I guess, the mode number of sample size could be 8KB, but the mean number is lower.
Just thought I'd ask this here, but is there any difference between sample rate and pitch? If not, does the DSP in the SNES just have one register for both?
On the SNES they are the same thing. You can't change the pitch without changing the sample rate.
I guess it would be difficult to say what the typical sample rate is then... It's funny though, you can definitely hear a loss in sound quality on these games when there are low notes playing. Just thinking, you couldn't even have a perfect quality 32KHz low-pitched sound because you can't go higher than 32KHz.
You can go up to 128kHz, it just blends 4 samples together.
I guess you could estimate an instrument's sample rate as the sample rate for the pitch at the median of each instrument's tessitura (pitch range).
I think I remember hearing somewhere that some of the instruments in DKC 2 and 3 (not sure if the first DKC used it) were actually a mix of two channels with varying volumes.
I've been playing around with Milky Tracker, and I find Milky Tracker sounding better than OpenMPT and I don't know why. Every interpolation setting sounds better on Milky Tracker for some reason. Maybe it's a placebo effect.
It could be placebo effect, or it could be different output sample rates (44.1 kHz vs. 48 kHz vs. 96 kHz), or it could be peculiarities of the audio output API (waveOut vs. DirectSound vs. whatever). Do they sound noticeably different in wave export as well?
Listened to them side by side, its a placebo effect.
In general, I think the typical way most "accomplished" SNES soundtracks manage their memory budget is to use relatively simplistic lead instruments with short loops, so that more resources can be allocated to sound quality for the rhythm section instruments. That's how soundtracks in the style of DKC works. The more average sounding soundtracks tend to be more jack of all trades for sample quality, so nothing really stands out and leaves a nice impression. Then you have a select few soundtracks that use a very limited pool of instruments that are in turn very high quality, such as Actraiser 2. There's also some pool game I remember (Side Pocket?) which had very barebones instrumentation but the pianos were nearly of the same quality you'd hear in an actual rompler, which is very unusual on the system.
I think Tim Follin's various SNES soundtracks are the absolute best showcase of thinking outside the box to get the most out of the limitations. Analyzing them is really fun and interesting. Probably the coolest single example I can think of is Equinox, where in one ambient track you hear this very nice waterdrop sound effect with a very long tonal reverb. I thought to myself there was no way he'd fit that in there as a single sample, so I took a closer look, and the way he did it was to use a separate dry waterdrop sound, and then he made this seamless looping reverb noise that is dynamically faded in and out. Genius.
Another cool trick he did are the hihats in Plok. In the beach music for example, the way the hihats are played are not by the standard method of just retriggering the sample. Instead it's a cymbal sound just continually looped while the volume is automated separately from standard instrument envelopes. So each new "note" will be played from a different offset in the sample, making it sound less repetitive and much more natural. Also in Plok, the guitar lead sounds really good while the sample itself is rather simplistic. It owes everything to very elaborate and expressive programming. Apart from just the obvious stuff like vibrato and glissandos, he also selectively plays quick flam notes to make the pluck in the sample's attack more prominent, as a means to simulate more accentuated tones.
lazygecko wrote:
Another cool trick he did are the hihats in Plok. In the beach music for example, the way the hihats are played are not by the standard method of just retriggering the sample. Instead it's a cymbal sound just continually looped while the volume is automated separately from standard instrument envelopes. So each new "note" will be played from a different offset in the sample, making it sound less repetitive and much more natural.
Interesting technique, but this would by no mean be limited to high hat, but could be applicable to many other instruments, melodic or percussion.
Speaking of high hats, I think a good technique would be to gradually change the decay rate to be higher and higher to simulate the drummer slowly openeing his hat. This is often done in real drums, but I hadly see that done in electronic music, probably due to General MIDI only offering "closed hi-hat" and "open hi-hat", along with the rarely used "pedal hi-hat" (but that would mean closing it with the foot, without hitting it with a stick, which is rarely done).
Quote:
Probably the coolest single example I can think of is Equinox, where in one ambient track you hear this very nice waterdrop sound effect with a very long tonal reverb. I thought to myself there was no way he'd fit that in there as a single sample, so I took a closer look, and the way he did it was to use a separate dry waterdrop sound, and then he made this seamless looping reverb noise that is dynamically faded in and out. Genius.
For future reference, the song is
Tori. Indeed it's genius. His music for Solstice is already genious, but I am much less familiar with
Equinox.
EDIT : After a second tought, I don't see why two samples were needed for this waterdrop effect. Just having a waterdrop sound with heavy reverb and looping the heavily reverb part would probably have worked just as well, taking approximately the same amount of memory.
For one thing, the drip sound and the reverb are at different pan positions. Also, in other tracks he uses the drip dry, and even does a reverse reverb with the drip coming at the end.
I was figuring that since the reverb takes a while to really get going, the extra time to reach a loopable area would substantially add to the sample size unless you wanted to loop and amplify near-silence or do some fine-grained gain scheduling. But looking at it in SPCTool, it seems like the reverb part is actually not all that short - about half a second at the first encountered playback rate (~5 kHz)... Also, there are at least two drip sounds and two reverb sounds.
Still, doing it this way does take at least somewhat less RAM than the unified approach, and it offers the composer more control.
...
Also, while I'm listening to it:
TmEE wrote:
Good use of the ARAM in that. The word "crisp" comes to mind. Decent reverb too, which you don't always get (the Follins in particular seem to have ignored the echo feature entirely).
TmEE wrote:
OK :
Sparkster.rsn
Sparkster's audio didn't win an award for nothing. It has arguably some of the best on the SNES. The instruments sound great and are well-EQ'd (much less emphasis on the muddy mid frequencies). The snare is distinctive. Some of the instruments (especially the brass) sound as if they came right out of an anime. As for sound effects, when I heard the big stereo explosion for the first time I figured it was taken straight from a high-quality cinema sound effects CD (especially because not long before playing the game I had one such CD).
What award did Sparkster win? I agree it has some of the best sounding music (quality wise) on the SNES, a big step above most other Konami outputs except the Parodius games which have a similar sound.
Also, Michiru Yamane on the sound team, and it shows.
Sparkster sounds like a Neo Geo game.
That's funny, cause I don't really like the way Sparkster sounds for the same reason. The way the individual samples have been EQ'd just makes them sound too compartmentalized and the overall mix lacks range coverage across the frequency spectrum. Especially brass and drums/percussion, and even some of the bass samples (the resonant synth one at least) sound like they have almost no low end at all making everything feel more tinny than it should be. The music not utilizing any reverb (to my knowledge) also makes the silent gaps inbetween note retriggers much more audible.
93143 wrote:
Sparkster sounds like a Neo Geo game.
I wouldn't really say that either. Neo Geo's PCM has a sample rate cap of 18khz with no filtering which gives it a much more harsh and lo-fi sound compared to SNES, even if it's not nearly as hindered by memory bottlenecks.
Obviously it doesn't sound exactly the same. The point is the memory limitations. Usually when you convert an arcade game to SNES, it comes out sounding muffled, weak, loopy or otherwise heavily cut down. The instruments in Sparkster remind me of Waku Waku 7, without the heavily cut-down feeling (except for the extended samples like the vocals in Arina's stage; pretty sure Sparkster doesn't have anything like that going on).
I was surprised to learn how wasteful the Neo Geo's sound chip is with memory, because every note has to be individually sampled. I think the 18 kHz vs 32 kHz is kind've misleading because the SNES has Gaussian interpolation.
I'm still baffled at why the SPC700 has something as complicated as Gaussian interpolation in it, if the silicon could've been used else where. How about being able to do that fancy multiplication inside the main CPU?
psycopathicteen wrote:
I was surprised to learn how wasteful the Neo Geo's sound chip is with memory, because every note has to be individually sampled. I think the 18 kHz vs 32 kHz is kind've misleading because the SNES has Gaussian interpolation.
I'm still baffled at why the SPC700 has something as complicated as Gaussian interpolation in it, if the silicon could've been used else where. How about being able to do that fancy multiplication inside the main CPU?
It may be bread and butter tech now, but interpolation was a big novelty at the time. Any sample-based chips were expected to have that crunchy, aliased/"digital" sound, but the SPC700 greatly mitgated that which made it really stand out, for better or worse (I think it's a really double edged sword).
Regarding the Neo Geo, I think it was pretty much designed to have the FM and PSG at the forefront of melodic/pitched sounds while relegating the PCM to percussion and sound effects. As the years went by the priorities shifted, and composers had to use it in ways it wasn't really originally designed in mind for. You can clearly see this shift over time from the early gen Neo Geo titles to the later ones, which use the FM for little else than bass, and the last Playmore-developed games like Metal Slug 4 are more or less just streaming baked 18khz mono recordings (which is pretty regressive and a damn shame). Of course, they were "wasteful" because they had more than enough room to be in the first place as the ROM size was really scaleable. I think the other chips from era with similar extended sampling capabilities (like the YM2151 used in 68K and arcades) worked the same way with very limited resampling support.
lazygecko wrote:
That's funny, cause I don't really like the way Sparkster sounds for the same reason.
Personally I think Sparkster sounds very standard for a SNES game, not particularly good nor particularly bad. I don't see why it was mentioned in this thread.
Quote:
I was surprised to learn how wasteful the Neo Geo's sound chip is with memory, because every note has to be individually sampled
Ha, I saw some GBA games doing it this way (presumably to save CPU time) and I was bluffed but apparently it's not the only system where this was done.
Quote:
I'm still baffled at why the SPC700 has something as complicated as Gaussian interpolation in it, if the silicon could've been used else where.
I agree, this was very advanced for 1990. It took time before early SNES emus supported interpolation, just to show how an advanced feature it was.
Quote:
but the SPC700 greatly mitgated that which made it really stand out, for better or worse (I think it's a really double edged sword).
Then they should have had a per-channel disablable interpolation? (Like Echo, for instance). It's always enabled and can't be taken out.
The funny thing is that it doesn't even fix anti-aliasing on the last octave or so. If you have a note with a sampling rate of 128khz, it would be downsampled by 4, but in every set of 4 samples, the middle 2 samples will dominate over the other 2.
Bregalad wrote:
Personally I think Sparkster sounds very standard for a SNES game, not particularly good nor particularly bad. I don't see why it was mentioned in this thread.
It's definitely clearer, but it has the same "toy instrument" sound as most early SNES games, unfortunately (at least it's not the Mega Man X 2 & 3 shit instrumentation). The composition is also pretty weak; nothing really stands out in my opinion. The lack of more "gritty" music on the SNES really bothers me; you either have something orchestral like Super Castlevania IV or something more "bubbly/playful" like Super Mario World. You can tell Capcom tried with their older games, but their attempt falls on its face. I think R-Type III is about the only game that ever gets close to sounding something like Thunder Force IV or many other Genesis games. The sound samples are really low quality though, but I'll still take it over Sparkster any day.
Bregalad wrote:
Ha, I saw some GBA games doing it this way (presumably to save CPU time)
I hope not; that processor is more than powerful enough to mix sound. I bet assembly was pretty much dead at this time though like it is now, so I don't really know.
lazygecko wrote:
the SPC700 greatly mitgated that which made it really stand out, for better or worse (I think it's a really double edged sword).
I'd say it's better in the vast majority of cases; we're talking about only 64KB of audio ram. It'd probably sound awful otherwise. The argument is generally whether lower quality samples with Gaussian interpolation sound as good as higher quality ones without it.
lazygecko wrote:
Regarding the Neo Geo, I think it was pretty much designed to have the FM and PSG at the forefront of melodic/pitched sounds while relegating the PCM to percussion and sound effects. As the years went by the priorities shifted, and composers had to use it in ways it wasn't really originally designed in mind for. You can clearly see this shift over time from the early gen Neo Geo titles to the later ones, which use the FM for little else than bass
Definitely. I still can't help but feel that the sound chip was poorly designed though; why would you have only have 4 FM channels with 6 PCM channels lack any sort of pitch control? (PSG had really already fallen out of style by 1990.) Are you really planning on having that many sound effects in a game at once? (Changing the pitch generally isn't a concern here.) I've said it before, but I think the Neo Geo is really overrated hardware wise. It's not much if any better than the CPS1, and that's from 1987. The only real advantage I see the Neo Geo has is 16 bit color, which is admittedly pretty big even here. Of course, the main time this really becomes an issue is with large gradients, and dithering works better on the CPS1 because of the wider resolution...
psycopathicteen wrote:
I'm still baffled at why the SPC700 has something as complicated as Gaussian interpolation in it, if the silicon could've been used else where. How about being able to do that fancy multiplication inside the main CPU?
I'd have thought you'd know by now that the SNES was designed like shit.
psycopathicteen wrote:
The funny thing is that it doesn't even fix anti-aliasing on the last octave or so. If you have a note with a sampling rate of 128khz, it would be downsampled by 4, but in every set of 4 samples, the middle 2 samples will dominate over the other 2.
The maximum downsampling the S-DSP can do is $3fff / $1000 = 3.99976
And indeed aliasing is not suppressed but limited. Upper octaves are rarely used because doing so means you're basically wasting SPC's memory.
Quote:
I hope not; that processor is more than powerful enough to mix sound.
Indeed, but apparently GBA developpers were visceral about saving CPU time and battery memory. Many games preferred to use 10% of the CPU for sound and have awful quality rather than dedicating 30% and being on par with the SNES. This makes zero sense - yet this decision is almost consistent through the whole GBA game library from japanese developers.
Quote:
I bet assembly was pretty much dead at this time though like it is now, so I don't really know.
Assembly was much less dead in 2001 than it is today. Smartphones weren't around and small embedded hardware still had limited memory and CPU capabilities. GBA sound mixing engines are typically coded in assembly.
Quote:
PSG had really already fallen out of style by 1990
Well, PSG was widely used in the GBA, for the better and the worse.
Espozo wrote:
I bet assembly was pretty much dead at this time though like it is now, so I don't really know.
GBA games used
lots of ASM libraries for doing various things. Rasterizing triangles, audio mixing, video decoders...
But the core logic was probably written in C, because there was no benefit in
not doing so.
Quote:
why would you have only have 4 FM channels with 6 PCM channels lack any sort of pitch control?
6 channels for percussion and sound effects seems like a perfectly reasonable choice to me.
lidnariq wrote:
But the core logic was probably written in C, because there was no benefit in not doing so.
Maybe saving enough CPU time for higher sample rate music?
lidnariq wrote:
6 channels for percussion and sound effects seems like a perfectly reasonable choice to me.
I can't tell if you're being sarcastic or not.
The Neo Geo does have an additional sound channel with pitch control though, so it's really 7 PCM channels. There's also 1 noise channel that can be used for percussion.
Bregalad wrote:
Well, PSG was widely used in the GBA, for the better and the worse.
I personally think it clashes really bad with the visuals.
Can most people even tell the difference between drum samples and using a white noise channel anyway?
Espozo wrote:
lidnariq wrote:
But the core logic was probably written in C, because there was no benefit in not doing so.
Maybe saving enough CPU time for higher sample rate music?
Your central assumption (that it would save enough CPU time) is untrue. The core game logic is not what uses even a significant minority of processing time on the GBA.
Quote:
lidnariq wrote:
6 channels for percussion and sound effects seems like a perfectly reasonable choice to me.
I can't tell if you're being sarcastic or not.
The Neo Geo does have an additional sound channel with pitch control though, so it's really 7 PCM channels. There's also 1 noise channel that can be used for percussion.
Perfectly honest. The design assumption was probably 3ish percussion and 3ish sfx at any time, and it's important that you have enough overhead to not worry about note stealing.
psycopathicteen wrote:
I was surprised to learn how wasteful the Neo Geo's sound chip is with memory, because every note has to be individually sampled.
In other words, it behaves like the tape frame in a Mellotron, where each key has its own recording. This isn't a problem for drums, and Sunsoft bass on NES has the same problem to a smaller extent because of the small set of valid sample rates.
psycopathicteen wrote:
Can most people even tell the difference between drum samples and using a white noise channel anyway?
Yes, which is why Tim Follin paired two channels to make more realistic drums as early as the NES. But the pattern of drums interrupting the triangle channel doesn't work so well if the triangle channel is your lead, as it is in a couple
Super Mario Bros. 3 tunes, so Nintendo used drum samples starting around 1988. (By that time, most FDS games that were going to cross the Pacific already did, meaning Nintendo no longer need the DMC to emulate the missing FDS wavetable in games like
Zelda and
Super Mario Bros. 2: Mario Madness.)
Espozo wrote:
I can't tell if you're being sarcastic or not.
The Neo Geo does have an additional sound channel with pitch control though, so it's really 7 PCM channels. There's also 1 noise channel that can be used for percussion.
I know squat about the Neo Geo, but wasn't it supposed to be the Rolls Roye of the video game consoles ? If so, I don't see how it makes any sense it features PCM channels without any kind of pitch controls. That is just completely useless. If they don't provide fine-grained pitch control, at least give the choice between a scale of pitches, such as what the NES's DPCM does.
lidnariq wrote:
Your central assumption (that it would save enough CPU time) is untrue. The core game logic is not what uses even a significant minority of processing time on the GBA.
Then what does? I don't see the reason for GBA games supposedly only using a quarter of the CPU time for sound then.
lidnariq wrote:
Perfectly honest
I guess I can kind of see it. The four FM channels, as well as the variable sample rate PCM channel, are for the "main sounds", (I'm not a musician) the three PSG channels are for "background noise", the noise channel is for "light percussion" or whatever, and the other six PCM channels are for percussion and sound effects. You can definitely make it work (unlike SNK at the end of the Neo Geo's life), but it's still pretty inflexible despite having so many channels.
You just can't beat the YM2151 and a designated PCM chip.
Bregalad wrote:
I know squat about the Neo Geo, but wasn't it supposed to be the Rolls Roye of the video game consoles ?
Not quite; it was designed to be an arcade machine, but later ended up being converted and sold as a home system. (The arcade "MVS" and the home "AES" are identical in hardware.) According to Wikipedia:
Wikipedia wrote:
Initially, the AES home system was only available for rent to commercial establishments, such as hotel chains, bars and restaurants, and other venues. When customer response indicated that some gamers were willing to buy a US$650 console, SNK expanded sales and marketing into the home console market in 1991.
However, Wikipedia also says:
Wikipedia wrote:
Neo Geo's graphics and sound are largely superior to other contemporary home consoles, arcades, and even computers such as the Sharp X68000. The MVS was one of the most powerful arcade units at the time.
Either I have a pretty big misunderstanding of the Sharp X68000, or this is a bunch of bullshit. The last sentence is definitely not true; I'm fairly certain most all of Konami's designated arcade game boards are more powerful, the CPS1 is better in the majority of ways, the Irem M92 is better in any real world scenario, and Sega and Namco's arcade boards just obliterate everyone else's. The only thing the Neo Geo seems to beat are Data East's and some of Taito's lower end systems (but they also had plenty of more powerful ones from the time).
Isn't the Neo Geo built to push sprites and only sprites? Even the backgrounds are sprites. Makes it hard to just directly compare.
True, but you can still compare the overall video bandwidth of each system, and while the Neo Geo is still significantly better than both the SNES and the Genesis in this regard, it gets beaten by pretty much anything else. I have never seen "cheese grater" sprite per line dropout on any arcade machine from the time other than the Neo Geo. The Neo Geo is still powerful, no doubt, but more powerful than the majority of arcade machines from the time? I don't think so. Seems like they dumped a bunch of resources into having sprites also take the role of backgrounds, despite the fact that no game really takes advantage of this, instead just emulating a traditional tilemap system (I wouldn't even be surprised if they didn't try and save bandwidth for color 0 areas). Neo Geo games might even look better on a tilemap system, (assuming it uses 8x8 tiles) as they might benefit from an 8x8 palette area to actually make use of huge number of available onscreen palettes.
Espozo wrote:
lidnariq wrote:
The core game logic is not what uses even a significant minority of processing time on the GBA.
Then what does?
Software 3D rendering, for one. The ARM7TDMI has to do the job of all four of the S-CPU, S-SMP, S-DSP, and GSU. Also some games performed very detailed calculations for the coordinates of each line in affine mode.
I could swear I remember reading that the GBA's PCM channel does have variable rates. It could be just because everyone tried to juggle 4 to 8 channels into one channel, so the variable rate didn't become used.
Espozo wrote:
Maybe saving enough CPU time for higher sample rate music?
The other points + economics. I've said before that coding in asm is about 10x slower vs coding in C. Having nicer sounds wouldn't make the game sell 10x as much.
psycopathicteen wrote:
I could swear I remember reading that the GBA's PCM channel does have variable rates. It could be just because everyone tried to juggle 4 to 8 channels into one channel, so the variable rate didn't become used.
GBA direct sound does have variable rate, it is fine-grained configurable using the system's timers. However the channels are really meant to replay software mixed sounds in a ring-buffer. I don't think anyone used those channels to play "raw" samples, because 1) 2 channels isn't enough and 2) you need to explicitely stop the playback, if you don't it continues to play whathever is in memory, so programming normal sample playback is almost as complicated as using a sound mixer. And of course 3) Nintendo provided the sound engine anyway so why bother
Quote:
The other points + economics. I've said before that coding in asm is about 10x slower vs coding in C. Having nicer sounds wouldn't make the game sell 10x as much.
Most GBA games could have had nicer sound just by using a nicer setting of Nintendo's sound engine, at the cost of CPU time (which is mostly unused anyway). Apparently developers were very keen on reducing CPU usage as much as possible and have shitty sound, even if there was no technical requirement of doing so in most games. Only Golden Sun games and a couple of others had good sound. Probably the fact the actual sound hardware in the machine is shitty didn't help. (Small speaker incapable of reproducing bass-y sounds, PWM at only 65kHz involving a lot of aliasing in the sound processing after it being mixed, only 8-bit DAC so lots of noise, audible 60Hz buzz).
Bregalad wrote:
I don't think anyone used those channels to play "raw" samples, because 1) 2 channels isn't enough and 2) you need to explicitely stop the playback, if you don't it continues to play whathever is in memory, so programming normal sample playback is almost as complicated as using a sound mixer.
Add 16 ms of blank space after each sample. Then start playback, wait
x frames, and stop playback.
Doom for Game Boy Advance uses this for sound effects. It runs all music through the GB-PSG so as to spend more cycles on texture mapping and fewer on the mixer.
tepples wrote:
Add 16 ms of blank space after each sample. Then start playback, wait x frames, and stop playback. Doom for Game Boy Advance uses this for sound effects. It runs all music through the GB-PSG so as to spend more cycles on texture mapping and fewer on the mixer.
In this particular case, it makes sense to limit the CPU expense on audio mixing. But the vast majority of purely 2D games, they barely use 20% of the CPU at all and limit the CPU usage on audio like crazy, even though most of it is completely free. The only explanation is that they wanted to save battery life, but in all cases the screen would drag more power than the CPU so it wouldn't make a large autonomy difference between overal 20% or 80% CPU usage.
A couple years ago when I wrote a GBA game, I did exactly what tepples described above. Used the two channels directly, one for music and one for sfx. I didn't want to write a mixer, the free-for-commercial-use ones didn't compile or straight crashed at runtime, and the ones that worked required payment.
Bregalad wrote:
in all cases the screen would drag more power than the CPU
That might be the case on backlit models like the GBA SP. But you'd be surprised.
The original Game Boy Advance had a non-backlit reflective LCD. Its battery light was normally green and turned red when it was low. At certain levels of remaining charge, the light would turn red and green to the beat of the music: mixing more channels (or perhaps driving the audio circuit with more sound) would draw more power. In any case, back when I was homebrewing on the GBA, I could switch the vblank wait between spin-waiting and using the halt SWI and cause the light to change between red and green.
The saddest part about the GBA is that even though you have the flexibility to push resources for better audio, in the end regardless it's going to be bottlenecked by the piss poor final output mixing.
I wish there was an emulator that could rectify that somehow. It's unbelievable how much better the Megaman Zero DS Collection sounds than the GBA originals. They didn't even remaster the assets or anything, the cleaner output of the DS just brings out the true quality. Wish all GBA games could get that treatment.
Yeah, I remember reading documentation on how properly using the halts affected battery life. It was substantial.
If I had to guess it's because the SNES samples probably are compressed to hell. SNES games ranged from 4kbit to I think 32kbit in size (512kbyte to 4mbyte) which encompassed the game code, graphics and any digital audio samples. With finite space they probably had no choice but to compress.
With CD-ROM however, even a graphically intense Genesis game could have hundreds of megabytes of space left over that you could use on music and audio samples. Again this is my best guess but I don't think I'm too far off.
Sega CD accessory could have only a small amount of data loaded at once: about 6 Mbit. Anything more than that
LOADING
usually required gameplay to freeze for a couple seconds. The FDS had the same problem.
Do any GBA game use DSP effects like reverb chorus phasing and flanging? Because it's software based, it should make sense to do it.
I wish I had fine control over the SPC700's echo delay, because there are so many DSP effects that involve delay manipulation.
I can do some fine control with the FIR filter, but with only a range of 8 samples.
This is my personal opinion, but I think a lot of Genesis games rely too much on overly gritty bass. Just too much high frequency content for bass.
Over half the games should have their instruments TL values increased a little (less modulation, less twang and noise sounds etc.), much less abrasive experience... SNES equivalent I suppose is just poor samples, over half the soundtracks had really tiny, terribly looped samples with poor attack parts so that each new note causes a noticable "hiccup".
TmEE wrote:
over half the soundtracks had really tiny, terribly looped samples with poor attack parts so that each new note causes a noticable "hiccup".
I think the "hiccups" you're talking about is more of a side effect from the DC resets, which is unavoidable regardless of attack values. The best you can do is mitgate it using the reverb.
I actually have a problem with a recurring bass sample (or several ones that are similar) used in SNES music that sounds too bright. Like, it's meant to be a standard soft guitar bass, but there's a problem with the loop that adds this extra clicky oscillation to it that sounds like it's really not meant to be there.
Is it the bass guitar in SMW's boss fights where the loop is slightly out of tune?
With the YM2612, how wide can the frequency sweeps go? When I look at the waveform monitor on TFM tracker, if I put the modulation all the way up, I can see the wave reversing.
Highest freq is 53203424Hz / 7 / 144 / 2 ~26390.587Hz on PAL and 53693175Hz / 7 / 144 / 2 ~26633.519Hz on NTSC machines. Going beyond will just alias down, and that's how all the noise type sounds work, overflow into semi-random part in the freq range every sample.
The waveform view in the tracker is subject to its own artifacts that are determined by the refresh rate and what part of the waveform gets shown. It only shows some amount of the output every once in a while. It is like how car wheels appear to rotate backwards in TV and movies at certain speeds.
I drew a picture to explain what I mean. FM synth, there should be just a top and bottom of the wave, but sometimes you get these minor peaks and troughs where it appears the wave is going backwards.
Attachment:
FM wave.png [ 1.99 KiB | Viewed 1755 times ]
If the amplitude of the modulator is large enough, FM can cause the resulting modulated carrier to visually appear to go "backwards" and not transition all the way from positive to negative extreme.
Can someone care to explain how the audio in the SNES Lost Vikings port works? Apparently it bypasses the SPC's memory bank entirely. Isn't that very taxing on resources?
As far as I'm aware Lost Vikings is one of a small number of games that preload all the samples into audio RAM like normal, but stream note events etc. to the chip on a per-frame basis. I don't think there's any real-time sample streaming or anything like that happening.
I'm surprised more games didn't use that because it simplifies music programming a lot.
Running the music engine on the S-SMP instead of the S-CPU has several advantages.
- The S-SMP has access to fine time bases, from 125 Hz on up. The S-CPU would normally be limited to the S-PPU's 60.1 or 50.0 Hz time base unless it uses VTIME, and VTIME is usually in use anyway for graphics. This means more precise tempo.
- Because the time base is independent of the S-PPU, the program running on the S-SMP does not need adjustment for NTSC or PAL-M on the one hand vs. PAL on the other.
- Running audio on the S-SMP frees up the S-CPU for game logic rather than music logic and waiting for the S-SMP to acknowledge every note, program change, pitch bend, and control change.
- Linear-pitch portamento and vibrato need multiplication, as does volume adjustment. The SPC700 has a multiplier, but the 65816 relies on an interrupt-unsafe MMIO for multiplication.
There isn't even the drawback of a drastically different programming model, as there is with the Z80 and 68000 on the Genesis or contemporary arcade system boards. The 65816 is a 65C02 with 16-bit registers, and the SPC700 is approximately a 65C02 with rearranged opcode numbers.
The one drawback is that you lose maybe 8K of audio RAM for the player and the current song's order table and pattern data.
@psychopathicteen I've wondered the same thing. However, with how much most early SNES game slow down, the music would fall apart.
tepples wrote:
Running the music engine on the S-SMP instead of the S-CPU has several advantages.
Running the code on the S-CPU does free up some more space in audio ram though. However, I don't know how much space is normally taken by this.
I don't know how much space is
normally taken in commercial games because I haven't traced into them. But extrapolating from
music code that I wrote for another 6502 family CPU (and am
off and on porting to the SPC700), I guess a player might fit in 2K and each song in maybe 3K at most. At that size, a game could load each song's order and pattern data in a matter of a few frames.
Espozo wrote:
@psychopathicteen I've wondered the same thing. However, with how much most early SNES game slow down, the music would fall apart.
Not necessarly, NES games have the CPU handling the music and they can slow down without the music falling apart if interputs are handled properly.
Quote:
Running the music engine on the S-SMP instead of the S-CPU has several advantages.
Indeed, the only "advantage" of not doing it is freeing up RAM.
Quote:
Linear-pitch portamento and vibrato need multiplication, as does volume adjustment.
They don't necessarly need multiplication, and from reverse-engineering them I can assert that at least some engines by Squaresoft only supports non-linear pitch portamento.
You could save a lot of CPU speed with HDMA. Even without HDMA, you can still have the CPU get everything ready while it's waiting for the SPC700. I also find the SPC700 way more frustrating than the 65816 to work with.