Greg Kellum |
|
|||||||
|
||||||||
07/25/07spectral modeling synthesisI've been working on a realtime spectral modeling synthesizer in CLAM using a database of recordings of a guitar being played with an ebow. Um... Basically, at the moment the synthesizer takes continuous control values for pitch and amplitude and uses these values to select which recording to read from. (The recordings were preanalyzed into sinusoidal and residual parts and saved as SDIF files.) It takes a frame of this file, adjusts its values to fit the pitch and amplitude of the control source, and resynthesizes it. Um... At the moment the synthesizer sounds awful, and it's taking too big a slice of the CPU usage. The big problem with the sound quality at the moment is that I'm not parsing the stream of control values to identify note changes. This has to be done, so that I know when to start reading from the attack stage of the SDIF file for the new note rather than from the sustain stage. And with the CPU usage, I ran the application in a profiler, and apparently, a significant amount of time is being spent by threads blocking and waiting for other threads. I might have to come up with a better way to load the SDIF data than my current one, because that's what I'm using the threads for... In any case I will upload an example sound file tomorrow as well as a clamnetwork file... |
||||||||
| |
||||||||