> 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.
OK, we WERE talking about different things here. You said that an LFSR, in comparison to a leaky semiconductor is a little short on the low-end noise. Leaky semiconductors don't lend themselves well to digital implementation (i.e. DSP code,) so I was suggesting a way to boost the low-end noise of an LFSR (which does lend itself pretty well to DSP code,) so that it might more closely resemble a leaky semiconductor for emulation purposes.
Of course, noise produced by a [digital] LFSR that is sent through a specific [analog] filter can be almost exactly reproduced by sending "identical" noise produces by an identical LFSR through the equivalent digital 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...
> >>
> 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).
It can all be done in fixed point. Most DSPs have a 1 cycle MAC instruction, so worst case, a 20th order LPF takes 39 cycles (20 for all the poles, up to 19 for the zeroes.) This is why DSPs have a market. This is also, essentially, what MMX is, (a MAC instruction, although, of course, that's not all) essentially Intel's attempt to capture the market that has been dominated by little dedicated DSPs on sound cards, etc. Any pre-MMX processor (besides the PowerPC, which has a MAC instruction) will have difficulty (i.e. take longer) to do this stuff. Anyways, I don't want to turn this into a micro. discussion....
> 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.
I agree with you. The 20th order filter was just an example. In fact, something as small as a 4th order filter might, for all intents and purposes, do the same thing (I had a Professor tell me one time that the average of 4 LFSR generated pseudo-random numbers was a normally-distributed pseudo-random number. He wasn't really in the field of signal-processing, though. I got the 20 from the stats. profs that I had.) There have been scores of papers written on LFSR generated pseudo-random numbers (Lots by people here at Crystal, actually) so I will check into those.
It's definitely off the the University of Texas library for me tonight (In search of a S2688 datasheet.) I hope they don't have funky hours for the summer. I'll let y'all know if I find anything (UTexas has never let me down before! <knock> <knock>)
Joe
Received on Wed Jun 11 14:05:46 1997
This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:31:36 EDT