Producing Waveform from Frequency Table

Click For Summary
SUMMARY

This discussion focuses on generating waveforms from a frequency histogram for a voice synthesizer. The user, Chris, is working with an 8-bit 44kHz waveform and seeks to create noise with a specific frequency distribution using a frequency table stored in an array. Key insights include the necessity of incorporating both amplitudes and phases for accurate sound reproduction and the recommendation to utilize the inverse Fourier transform algorithm for waveform generation. Additionally, potential issues such as frequency resolution, amplitude measurement, and arithmetic precision are highlighted as factors affecting sound quality.

PREREQUISITES
  • Understanding of inverse Fourier transform algorithms
  • Knowledge of waveform generation techniques
  • Familiarity with amplitude and phase concepts in sound synthesis
  • Experience with digital signal processing (DSP) principles
NEXT STEPS
  • Research the implementation of inverse Fourier transform in audio synthesis
  • Explore techniques for accurate amplitude and phase measurement in sound design
  • Learn about digital signal processing (DSP) tools for waveform manipulation
  • Investigate methods to improve frequency resolution in sound synthesis
USEFUL FOR

This discussion is beneficial for audio engineers, sound designers, and developers working on voice synthesis or digital audio applications, particularly those interested in waveform generation from frequency distributions.

navaburo
Messages
6
Reaction score
0
I'm working on a voice synthesizer. I have my computer set up to accept an 8-bit 44kHz waveform. I'm feeding it sines, adding sines together, and so on. It works great.

However, I want to generate a sound given a frequency histogram. That is, I want to generate noise that has a specific frequency distribution. If my frequency table is stored in an array (think "int freq[100]", using 100Hz histogram bins), how would I go about obtaining a waveform? (I have tried just adding a bunch of sines together, but this doesn't seem to work well... I get lots of beating, not at all a regular "noise" as I want).

Thanks a bunch!
Chris
 
Technology news on Phys.org
To accurately reproduce a sound from its frequency spectrum, you need not only the amplitudes at each frequency, but also the phases.

(There is an algorithm called "inverse Fourier transform" that can create the waveform for you, but all it does is adds sine waves in a computationally efficient way.)

Possible other causes of problem:

Is 100 Hz resolution good enough?
Are you using amplitude ("volts") which is correct, or power ("watts") or logarithmic power ("dB") which are incorrect?
If you are using integer arithmetic rather than floating point arithmetic, is there any overflow occurring?
 

Similar threads

Replies
17
Views
6K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
6K
Replies
2
Views
7K
  • · Replies 3 ·
Replies
3
Views
5K
  • · Replies 4 ·
Replies
4
Views
8K
Replies
6
Views
3K
  • · Replies 42 ·
2
Replies
42
Views
7K
  • · Replies 8 ·
Replies
8
Views
3K