I am trying to generate a special type of noise. Its not pink or white,
or another color, it has a specific "spectrum" so to speak. Its
basically filtered white noise, but I think it would be too difficult
to recreate reliably and cheaply with multiple analog filters. It looks
like pink noise from 20 hz to about 700 hz, then it has various peaks
and valleys. I would like to make a very inexpensive playback device
for this noise sound, based on clocking out a cheap flash memory into
an RC filter. The process would go like this:
1) mathematically generate the sound somehow in the analog domain (pure
math)
2) take the pure math sound, and generate an appropriate bit stream,
designed to recreate the analog sound by playing the bitstream into an
RC filter
so what we are doing here is taking an analog domain sound (the pure
math) and mathematically transforming it into a bitstream that when
played into a simple rc filter will recreate the original analog sound.
this is possible right?
I dont know how to do steps 1 or 2. I figure step 1 should be easy to
do in C. So since I want a 20khz upper frequency to be reproduced, each
second of sound will require 40000 samples, right? So if I want this
noise sound to loop every 5 seconds (to keep the size of the flash
memory down), I will need 40000 * 5 samples, which is 200,000 samples.
So in C, make a 200,000 byte array, and then starting at 20hz, create a
sine wave whose amplitude matches the energy of the spectrum of the
desired noise at 20 hz, and put it in the array. The move to 20hz +
..001hz, and do it again, but mix it with the existing sound in the
array, and continue this process until you get to 20,000hz. Then you
have a 5 second long array of an analog-domain sound which matches the
spectrum of the sound I want to recreate.
Now to play this array back using our flash memory/rc filter setup, we
have to take the array, and transform it into a bitstream which when
played back on the rc filter, will recreate the original sound (which
we are starting with). I suppose you could use some simple closed loop
method, http://www.romanblack.com/picsound.htm.
Does this make sense?
Could you recreate white noise using this method? And does it matter
what phase I start the sine wave at when creating the array?
or another color, it has a specific "spectrum" so to speak. Its
basically filtered white noise, but I think it would be too difficult
to recreate reliably and cheaply with multiple analog filters. It looks
like pink noise from 20 hz to about 700 hz, then it has various peaks
and valleys. I would like to make a very inexpensive playback device
for this noise sound, based on clocking out a cheap flash memory into
an RC filter. The process would go like this:
1) mathematically generate the sound somehow in the analog domain (pure
math)
2) take the pure math sound, and generate an appropriate bit stream,
designed to recreate the analog sound by playing the bitstream into an
RC filter
so what we are doing here is taking an analog domain sound (the pure
math) and mathematically transforming it into a bitstream that when
played into a simple rc filter will recreate the original analog sound.
this is possible right?
I dont know how to do steps 1 or 2. I figure step 1 should be easy to
do in C. So since I want a 20khz upper frequency to be reproduced, each
second of sound will require 40000 samples, right? So if I want this
noise sound to loop every 5 seconds (to keep the size of the flash
memory down), I will need 40000 * 5 samples, which is 200,000 samples.
So in C, make a 200,000 byte array, and then starting at 20hz, create a
sine wave whose amplitude matches the energy of the spectrum of the
desired noise at 20 hz, and put it in the array. The move to 20hz +
..001hz, and do it again, but mix it with the existing sound in the
array, and continue this process until you get to 20,000hz. Then you
have a 5 second long array of an analog-domain sound which matches the
spectrum of the sound I want to recreate.
Now to play this array back using our flash memory/rc filter setup, we
have to take the array, and transform it into a bitstream which when
played back on the rc filter, will recreate the original sound (which
we are starting with). I suppose you could use some simple closed loop
method, http://www.romanblack.com/picsound.htm.
Does this make sense?
Could you recreate white noise using this method? And does it matter
what phase I start the sine wave at when creating the array?