• Please review our updated Terms and Rules here

Interesting sounds from Tandy sound chip noise channel

vwestlife

Veteran Member
Joined
May 2, 2008
Messages
5,407
Location
central NJ
Everybody knows that the Tandy 1000 series sound chip produces 3-voice music... but its fourth voice, a noise channel, seems to almost always go unused. Its main feature is to provide white noise for sound effects like gunshots and rocket blasts, but at certain settings it can be used to provide a somewhat raspy but still very pleasant-sounding extra fourth voice for music. Combine it with the other three voices in harmony, and you get a nice rich layered effect, as I demonstrate with a short BASIC program in this video clip:

http://www.youtube.com/watch?v=4Ul-wxNuNvs

NOISE 0,x,x through 2,x,x produces three octaves of musical tones, while NOISE 3,x,x just produces a clicking noise and NOISE 4,x,x produces white noise.
 
I'm not sure I understand the syntax of the NOISE command. Do the second and third parameters set the frequency of the (white) noise? In other types of chip music it is so common to use white noise for drums that I've never reflected that someone else would think it is strange. Preferrably one can set the frequency but even without, it fills some purpose for rhythm.
 
I'm not sure I understand the syntax of the NOISE command. Do the second and third parameters set the frequency of the (white) noise?
When in doubt, refer to the book "Graphics and Sound for the Tandy 1000s and PC Compatibles" by William Barden, Jr. (Microtrend, 1988 ) -- Radio Shack catalog number 25-1512. :) It's not perfect -- for example, it falsely claims that the 1000's multivoice sound is only available through the audio output jack, not through the built-in speaker -- but it's still a goldmine of information, especially for BASIC programming.

Anyway, the syntax is:

NOISE source, volume, duration

Volume: 0 (silent) to 15 (maximum loudness)
Duration: .0015 to 2978, representing the number of clock ticks (the PC timer clock tick is 18.2 times per second, so each "tick" equals 0.0549 seconds). Same as used for the SOUND command.
Source: creates periodic or white noise based on the 3.58 MHz (3579545 Hz exactly) NTSC color burst frequency:

0 = periodic noise of frequency 3579545 / 512
1 = periodic noise of frequency 3579545 / 1024
2 = periodic noise of frequency 3579545 / 2048
3 = periodic noise, at frequency of voice 2 tone currently playing
4 = white noise of frequency 3579545 / 512
5 = white noise of frequency 3579545 / 1024
6 = white noise of frequency 3579545 / 2048
7 = white noise, at frequency of voice 2 tone currently playing

If the third music channel (voice 2, since the first channel is voice 0) doesn't currently have a tone playing when the NOISE 3,x,x or 7,x,x command is issued, all you'll hear is a soft clicking noise. If you only want to hear the noise, set the volume of the voice 2 tone to zero.

The Tandy 1000 sound generator chip is the Texas Instruments SN76496N, if you want to look up the data sheet. Its output is run through a fixed lowpass filter (unlike the adjustable analog filters in the SID chip), which eliminates much of the "sizzle" you hear from a raw squarewave generator like the Creative Music System / Game Blaster card. The Tandy chip can do ASDR envelopes (Attack, Sustain, Decay, Release), which at least gives it some variety of tone when programmed to take advantage of it.
 
Based on info in the thread link posted above, it turns out Tandy used three different sound chips in the 1000 series:

1000, 1000A, 1000HD, 1000EX, 1000SX - Use TI SN76496
1000HX, 1000TX - Use NCR 8496
1000 TL/SL/RL series, RSX - Use PSSJ

Each chip may have slightly different artifacts (just like the two different SID chips) but are functionally equivalent. The TI chip is the same as used in the IBM PCjr. The PSSJ adds 8-bit digital audio recording and playback ("Tandy DAC").

There were also a few other Tandys, not part of the 1000 series, that have the multivoice sound and DAC, such as the Tandy 2500XL.
 
The Tandy chip can do ASDR envelopes (Attack, Sustain, Decay, Release), which at least gives it some variety of tone when programmed to take advantage of it.

Actually, it has no native ADSR. Any ADSR you've heard was created by the program controlling the volume of the chip.

When I add support for Tandy/PCjr to MONOTONE, I'll post about it here. Nice to see people exploring old sound hardware other than myself :)
 
Wikipedia mentions NCR 7496, but they all seem to belong to the same family of chips, based on the SN76489 as found in the BBC Micro, IBM PCjr, ColecoVision and a number more. It is functionally very similar to the AY-3-8910/8912 chips too, found in anything from MSX, Oric and Spectrum 128K to Atari ST (well, the Yamaha version).

I wasn't aware about the limitation of white noise frequency, but this function description verifies the syntax of the Tandy Basic command:
http://www.howell1964.freeserve.co.uk/parts/76489.htm

Does this mean you can't make a white noise sweep in other ways than setting the frequency in tone generator 3 (or 2 if you count from 0) and have the tone generator turned off?

Interesting article by John Kortink:
http://web.inter.nl.net/users/J.Kortink/home/articles/sn76489/

As for ADSR, at least each voice can have its own volume. Not all chips were that advanced.
 
Wikipedia mentions NCR 7496, but they all seem to belong to the same family of chips, based on the SN76489 as found in the BBC Micro, IBM PCjr, ColecoVision and a number more. It is functionally very similar to the AY-3-8910/8912 chips too, found in anything from MSX, Oric and Spectrum 128K to Atari ST (well, the Yamaha version).
The limited noise generation really hurt the ColecoVision, which always had wimpy-sounding sound effects (especially explosions) compared to the Atari 2600 and Intellivision. (I think the Atari TIA and POKEY chips had some of the best synthesized explosion effects of all time -- it simply didn't get any better until digitized sound samples took over in the '90s.) Coleco at least made use of nice harmonized music, but it was all pure square waves, and got rather boring after a while, compared to the more complex tones you can get out of a SID or even a POKEY chip.

Another user of the Tandy/PCjr/etc. TI chip was the Sega SG-1000 series of video game consoles -- which eventually became the Sega Master System, although by that time Sega was building their own custom chips and no longer used the real TI (or equivalent) sound chip. Anyway, you can include the Sega Game Gear as well, since it was really just a portable Master System, and even the Genesis/Mega Drive retained the Master System's sound features, both to provide MS compatibility as well as to provide extra sound effects beyond what its infamous FM MIDI music chip could do.

Anyway, I think Maniac Mansion is the best game I've heard to make full use of the Tandy 1000's ability to create sound effects and drums to go along with the multivoice music:

http://www.youtube.com/watch?v=nR0Ne0sP9xc

That video also shows just how fast the Tandy 1000 SL/TL/RL series boots up: the POST is done so quickly that it has to sit and wait for the hard drive to finish spinning up before it can boot DOS! If that was a floppy-only model booting DOS and Deskmate from ROM, it would be ready to use almost instantly -- doing a complete cold boot in less time than it takes a modern PC to merely wake up from "sleep" mode! :eek:
 
Doesn't POKEY also only offer square waves, or does it at least have variable pulse width? I kind of remember one of those chips apart from the SID that has both envelopes and some form of waveform selection. Or was that the AY chip?

Right now, I have at least one machine each of all those vintage sound chips:
VIC: VIC-20
SID: C64, C128, C128D, CBM610 ...
POKEY: Atari 800XL, 130XE
AY: Intellivision, Philips VG-8235 MSX2
SN76489: Sord M5, Acorn Electron, BBC Micro & Master Compact, creatiVision
Ricoh 2A03: Nintendo NES (actually a CPU with built in PSG, it seems)

Only a working Commodore 16 or Plus/4 is missing to get TED sound. For the MSX, I have two Konami cartridges with SCC (2212) sound which I believe is comparable with the OPL chips, but those are not quite as vintage as the other ones.

I find this index page rather useful: http://en.wikipedia.org/wiki/Sound_chip
 
Doesn't POKEY also only offer square waves, or does it at least have variable pulse width?
It generates square waves, but lets you add a variable amount of distortion, so you produce anything from a pure tone to a white-noise-type hiss or roar.

And I am wondering... were the Atari 400 and 800 (announced in 1978, released in 1979) the first home computers with multi-voice sound?
 
The only other competitor I can think of is the TI-99/4, but perhaps it was released later than the Ataris. I'm unsure what sound resources the original Apple II has. If we also consider video games, systems like the Atari 2600 and Fairchild Channel F should be examined (I don't know their sound off-hand).
 
The only other competitor I can think of is the TI-99/4, but perhaps it was released later than the Ataris.
Very close, but Atari still had the lead by a few months:

Atari 400/800: announced December 1978, first shipped August 1979

TI 99/4: announced June 1979, first shipped October 1979
Sound: TI TMS9919, similar to the SN76489 used in many other systems
* 3 voices, 1 noise (white or periodic)
* Voices generate square waves from 110 Hz to approximately 115 kHz (?)
* Console ROM includes interrupt-driven music list playback

The TI 99/4 was a commercial failure, due to its high price, cheap keyboard, lack of RF output (you had to buy TI's monitor, which was simply a Zenith 13" color TV with the tuner removed), and poor graphics. The 99/4A was much improved, but still didn't sell well until TI slashed is price and sold it as a $99 loss-leader before dicontinuing it.

I'm unsure what sound resources the original Apple II has. If we also consider video games, systems like the Atari 2600 and Fairchild Channel F should be examined (I don't know their sound off-hand).
The Apple ][ series had a simple single-voice square wave beeper, pretty much identical to the IBM PC speaker. The only exception was the IIGS model (the "GS" standing for Graphics and Sound) which had a built-in 32-voice Ensoniq wavetable synthesizer.

The Fairchild Channel F had an extremely simple single tone generator: it could only produce beeps at three different pitches (500, 1000, and 1500 kHz)! The Atari 2600 used Atari's own custom TIA (Television Interface Adapter) chip which was responsible for both sound and graphics. The TIA produces two-voice sound with a wide variety of effects. Its musical abilities are limited, but it is fantastic for sound effects, and was even originally intended to be stereo, with two built-in speakers in the 2600's case, one for each channel -- the earliest games were even programmed to take advantage of this. However, Atari decided to route the sound through the TV instead, which restricted it to mono. With some circuit mods you can still access the TIA's stereo sound via its output pins.
 
Hm, isn't TMS9918/19 the graphic chip, later developed in the 9928/29 and 9938/39 series? I'm not sure about poor graphics, to me it seems like a forerunner to all the other TMS systems starting with ColecoVision and ending in MSX2, of course upgraded all the time. But too expensive with the monitor yes.

110 Hz is a rather high-pitched tone for being a bass octave. The TED chip in the Commodore 16 and Plus/4 also has this lower limitation, which sucks a bit when it comes to making music.
 
I'm not sure about poor graphics, to me it seems like a forerunner to all the other TMS systems starting with ColecoVision and ending in MSX2, of course upgraded all the time. But too expensive with the monitor yes.
The original 99/4 did not have bitmap graphics. Its "graphics" was a set of predefined character shapes, similar to the Mattel Aquarius. The 99/4A added true bitmap graphics but retained the graphical characters for backwards compatibility.

110 Hz is a rather high-pitched tone for being a bass octave. The TED chip in the Commodore 16 and Plus/4 also has this lower limitation, which sucks a bit when it comes to making music.
I've noticed that the PC speaker output can make lower tones than the Tandy chip... which makes me wonder, is it possible to use the PC speaker and Tandy sound chip at the same time, for a combined four music voices and one noise voice? The technical write-up I have doesn't mention anything about the PC speaker sounds using one of the Tandy chip's voices, so the PC speaker might be using entirely different circuitry on the motherboard. But you do have to send a command to route the Tandy chip's output to the speaker before you can get any sound out of it, so the question is if that switching also mutes the PC speaker output.
 
Possibly you can play "digis", i.e. sound samples through (multiplexed?) one or two voices. I'm unsure exactly how you create a sound sample where you alternate the frequency really fast; on the Commodore side it is more common with volume samples (which works because the volume register makes a click everytime you change it). The SID should also be able to do PWM (pulse width modulation) samples, but that is out of the question for the Tandy SN764XX chip. As early as 1987-88 there were some C64 games/demos that contained three regular + two multiplexed digi voices, usually for digital drums.
 
I've noticed that the PC speaker output can make lower tones than the Tandy chip...

This has me wondering about something. Per the Tandy TL technical reference (downloaded from Trixter's site):

Jacksboro Specification (PSSJ Sound Chip)

6.0 Modifications to the 76496

6.1 Extra Bit of Division by each channel.

When clocked by a 3.579545 MHz signal, the lowest frequency generated by the 76496 (with its 10 bit dividers) is 109.24 Hz. It is desired to be able to generate lower frequencies. An extra bit of division will allow frequencies down to 54.62 Hz, or an octave lower than the lowest note currently available. Since there is an extra bit in the frequency update register (second byte), it makes sense to implement this feature here. However, to maintain backwards compatibility, since it is not known what is programmed in this bit, there needs to be a way of defeating the extra bit of division. Therefore, there is a signal (SEDE), which enables the extra bit for all three channels. This bit defaults to a logic zero (low) on reset. When it is set, by writing to port C4 with bit 6 high, the extra divider will be enabled.


Was anything ever programmed to take advantage of this feature?
 
I've noticed that the PC speaker output can make lower tones than the Tandy chip... which makes me wonder, is it possible to use the PC speaker and Tandy sound chip at the same time, for a combined four music voices and one noise voice? The technical write-up I have doesn't mention anything about the PC speaker sounds using one of the Tandy chip's voices, so the PC speaker might be using entirely different circuitry on the motherboard. But you do have to send a command to route the Tandy chip's output to the speaker before you can get any sound out of it, so the question is if that switching also mutes the PC speaker output.

The TL tech ref says: "Also, this device has an audio input pin connected to the gated output of timer channel 2. This audio input signal is mixed with the sound generator signal and supplied to the audio output pin." So that would indicate that you can have 3-voice as well as the PC speaker, at least for the TL series.

I am finishing up effects for MONOTONE and after I'm done I'll add Tandy/PCjr support and investigate if this is possible on the 1000.
 
Last edited:
Possibly you can play "digis", i.e. sound samples through (multiplexed?) one or two voices. I'm unsure exactly how you create a sound sample where you alternate the frequency really fast; on the Commodore side it is more common with volume samples (which works because the volume register makes a click everytime you change it). The SID should also be able to do PWM (pulse width modulation) samples, but that is out of the question for the Tandy SN764XX chip. As early as 1987-88 there were some C64 games/demos that contained three regular + two multiplexed digi voices, usually for digital drums.

The Tandy/PCjr chip can produce digitized sound using both PCM (generating a level wave and then altering the volume register for a crude 4-bit DAC) and PWM (pulsing the speaker as previously described). While PWM is possible on the 76489, you need to do it to all three channels simultaneously to get any serious volume, and a 4.77MHz 8088 would only be able to do that at about a 5KHz sample rate. So, most people choose PCM. More info here: http://www.smspower.org/maxim/docs/SN76489.txt

One problem with PCM output on the Tandy/PCjr is that the volume levels are logarithmic, not linear. So the sample is somewhat quiet and you need to compress it (dynamically, not losslessly :) to get better volume. An advantage to the technique is that, other than unpacking your 4-bit samples, all you have to do to play is write a 4-bit volume value to a port. Since that's relatively simple, you can easily get higher sample rates like 16KHz (22KHz is possible on 9.54MHz 8088 or 8MHz 80286 or better if using interrupts, or on any machine if polling).

PCM technique was first used on a PCjr launch title, Touchdown Football, in 1984. Surprised the hell out of me to hear very clear voice coming from a PCjr!
 
Back
Top