In layman's terms, please explain the reason that all the popular PSG's used in 1980s computers and game consoles provided an additional channel to generate programmable "noise". How was this "noise" used to create more realistic or interesting music and sound effects? Also, it seems that the noise channel is absent in the later chips using FM synthesis. Why is it no longer required for that generation of on-chip synthesizer?
-
9Due to the chaotic nature of FM synthesis, noise can be easily created, even if you don't intend to do so :D– Stefan Paul NoackMar 29, 2017 at 16:51
-
A fun exercise is to synthesize a "flute" instrument with white noise and a band-pass filter.– Nate EldredgeMar 30, 2017 at 5:07
-
1Short rhythmic bursts of noise are used for the sound of snare drums. Amplitude-modulated noise can also be used for "explosion" or "gunfire" game sound effects.– pjc50Mar 30, 2017 at 10:37
-
@NateEldredge: I've done that on a Roland's successor to the Juno 106 (same sound generator, but an enhanced preset system). That's a different style of synthesis from the FM synthesis used on the Yamaha DX-7.– supercatMar 30, 2017 at 15:44
5 Answers
One basic distinction in acoustics is the one between sounds that oscillate with a pattern that is repeated over time and sounds that are chaotic in nature, and show no repetitive pattern.
Sounds of the first type may be referred to as "tones". There are a few tones that can be described by a very simple mathematical equation, for example the the square wave, the pulse wave, the triangle wave, and the sawtooth wave (listen to the examples on the Wikipedia pages to get an idea what they sound like). The shape of some of these waves are shown in this image:
(By Omegatron, CC BY-SA 3.0, http://creativecommons.org/licenses/by-sa/3.0)
By changing the rate of repeating patterns per second, tones can be played at different pitches. As they are so easy to describe mathematically, many early sound chips used them to produce music and tonal sound effects.
The second type of sounds may be called "noises" – a noise is a sound without any clearly repetitive pattern:
(By cralize, CC BY-SA 3.0, http://creativecommons.org/licenses/by-sa/3.0))
Due to this lack of repetitions, you can't produce noises at different pitches as easily as tones, so they're rather useless if you want to play a tune.
However, they're still very important – in fact, most languages of the world use different types of noises as speech sounds: if you say "three five six", each numeral starts with a different type of noise. Not only that, many sounds that occur in nature are noisy: falling rain, the sound of wind, or ocean waves are all lacking a repetitive pattern and are therefore different types of noises, as are, for example, rolling thunder or the sound of a cymbal.
It's extremely difficult to emulate noises by using one of the tones, so a sound chip that produces only one of the basic tones will have problems producing one of these natural sounds. But noises are also fairly easy to describe mathematically: simply send a sequence of random values to the speaker, and the result will be static noise. In fact, that's what you're listening when you listen to static coming from a radio that isn't set to a station: random fluctuations of the radio signal.
So, for early sound chips that didn't have much computing power, the two types of basic sounds complemented the range of sounds that could be produced with little effort: simple tones for music, and noise for naturally sounding effects.
However, these chips were restricted to the tonal characteristics of the basic wave forms that they supported, none of which sounded like a real musical instrument. This is the charm of Chiptune music: it's clearly synthetic, and closely linked to a particular type of devices. So, in a way, by using these devices for creating music, a new and unique class of musical instruments was developed that sounded unlike anything before.
Later chips used FM synthesis to produce tones, which is a radically different approach to manipulating the shape of tonal waves. This allowed for a much expanded range of possible sounds, and all of a sudden, real musical instruments could be emulated.
Some of these cards, for instance the Ad Lib card which was the first affordable sound card for x86 PCs, did not contain a noise chip, and therefore relied on FM synthesis also for sounds that are typically noisy in nature, for instance snare drums or cymbals. I know many people who hated the sound of the Ad Lib cards exactly for this reason: due to their lack of a noise generator, the drum sounds lacked all punch. Just listen for example to the promotion video for the Ad Lib card, and you will hear what I mean.
-
2This is an excellent answer! Welcome to Retrocomputing; please continue to contribute to the site.– wizzwizz4 ♦Mar 29, 2017 at 20:26
-
4It's a detailed and easily understood answer. One aspect missing for me is, if the noise is just random, like "white noise", how do you program the chip to make it sound like something specific and recognizable? There must be some kind of programmed "mixing" or "parameterized" noise generated, right? Is this the "envelope" control?– Brian HMar 29, 2017 at 20:51
-
1@BrianH I don't know these chips, but I imagine that they could modulate the base signal. For example, if you give the noise a sharp attack and a slow decay, you'll get a different sound than if you give it a slow attack and a sharp decay. Mar 29, 2017 at 20:55
-
2@BrianH the noise generator usually produces "white noise" that contains the complete range of audio frequencies. You can then easily filter out the frequency range(s) that you don't want. The "envelope" control changes how the amplitude (loudness) of the sound, varies with time, which is a different effect (e.g. changing constant white noise into a cymbal sound that dies away to nothing, or a repetitive sound like ocean waves breaking on the shore). Mar 30, 2017 at 5:23
-
1@BrianH Many PSGs (like the Atari 2600's TIA) use Linear Feedback Shift Registers to generate the noise. The period of the noise is configurable, so when the period is long the ear detects no pattern and it sounds like white noise, but when the period is shorter the ear detects some pattern and it sounds like an engine or a bass note.– amossMar 30, 2017 at 14:41
Many PSG's (Programmable Sound Generators) at the time (such as the popular AY-3-8910
) were made for applications like doorbells, kiosk machines, etc. And, of course, arcade machines and computers.
The reason they had noise channels was simple. We need a way to synthesize sounds like drums, snares, and explosions. The best way to do that is to use random noise. Tones made with square waves, triangle waves, etc. don't sound as good as a random noise channel when you're trying to blast aliens.
Tones sound good for the laser, just not the explosion. :-)
There were many different ways the noise channels were randomized with different frequencies and random "seeds".
But, at the end of the day, they used noise channels for sounds that cannot easily be produced with generated tones.
Also, keep in mind, digital audio recording wasn't an option at the time. While it was possible (and did happen from time to time), it wasn't very practical.
PS, the SID doesn't have a dedicated "noise" channel. Each of the three channels can be noise, triangle, saw tooth, etc.
-
3Of the big hitters, I think only the SN76489 has a dedicated noise channel; like the SID, the AY-3-891x and the POKEY just have a certain number of channels, on some of which you decide to apply noise generation.– TommyMar 29, 2017 at 16:18
-
@Tommy: Also the GameBoy, and GBA. The NDS has two dedicated white noise PSG channels.– ninjaljMar 30, 2017 at 10:29
In some systems, the noise channel could be used as a cheap source of pseudo-randomness, such as in the Atari POKEY (read address 0A
). Here, cheap means that the CPU can do other things whilst the randomness is being generated. This is useful because decent randomness is expensive to compute on general purpose hardware.
Taking the example of the Atari POKEY, the randomness is generated using 8 bits of a 17-bit polynomial register. A polynomial calculation is implemented in hardware similarly to a CPU's multiplication instruction so can take a similar length of time, but implementing one in software is O(n) (not O(1)). Thus, this randomness channel can have uses other than audio generation.
-
A positive vote from me, though one suspects those probably weren't the uses that motivated the chip's designers?– TommyMar 29, 2017 at 16:16
-
@Tommy I expect that this particular chip's designers were motivated by it; they used a read on one of their memory-mapped addresses to specifically grab the high 8 bytes of the 17-bit poly register instead of that being done via a loopback cable. (This chip has two main primary functions though; as well as audio generation it is also an ADC for potentiometers.)– wizzwizz4 ♦Mar 29, 2017 at 16:54
There are many acoustic events - drum beats, steps, explosions, breath, abrasion, clicking... that are based on a lot of harmonically unrelated frequencies in relatively irregular patterns. Which is more easily synthesized by taking noise and filtering/ADSR-ing the unwanted parts away than controlling a lot of oscillators independently.
Note that true white noise "has it all" - you could put a very narrow bandpass and an amplitude stabilizer behind a white noise source and have something very close to an oscillator defined by the bandpass center frequency (actually, a lot of oscillators are exactly that, albeit in a non-obvious way).
-
Welcome to Retrocomputing Stack Exchange. Thanks for the answer. Am I right in thinking that a programmer could create "tuned" white noise by applying a wide bandpass filter?– wizzwizz4 ♦Mar 31, 2017 at 16:28
-
1Yes. Similar things are done in analog synthesis. A real oscillator (of the analog kind) is often built around a narrow bandpass filter (eg a quartz crystal). BTW, a very narrow and "steep" bandpass will be strongly resonant (will still give you a tone a while after you switch the noise or input signal off) - even the switching off of a tuned input is just a spectral impurity to such a filter which it tries to filter out by singing on :) Mar 31, 2017 at 16:36
-
You couldn't apply such a filter on most simple PSG chips though, but you can usually change the rate at which the noise value changes, producing sounds from a high-pitched hiss to a low rumble. This isn't a true low-pass filter and you get some noticeable harmonics from the approximation. Apr 1, 2017 at 10:46
Many games have explosions. Explosions seem more like explosions when there's an associated a burst of noise than when there's a beep. Having other kinds of noise for things like engines is also good, but it's not too hard to get decent rumbly sounds out of tone generators. Explosion noises, however, would require changing the frequency setting much more often than rumbly sounds.