Re: cine sound board

From: Zonn <zonn_at_concentric.net>
Date: Wed Jun 11 1997 - 16:32:00 EDT

At 01:08 PM 6/11/97 -0500, you wrote:
>> At 02:00 PM 6/10/97 -0500, you wrote:
>>
>> Since the goal is not to generate Normally Distributed random numbers, but
>> to recreate the sounds used in Cinematronics games, I don't think you going
>> to need a 20th order filter. Cinematronics certainly didn't use one in
>> Solar Quest, and that game definitely used the Shift register approach in
>> generating it's noise source.
>
> Ahhh, but it is. Your point was that the noise from your LFSR didn't have
enough of a low-frequency component. If you want your noise to have more of
a low frequency content, you want the mean of your normally distributed sum
to be low. There is probably going to be SOME low frequency component from
your LFSR generated noise. Add some gain to the passband of your filter,
and you boost the low frequency component. Does that make sense? (BTW:
20th order filters, if they are, indeed, necessary aren't THAT bad to do
digitally. An analog 20th order filter, though, must be HELL. Typically,
the ones on the Cineamtronics Sound boards aren't any higher than 3rd order.)
>
> I really don't care that the noise is normally generated, but Normal
distributions are the easiest to control in terms of their means and
variances. I DO care about the mean value of that noise if I want it to
have a certain content.

Actually my point was: Since the Cinematronics games that use a shift
registers approach (Solar Quest for sure) used only a LFSR and a 3rd order
filter, you should be able to recreate that sound with a LFSR and a 3rd
order filter.

The complaint about the LSFR not having enough Low end applies to all LSFRs,
not just any implementation I've come up with (just listen to the scratchy
sounds of the Pokey explosions. The "Thrust" sound used to fly through a
Tempest tube to the next level sounds more like a credit card on a zipper
than any kind of engine rumble -- which might be by design, but the author
had little choice, being stuck with a Pokey.

>
>> > Anyways, let me know if any of you guys have any info on that noise
>> generator...
>>
>> I've seen the S2688 noise generator replaced with a MM5586 (I think that's
>> right) which was a National Semiconductor chip. At one time (many years
>> ago) I had the data sheet for one of these two parts (I can't remember
>> which, maybe none of the above), and I remember it being a 17 bit shift
>> register with feedback. I believe there was also a noisy semiconductor
>> noise generator available at the same time, and I don't remember which parts
>> are which. (Maybe the "Semiconductor" part needed +/- voltages?)
>>
>> Solar Quest generates its noise with discreet components using the shift
>> register technique. In hardware you implement a shift register, then
>> through a few XOR gates you tap into some of the registers outputs to create
>> a value that is shifted back into the shift registers input bit.
>
> Right, in Signal Processing, this is called an LFSR (Linear Feedback Shift
Register.) They're used in a lot of the stuff I work with so I'm pretty
familiar with their signal processing usage.
>
> I think we're talking about the same thing here. I'm sure that there are
techniques to get "Brown" noise out of an LFSR, one of which might be what I
described above.

A 20th order lowpass filter will probably work fine. The CPU's I've used in
the past would come to a screaching halt if any type of floating point were
used (or even too many fixed point operations).

Instead of using the values of the random number generator as is (which more
closely mirrors that of "white" noise) and then trying to digitally filter
them, I've used a few bits of the random numbers generated as deltas to the
previous "noise" value. Ex: If you took only the lower four bits the random
number and treated it as a 4 bit signed number, the most your new noise
value would be changed from the previous one is by +/-7 (assuming you treat
-8 as a zero, which you must do). You end up with a low level high
frequency noise riding on a larger low frequency component. You have to
play with clock rates, and which bits (and how many) you use, you also have
to give it at little bit of history so that it wants to continue heading in
the direction it was previously heading, otherwise you can end up with
nothing but a +/- 7 bit white noise source. But given a little
experimentation you can get it sounding pretty nice.

Something like this might actually be being done to some extent inside the
S2688 noise generators -- we really do need a data sheet for this part.

-Zonn
Received on Wed Jun 11 13:33:37 1997

This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:31:36 EDT