Thank you for having a fair enough disposition to not only challenging my post, but also extending a correction along with it. I can work with that.
You are completely right here: "EQ'd down" was sufficient.
I think it might have been lost, but the context I'm mainly concerned about is my use of the sound hardware for my own purposes. I love the STs for CV4, ActRaiser 1/2 and many others. It was my understanding that the SPC700 and the DSP co-pro used a low-pass filter to affect, in some form (shorthand for IDK how exactly), of anti-aliasing (an attempt to smooth quantization more fully). All I know is I have heard very faint bass (in quality more times than simply volume) or clipping/distortion - almost tearing in the worst cases, when low freq sounds are put out at the same level as the mid and high range. Am I wrong about the cause of what I hear? You seem to think so. Do you have a better explanation for it? I'm a big boy, I can take it.
About emulators... I've heard that some emulators run the sound with the low-pass filter process bypassed or totally omitted as an improvement. I've heard both sides (+/-) of that though, not sure since I don't deal much with emulators. I am talking about the actual hardware though.
Last edited by Icarus Moonsight; 05-25-2010 at 07:45 AM.
This signature is dedicated to all those
cyberpunks who fight against injustice
and corruption every day of their lives
Yeah, but so did the NES contra, lol.
So would you like Hard Corps more if it didn't have the word "Contra" in the title?
I actually went back and played the game again yesterday. Now the only thing I don't like about the game is that they didn't make a sequel, lol.
HARD CORPS FTW
So he meant a high-pass filter.
In any case I don't think that's a cause for poor bass on the SNES...I think the major factor was still the compositions being fed to the thing.
And if you ask me, really "throaty" (echo applied mainly, but think of trumpets in Zelda or something similar, there's some good low end there) sounds on the SNES were pretty common. I'm just not hearing the low-end weakening. Distorted-seeming sounds, sure (all across the range though).
I also see I was wrong and that there are three ICs in the sound subsystem (Wiki claims only two but they seem to have everything confused; I see S-SMP and S-DSP ICs separately) - SPC700 8-bitter for handling the sound program, the S-SMP (stores sound samples, not sure what else), and the S-DSP for generating the sound (eight voices).
Last edited by Ed Oscuro; 05-25-2010 at 12:55 PM.
If anything is "EQ'd down" (which is incorrect), it would be the treble - not the bass and low end frequencies. And the filtering done on the DSP for the sample streams, if anything, would increase the frequencies on the low end relative to the higher frequencies (it's a matter of perspective).You are completely right here: "EQ'd down" was sufficient.
Bass itself is easy to replicate on the SPC700 unit. Hell, even the PC-Engine can do some loud/thick bass (I've done it), which the SNES has no problem replicating and even making it *more* thick because of the filtering. Sample based synthesis isn't that hard to understand, let alone frequencies and waveform shapes, relative to the frequency band. Why someone would think gaussian filtering "removes" bass, is beyond me.
It's not just the filters, but some emulators use a higher "base" frequency point for the phase accumulation. The DPS in the SPC700 unit is limited to 32khz, filters or not. There is a main filter that's always on (you need this for phase accumulation VS something like period base divider or higher clocked source for phase accumulation), but there is also selectable (controllable) filtering options per blocked in the BBR compression scheme, on top of the original (which could be used to cut the noise/treble/artifacts and increase the smoothness of the sample, giving more lower end boost - relative to without). An emulation author change chose whatever method of filtering they want (something a little more clear/better than gaussian or something lighter). And Rob2600 said, a low-pass filter is just that. It allows frequencies below a certain band to pass through. The high you set the bar, the more of the higher frequencies pass through. A band pass specifically sets a high and low point passing area, and just a high pass filters out lower frequencies.About emulators... I've heard that some emulators run the sound with the low-pass filter process bypassed or totally omitted as an improvement. I've heard both sides (+/-) of that though, not sure since I don't deal much with emulators. I am talking about the actual hardware though.
I see we finally managed to drag you into this, tomaitheous
Could you illuminate the situation on the sound CPU and the co-processors for me? Basically looking to understand (at least generally) what each one does by itself. I don't know if the split between the S-SMP and S-DSP is basically invisible when programming the SPC 700, but if anybody here would know...
Well, the DSP is the actual sound unit (which is basically the same unit in the PlayStation which has a higher number of channels and a larger address range for samples). The S-SMP is the processor. The unit is supposed to be self contained. I.e. it doesn't need an external processor to run whatever synth engine you write for it (supposedly sony was going to use a version of this system in some standalone units. But like anything you read on the internet, it's hard to say how true that is).
Anyway, the DSP is mapped to the S-SMP/processor address ranges via I/O registers (though memory mapped like typical 6502 stuff). The processor itself is pretty much a 6502 variant (with a different assembler syntax) crossed with features of a 6809 (register pairing, mul, etc). The S-SMP is the only processor that can access the DSP directly on the SNES, the processor itself is just that, a processor. You create whatever driver you want for the music engine and upload it into SPC ram. There's an initial small boot loader rom that first starts when you turn on the system and has protocol for uploading data from the I/O ports between the S-SMP and the sCPU and a jump to address/vector operation.
So when you upload your own code, you define whatever protocol you want to communicate between the sCPU and the S-SMP, including streaming of long samples from the sCPU to the SPC700 unit or dynamically replacing "instruments".
The DSP itself has hardware envelopes and such. So the S-SMP doesn't have to take care of that in software (like you do on the NES, PCE, Amiga, etc). The DSP also does the frequency scaling via phase accumulation. It handles the volume, echo, noise generation, and such also. Everything is done on a digital level and combined all channels with an ADDER logic before being sent to the DAC. It does have 2 channel FM mode(s), but they are useless IMO considering what you can do with a single channel via normal sample based synth. The sample compression scheme has a few more control bytes than plain ADPCM, so the sample compression isn't 1/4 that of 16bit samples. It's 9/32 the size (4.5bits per sample). So the limited 64k of ram is larger in reality for sample storage (almost double). There's also loop points in the BBR control codes of the sample, which is nice for instrument construction and save some space for long sounding/playing instruments. But forward looping only AFAIK (for anyone familiar with MOD/XM sample based tracker stuff).
The S-SMP has its own set of timers for sync the main music driver too, for instrument FX and such or just fine resolution note timing (like 120hz or 240hz ticks, etc). And since the S-SMP has direct access to sample ram (and the buffer that the S-DSP uses for echo), it's possible to create sounds/samples on the fly. I've read a few games do this, but to what extent - I dunno.
So, in application it's not really much different than a z80+FM or a main cpu+sound chip, music driver. You can do software driven effects like frequency envelopes and such, just like you would on a normal sound engine. It's just that the main cpu doesn't have direct access to the memory inside the audio unit - like the PSX setup does.
I hope that helps >_>. I'm not a SPC700 guru, so there might be some additional stuff you can do on the unit (exploits and whatnot).
So an analog to what is actually occurring (paraphrasing for my understanding - likened to a studio set-up rather than "in the chips") is a filter is in place, sort of acting as a compressor? so I'd guess the result of what I am hearing is because there is no noise gate to manage/negate the 'compression' enhancing artifacts and noise along with the intended signals? Is that anywhere near an explanation of what I have heard? Or is it merely in the compositions themselves and hardware has nothing to do with it?
I'm thinking I could have the SNES handle drums and sampling and let the Genny's FM take over for the rest. I'd have to find a different builder to utilize the PSG channel on the Genny because the one I'm looking at only handles FM channels, no PSG at all. Then again, the SNES would handle that better anyway. I'm still thinking I'd be easier and more effective to chiptune with the Genny's FM and back it as I normally would with the PC for everything else.
Last edited by Icarus Moonsight; 05-25-2010 at 02:00 PM.
This signature is dedicated to all those
cyberpunks who fight against injustice
and corruption every day of their lives
Nba Jam and Earthworm jim for the genesis
U GAIZ JUST DONT LIKE CHANGE , (builds a artificial foundation here)
Seconded. Genesis version was way more Arcadelike.
TenTenCanidae
Collects NES games & RPG's for all systems.
www.myspace.com/peeweesbike
www.myspace.com/bayonetdoesntcare