SPCs that only use a single channel

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
SPCs that only use a single channel
by on (#144466)
Hello all, I've been developing my SNES SPC player and it's coming along very well. I've primarily been using the "Nintendo Logo" track 1 from Super Mario World for initial testing as I implement the bits and pieces of the intricate S-DSP audio pipeline. I've been using this particular SPC because it doesn't do anything super fancy (e.g. echo and such) and most importantly only uses a single channel. I will obviously move onto more complex SPCs eventually but this SPC has worked out great for much of the initial development.

I was wondering if anyone else knows of any other SPCs that use only a single audio channel? I would think there have to be more than just the one "Nintendo Logo" SPC... It would be great to have some additional single channel SPCs that I could test with.

Thanks!
Re: SPCs that only use a single channel
by on (#144467)
What stops you from using any SPC and only listening to channel 0?

Do you want to tell us more about SPC PLAYER? I had some questions:
Why are you making one?
What platforms are you developing on currently?
I imagine its a slow developing thing, but I was interested in when u plan on finishing it.
Re: SPCs that only use a single channel
by on (#144468)
Super Mario Kart - "Ranked Out Bounce", "Start Lights"
Magical Popun - "Speach" [sic]

There are probably others. I didn't spend much time looking.
Re: SPCs that only use a single channel
by on (#144469)
Most sound effects of most games uses only a single channel.
Re: SPCs that only use a single channel
by on (#144470)
bazz wrote:
What stops you from using any SPC and only listening to channel 0?

There are many reasons that just listening to 1 channel of a multi-channel SPC isn't as useful and doesn't simplify things.
(a) The final sample output value of multi-channel SPCs could (and likely will) depend on pitch modulation from the other channels if pitch modulation is enabled. Since I only currently have 1 channel this would cause my final sample output to not match a correct implementation.
(b) I currently only have a single channel implemented and it is pretty much guaranteed that the audio "program" that is running on the SPC monitors the various output status registers of the DSP (e.g. ENVX/OUTX/ENDX/etc) to make decisions on when to send key-ons, key-offs, etc. So, if I only have 1 channel running that will basically break (confuse) the SMP program.
(c) There are many other reasons but the above should explain it well enough.

bazz wrote:
Why are you making one?
Because it's fun and I learn a lot by doing it. Just like I learned a lot from making my NES emulator.
bazz wrote:
What platforms are you developing on currently?
It is an FPGA-based SPC player written entirely in pure SystemVerilog HDL. It currently runs on both Altera and Xilinx devices.
bazz wrote:
I imagine its a slow developing thing, but I was interested in when u plan on finishing it.
I'm not really sure. The SNES APU is surprisingly complex for something designed in 1989. Haha. I have a full time job and only work on this in my spare time when I get a chance. But I've been making steady progress. :)

93143 wrote:
Super Mario Kart - "Ranked Out Bounce", "Start Lights"
Magical Popun - "Speach" [sic]
Awesome!! Thank you!!
Bregalad wrote:
Most sound effects of most games uses only a single channel.
That's a really good thought. I hadn't considered that! Thanks!
Re: SPCs that only use a single channel
by on (#144471)
sweet thanks for your response. So it's a hardware SPC player..
Re: SPCs that only use a single channel
by on (#144472)
jwdonal wrote:
(a) The final sample output value of multi-channel SPCs could (and likely will) depend on pitch modulation from the other channels if pitch modulation is enabled. Since I only currently have 1 channel this would cause my final sample output to not match a correct implementation.
(b) I currently only have a single channel implemented and it is pretty much guaranteed that the audio "program" that is running on the SPC monitors the various output status registers of the DSP (e.g. ENVX/OUTX/ENDX/etc) to make decisions on when to send key-ons, key-offs, etc. So, if I only have 1 channel running that will basically break (confuse) the SMP program.
(c) There are many other reasons but the above should explain it well enough.

(a) is wrong, pirch modulation is almost never used except for sound effects in Squaresoft games (those that uses multiple channels). Even if you lack pitch modultation emulation it will just sound wrong, but that won't be any more issue than that
(b) is wrong, I am fairly confident most games never reads those registers at all

Good luck for your project, it sounds cool !
Re: SPCs that only use a single channel
by on (#144480)
I've got some song usage details for pitch modulation in songs.
I'm pretty sure The Oracle from Secret of Mana/Seiken Densetsu 2 uses pitch modulation in its opening.
I also caught some pitch modulation on The Sacrifice, Part 2 from Seiken Densetsu 3 (I caught it a minute into the song, although it may have been used earlier).
At least one song in Jurassic Park 2 (Dark Jungle) also uses pitch modulation (although it takes a minute and a half for the effect to kick in).
In addition, Packy and Marlon is a good place to test pitch modulation, as there are quite a few tracks that use pitch modulation. Here are a few that work best for testing pitch modulation...
- Playground 2
- House 4
- Unknown Song 9
- Unknown Song 13

I also have exactly one word of caution.

ENDX to my knowledge may be used by a few games that were proven to be problematic on SNESAmp because each channel began to mute until none stood. I suspect that's because this register was unemulated.

These games are the ones that I know this problem exists (all of them use a Visual Concepts sound driver)...
- Clay Fighter 2 - Judgement Clay
- Mickey's Playtown Adventure - A Day of Discovery!
- We're Back! A Dinosaur's Story

This particular SPC set also fails on SNESAmp, and is my challenge SPC set for you to get to work correctly when you get to that point as it also fails in some other SPC players on my end (Game Music Box and later versions of Audio Overload also fail). My instinct is that this has to do with wraparounds failing to be properly emulated (or some other opcode is not emulated, resulting in catastrophe).
- Shin Togenkyo
Re: SPCs that only use a single channel
by on (#144533)
Thanks everyone for the great info! :)

Also, a bit off topic, but I finally got around to adding the ADSR logic to my SPC player. I'm still missing a bunch of feature stuff from the full pipeline (e.g. gaussian interpolation) but the ADSR'ing still looks pretty cool so thought I'd share.

https://dl.dropboxusercontent.com/u/362 ... l/adsr.png

Cya!
Re: SPCs that only use a single channel
by on (#144547)
KungFuFurby wrote:
At least one song in Jurassic Park 2 (Dark Jungle) also uses pitch modulation (although it takes a minute and a half for the effect to kick in).

"Blockade" from the same game uses it too, and right away at that. One suspects that there may be others.
Re: SPCs that only use a single channel
by on (#150423)
I finally got around to adding pitch modulation support to my FPGA SPC player. I wanted to post a few samples to demonstrate the differences between having pitch modulation support and not having it. Thanks so much to KungFuFurby and 93143 for telling me some tracks that use pitch modulation - they were invaluable for testing and saved me a lot of time searching.

Jurassic Park 2:
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_jp2-03_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_jp2-03_wo_pmon.mp3

https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_jp2-07_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_jp2-07_wo_pmon.mp3

Packy & Marlon:
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-13_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-13_wo_pmon.mp3

https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-18_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-18_wo_pmon.mp3

https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-b09_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-b09_wo_pmon.mp3

https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-b13_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_pam-b13_wo_pmon.mp3

Seiken Densetsu 2:
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_sd2-37_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_sd2-37_wo_pmon.mp3

Seiken Densetsu 3:
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_sd3-314_w_pmon.mp3
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/2015_07_05_sd3-314_wo_pmon.mp3

Also, is it just me or does pam-b09 sound a TON better _without_ pitch modulation? Not sure why that is, but all of these have been verified against Blargg's emulator and my output is an exact binary match to his.
Re: SPCs that only use a single channel
by on (#150462)
You'd also be interested in the song Golden Faithful Friend from the game Energy Breaker.

Quote:
Also, is it just me or does pam-b09 sound a TON better _without_ pitch modulation?

Which game is this song from? Perhaps pitch modulation being turned on is an error/bug within the game.
Re: SPCs that only use a single channel
by on (#150481)
Thanks for the game tip! I'm gonna check it out.

The 'pam' game is Packy & Marlon. I just learned that this game is about a pair of diabetic elephants. What the heck? Haha.

And yes, I would agree with you that it must be some kind of bug in the game...or in the SPC? Either way, I can't imagine someone actually wanting the track to sound like that. :-P
Re: SPCs that only use a single channel
by on (#151405)
I made back then a .spc to test the technique used by Golden Faithful Friend that consists of simulating a distorted electric guitar from a cheap sample by duplicating the sample and apply pitch modulation to the second one. I did that by hacking an SPC from another game so that it uses different samples and uses this technique. You can get interesting effects by playing the same note, one octave higher, or the 5th of the original note.

I must say I was extremely satisfied with the result. You can test it if you're interested (I have to put it into an archive, because the .spc extension is not allowed, how dumb).
Re: SPCs that only use a single channel
by on (#151423)
That works really well - kinda sounds like the guitars in Thunder Force IV.

What game is the original from? EDIT: Never mind; I found it. It's FFMQ... Also, I just noticed that by muting the second channel it's possible to hear the guitar sample you used coming through by itself on the first channel - it's legitimately terrible. Classic bad GM...
Re: SPCs that only use a single channel
by on (#151441)
Interesting. I am unable to play that SPC file. The reason is because I only support v.30 SPC format. The file says that it is v.10. I can't even find a format specification for v.10 SPC files. So I don't know what is different between v.10 and v.30. :(
Re: SPCs that only use a single channel
by on (#151445)
Is there even such a thing as version 0.10 and version 0.30? In any way it's nothing special, just the regular FFMQ SPC file where I changed the samples and added an additional channel (originally the song was using only 7 of them so this wasn't a problem).

I have edited my archive to include many variants of the effects, with and without detuning of the pitch modulated track, and with different relative pitches to the base note. In my opinion the better sounding is upper 5th with detune, but that's up to opinions.
Re: SPCs that only use a single channel
by on (#151493)
After updating the SPC header to v.30 format the SPC ran fine on my FPGA SPC player; I also added the missing track and title information. The versions on snesmusic.org have the proper v.30 header in all of the files now so it would appear at some point the SPC files were updated with the new header format. Here are the results:

Original:
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/bregalad/ffmq-07_original.spc
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/bregalad/2015_07_24_ffmq-07_original.mp3

Modified:
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/bregalad/ffmq-07_modified.spc
https://dl.dropboxusercontent.com/u/36237540/SNES/jwdonal/bregalad/2015_07_24_ffmq-07_modified.mp3

I agree that it does sound much better. Very cool. Thanks for sharing!