Page 2 of 4

Re: That C64 sound

Posted: Fri Sep 18, 2015 2:59 am
by ccovell
rainwarrior wrote:Almost everything else has a very straightforward way to attenuate individual notes (e.g. NES, AY, Pokey, any YM FM chip, etc...)
Straightforward, if you are a CPU.

You can see that the SID was designed to be easy for a musician to trigger and release notes as he/she played without worrying much about volume control per-note. No musician in their right mind would want to keep one hand on the volume control knob at all times while pressing keys on a keyboard, which is pretty much the AY/2A03/YM model.

Re: That C64 sound

Posted: Fri Sep 18, 2015 6:46 am
by tepples
ccovell wrote:No musician in their right mind would want to keep one hand on the volume control knob at all times while pressing keys on a keyboard, which is pretty much the AY/2A03/YM model.
Clavichords and organs support polyphonic aftertouch. Organs also tend to have an expression pedal that changes the instrument's overall volume.

Re: That C64 sound

Posted: Fri Sep 18, 2015 6:52 am
by Dwedit
rainwarrior wrote:Of all the chips I've written music for that actually had any volume control at all, the SID has the worst. Almost everything else has a very straightforward way to attenuate individual notes (e.g. NES, AY, Pokey, any YM FM chip, etc...)
What about the Game Boy? No volume changes without resetting phase.

Re: That C64 sound

Posted: Fri Sep 18, 2015 7:32 am
by tepples
Game Boy at least allows specifying the initial volume. Thus it has a phase reset at the start of each piecewise linear segment of an envelope but nowhere else. So you get A (click) D (click) S (click) R, and whatever's playing in noise can mask the clicks.

Re: That C64 sound

Posted: Fri Sep 18, 2015 8:21 am
by Sik
ccovell wrote:No musician in their right mind would want to keep one hand on the volume control knob at all times while pressing keys on a keyboard, which is pretty much the AY/2A03/YM model.
No musician in their right mind would play so many instruments together at the same time either, they'd get other people to play the other instruments. (not to say this hasn't been tried, but you get the point) If you see different channels as different instruments rather than just a way to do polyphony (and since each channel has its own instrument, it's definitely not just for polyphony), the model is indeed straightforward.

Re: That C64 sound

Posted: Fri Sep 18, 2015 11:05 am
by rainwarrior
ccovell wrote:
rainwarrior wrote:Almost everything else has a very straightforward way to attenuate individual notes (e.g. NES, AY, Pokey, any YM FM chip, etc...)
Straightforward, if you are a CPU.

You can see that the SID was designed to be easy for a musician to trigger and release notes as he/she played without worrying much about volume control per-note. No musician in their right mind would want to keep one hand on the volume control knob at all times while pressing keys on a keyboard, which is pretty much the AY/2A03/YM model.
You've completely lost me here. O_o The SID is attached to a CPU, not a pair of human hands... what are you making this comparison for?

Even if we pursue this analogy to a keyboard, have you never heard of a piano? The volume is controlled by how fast you press the key. What about MIDI velocity control? Breath control? A volume pedal? There's like 100 other ways to control volume on a MIDI synthesizer.

Also it's actually really common to see a synthesizer keyboardist to play keys with their right hand while their left hand sits on the mod and volume wheels (example). Pretty standard way to play when not in poly mode, really.
Dwedit wrote:What about the Game Boy? No volume changes without resetting phase.
Actually, even though the Game Boy did not seem to be designed to do this, there is some kind of work-around that lets you set arbitrary volume at any time. I dunno if the technique was used in the commercial era, but it appears to be well understood now? (e.g. Deflemask lets you use the "volume macro" idiom).

Re: That C64 sound

Posted: Fri Sep 18, 2015 1:02 pm
by mikejmoffitt
Even still, nothing on the Game Boy prevents the musician from having one note start at an initially different volume than another note playing. That's crucial to a subtle background part, or most halfway-decent noise drums.

Re: That C64 sound

Posted: Fri Sep 18, 2015 3:27 pm
by Dwedit
While there is a trick that can clock the GB envelope counters, and thus set volume levels, it didn't work when I tested it on the GBA.
I ended up using a different way to work around the phase reset issue: Use GBA high-resolution timers, and synchronize them with the pulse channels to force the write to happen within a few cycles of when the wave would change, so the pops go away.

Re: That C64 sound

Posted: Fri Sep 18, 2015 5:03 pm
by ccovell
rainwarrior wrote:Even if we pursue this analogy to a keyboard, have you never heard of a piano? The volume is controlled by how fast you press the key. What about MIDI velocity control? Breath control? A volume pedal? There's like 100 other ways to control volume on a MIDI synthesizer.

Also it's actually really common to see a synthesizer keyboardist to play keys with their right hand while their left hand sits on the mod and volume wheels (example). Pretty standard way to play when not in poly mode, really.
My point was that many PSG chips (ones without a hardware volume sweep / fader) are like a piano whose note never fades away -- the "musician" / programmer / whatever has to take it upon himself to program in the fading of each note by twiddling the volume like a madman. Even "expressiveness" would have to be programmed in manually. At the very least, the SID takes that chore away from the non-technical person in that a natural-sounding note can be played with a single push-button coming out of the machine.

Re: That C64 sound

Posted: Fri Sep 18, 2015 5:15 pm
by rainwarrior
ccovell wrote:My point was that many PSG chips (ones without a hardware volume sweep / fader) are like a piano whose note never fades away -- the "musician" / programmer / whatever has to take it upon himself to program in the fading of each note by twiddling the volume like a madman. Even "expressiveness" would have to be programmed in manually. At the very least, the SID takes that chore away from the non-technical person in that a natural-sounding note can be played with a single push-button coming out of the machine.
Okay, but you explicitly compared it to the AY, 2A03, and YM (which YM?) which ALL have envelope generators. The SID has a better envelope generator than AY and 2A03 for sure, but a worse envelope generator than every YM FM chip.

So, all of these chips have a "fire and forget" way of playing notes, but I think it's kind of strange to think of this as an advantage, because almost nobody wanted to do that with these chips. SID music typically is frantically writing registers every single frame (e.g. the omni-present arps). With all the work they're already doing, it would not have been any problem to update volume each frame, and it would have had a huge advantage in balancing sound. I think it's truly bizarre that the SID is so feature-packed but omits this one crucial control.

Of these, only MIDI-controlled FM typically operates with sparse register writes. MIDI is really the only place it's an advantage, since you have somewhat limited control bandwidth, but for something directly connected to the CPU like a SID it's a non-issue to update it every frame.

Even if the SID ADSR had a channel volume control, like YM FM always does, that would still be a huge advantage without having to update every frame. My point is that it has no good per-channel volume control. Whether or not you want to do volume macros is a completely different issue from whether or not you can control the overall volume of a note at all.

Re: That C64 sound

Posted: Fri Sep 18, 2015 5:21 pm
by tepples
Does YM refer to Yamaha's clone of the Texas Instruments 76489 or to the YM2149, Yamaha's clone of the General Instrument AY-3-8910?

Re: That C64 sound

Posted: Fri Sep 18, 2015 5:47 pm
by Drew Sebastino
I though "YM" was just used in the name of most of Yamaha's sound chips. The Yamaha "YM"2151 is used for FM in both the Irem M72 and M92. There's also the YM2612 used in the Genesis, and the YM2610 used in the Neo Geo. (How in the world do these chips get their names? The YM2151 is the worst out of all of them, (The M92 also uses another chip, the custom GA20, for PCM samples) but the YM2612 is worse than the YM2610 and it's numbered higher by 2, oddly enough.)

Re: That C64 sound

Posted: Sat Sep 19, 2015 1:16 pm
by mikejmoffitt
Espozo wrote:I though "YM" was just used in the name of most of Yamaha's sound chips. The Yamaha "YM"2151 is used for FM in both the Irem M72 and M92. There's also the YM2612 used in the Genesis, and the YM2610 used in the Neo Geo. (How in the world do these chips get their names?
YM stands for Yamaha. The internal names (OPN, etc) make more sense and give clues as to which ones are register compatible.
Espozo wrote:The YM2151 is the worst out of all of them, but the YM2612 is worse than the YM2610 and it's numbered higher by 2, oddly enough.)
This is based on hot air. The OPM (YM2151) is a fan favorite. Higher numbers don't always mean "better part". Otherwise, the 6502 would trounce the 486.

Re: That C64 sound

Posted: Sat Sep 19, 2015 1:39 pm
by tokumaru
mikejmoffitt wrote:Otherwise, the 6502 would trounce the 486.
Except the 486 is actually 80486. :lol:

Re: That C64 sound

Posted: Sat Sep 19, 2015 3:55 pm
by Drew Sebastino
mikejmoffitt wrote:This is based on hot air
Well, that's just what I've heard. :/
tokumaru wrote:Except the 486 is actually 80486.
I didn't really get that either... Anyway, I mean processors of the same family or series or whatever. It's not like the 80386 is better than the 80486.

Speaking of x86 processors and the YM2151, I really need to get back and try to work with the M92 at some point...