Hello peoples SNES Devvers,
I am incorporating the initial thoughts on volume control for my SNES Tracker. The fact that SNES can do negative volume bytes which inverse the phase, could complicate the volume effect parameter. I am analyzing XM file format, which are able to stuff all the volume and pan effects into 1 byte, this of course neglects these negative volume effects which the SNES introduces. I am a guitarist, and have played plenty with a phase pedal. Is this the sort of effect I can expect to hear thru adjusting the voice volume register? I imagine not so, because I imagine that the phase effect signature of a guitar stomp box surely goes through a large step range of phase adjustments, where I believe this SPC inverse of phase is like switching from the peak values of a RANGE, instead of stepping through the whole steps of the range like a phase pedal. Am I correct? Therefore, what can we conclude the advantage is of controlling the phase through the volume register? What are the aural effects? Anything noteworthy or useful? I am trying to see the importance of including this feature.
Perhaps I will try some experimentation in the distant future.
Provided that a negative volume really does produce negative phase, I know how it could be used. In a
matrix surround setup, inverting the phase on one channel allows a sound to be panned to the rear speakers. This is useful for representing an offscreen sound effect to someone with a Dolby Pro Logic decoder.
Is that to say that it may be useless in a stereo setting?
It's great if you want to make music that's annoying to listen to. I added a "surround killer" mode to my SPC-700 emulator that negates one channel when a game sets the left and right gains to opposite phases. I think that Seiken Densetsu 3 was a bad offender.
OT a bit (sorry) -- is this how
Super Turrican for the SNES was able to advertise "Full Dolby Surround Sound"?
Proof is on the box.
Inverting the phase on both channels at the same time has no effect. When you invert the phase on only one channel...
blargg wrote:
It's great if you want to make music that's annoying to listen to. I added a "surround killer" mode to my SPC-700 emulator that negates one channel when a game sets the left and right gains to opposite phases. I think that Seiken Densetsu 3 was a bad offender.
I second this. For some reason, it just sounds "annoying". It's really hard to describe so you'll have to try for yourself. Thankfully the surround is optional in SD3 and can be turned off.
Also the effect is different if you're sitting far apart of the TV which have stereo speakers or if you are at home with speakers placed exactly on your left and your right for example.
Capcom games also inverts the phase of the echo, but not the main sound. This actually sounds pretty nice, and does not have the "annoying" sound of SD3.
To repeat what other people have said: in isolation, the phase of a single channel is completely inaudible.
However, having the same signal on both left and right but with different phases both interferes with our ability to localize sound, and also is the encoding used by surround sound matrix decoders such as Pro Logic. (Canonically, a 90° phase rotation from e.g. a hilbert transformer is necessary for this. However, I found that even just using a cheap 180° phase reversal was good enough to get my surround sound decoder to correctly pan things between the left and right surround speakers)
Determining several your devs' posts. I am determining that this feature is only useful for surround sound, with the exception being the case of the Capcom phase inversing its echo effects? Without hearing these effects, I am led to reasonably conclude it unnecessary to support.
However, I wouldn't mind hearing them myself before a full conclusion.
Also, in isolation, the effect is only audible when phase inverting one of the L/R channels for a voice, correct? However, what about when all 8 voices are playing different sounds, and I invert the phase for both L/R on a voice? What would that do?? Hm.. Maybe I'll just incorporate some ability to use this effect??? Meh, unsure without applicable results.
This thread has more inspired me to take a step back. Since I am writing modules that test different parts of the tracker . I realize now it is also in my interests to create test modules which demonstrate each unique aspect to the SPC700 that I do not yet understand, such as echo ADSR, Gain, this inverse phase, and who knows what else.
The Capcom echo effect I mentionned isn't that much noticeable really if you don't know it's there. (someone please correct me if I'm wrong)
When mixing several sound voices together, the DSP simply perform the sum of the different voices, so of course the phase have an influence on mixing. In the case where 2 voices plays at the exact same frequency, this will have a huge impact.
HOWEVER when playing music normally this will be completely negligible and have absolutely no impact.
This may sound like a paradox at first, but really it's not. The whole point of having music is that every voice plays a different part, and when two voices are at unisson, they are very likely to play at different octaves and/or different instruments. If it's not the case then I'd recommend to detune the voices slightly for a "chorus" effect to avoid having the instrument sounding "wrong" all of a sudden.
Also this is not specific to the SNES, but to digital music in general.
Having both of a channel's gains negative does very little in most cases. A waveform consists of a signal that goes up and down at a regular rate. A negative gain mostly just shifts the up and down 180 degrees, which has a varying effect time-wise based on the frequency. Unless the channel's waveform was interacting with another channel's wave form, i.e. both at the same frequency and with waveforms that cancel each other out/reinforce each other in a noticeable way, this phase change won't make much of an audible difference. It'd be essentially like starting that channel's wave a split-second later than normal.
I think that they have negative gain because their hardware gave it essentially for free (and maybe can't even do an 8-bit unsigned multiply by the signed samples internally), and because it was useful for doing pseudo-surround encoding.
This is the best use I have for a phase inversion...
- Channel 1 plays a sample.
- Channel 2 plays the same sample at the same time, but with phase inversed and the pitch very slightly toned down.
If Channel 2's pitch remains the same, the result should be no sound because the sound cancels out.
If the pitches are different, there is no need to "phase invert" channel 2, it won't make an audible difference.
The result will be no sound only if you key on both channels at the exact same time.
It would make a difference if the waveform is asymmetrical; inverting the phase of one side would create more phasing in and out. Consider two 10% pulse waves, either the same polarity or opposite.
The other use for a negative volume on one channel is mid-side stereo. Instead of encoding left and right separately, you might be able to get away with left + right at 32 kHz and left - right at 16 kHz. This would result in an overall bitrate of 48*4.5 = 216 kbps for streamed music.