How fast can I fast fourrier transform a stream to get fundamental frequencies? Can I pull this off in 10mS or less in a hard real-time scheduling system?
What I want to do is i.e. bring in a guitar signal; fast fourrier transform it; then reassemble with sine waves based on primary frequencies +/- so many Hz at a specific resolution.
In theory, if I were to generate sine waves at every amplitude indicated along a perfectly smooth graph, it would sound exactly like the input, correct? If I do considerably fewer, it would sound... actually, probably like an MP3 or Ogg Vorbis file, considering.
Here's the interesting part: If I tuned the waveform generators in the same way you'd tune a pure synthesizer (i.e. no samples), i could spit out interesting synth effects... matching an instrument. Any instrument. I could have a guitar that plays square waves, saws, funky synth effects, etc. In theory anyway.
What I want to do is i.e. bring in a guitar signal; fast fourrier transform it; then reassemble with sine waves based on primary frequencies +/- so many Hz at a specific resolution.
In theory, if I were to generate sine waves at every amplitude indicated along a perfectly smooth graph, it would sound exactly like the input, correct? If I do considerably fewer, it would sound... actually, probably like an MP3 or Ogg Vorbis file, considering.
Here's the interesting part: If I tuned the waveform generators in the same way you'd tune a pure synthesizer (i.e. no samples), i could spit out interesting synth effects... matching an instrument. Any instrument. I could have a guitar that plays square waves, saws, funky synth effects, etc. In theory anyway.
Comment