Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project!

Re: [LMMS-devel] Composing Harmonics

 Re: [LMMS-devel] Composing Harmonics From: - 2007-10-24 10:11:51 ```> Hi! I'm new to pretty much everything but I have an idea for a new way > to create sound. > Well actually it's not a new idea. It has been around for quite some > time but I haven't seen it in any music or audio software yet. > > It goes like this: Instead of modifying the waveform of the sound one > would modify it's spectrum ie. harmonics. > > As some of you may remember from the math lessons any periodic > function can be represented as sum of Sines and Cosines resulting in > the Fourrier series for that function. This series tells the frequency > composition of that function. > Sounds or waveforms can in turn be represented as a spectrogram that > tells how the frequencies change over time. > I have so far only found software that turns a waveform in to it's > spectrogram but none that do the opposite. And that's what I'd like to > be able to do; to draw and paint harmonics to produce sound. It would > offer a great deal of control over how the wave sounds like than > plotting the waveform directly. > > Expressing the idea in a mathematical form: > > wave = Sum( Sin(2*pi*base_frequency*time*n)*frequency_weight[n](time) > ) > where n runs from 1 to n_max so that it stays within the limits of the > sample rate and frequency_weight[i](t) is a time dependent function > that tells how much of the frequency i is added to the final output. > These weights are what I'd like to able to control somehow, maybe by > plotting with the mouse. > > This approach produces very clean sounding results. For a more noisy > and interesting sounds one would need to modify all the frequencies. > Not just some base frequency and it's integer multiples. Well actually > one could set the base frequency so low that the ear can't tell the > difference. I understand that this kind of spectrogram painting could > utilize the Fast Fourrier Transform (FFT), or in this case Inverse FFT. > > If something like this is implemented I hope it doesn't become too CPU > hungry... Adding a ton of Sines or Cosines together can take some > processing power. It should be optimizable... and FFT is fast right? > > I'm still learning programming so it will take some time before I can > for example write a plugin that does this. But I wanted to throw the > idea out there meanwhile. > What you describe is additive synthesis. http://en.wikipedia.org/wiki/Additive_synthesis There have been some interesting additive synthesis instruments created. But the problem is that it's damn hard to design sounds by additive synthesis. Wendy Carlos is one of the few people who has done a lot of additive synthesis and made real music with it. But even she admits that she "cheats" and uses triangle waves for high harmonics to fill in the audio spectrum all in one go. Cheers, Ross ```

 Re: [LMMS-devel] Composing Harmonics From: - 2007-10-24 10:11:51 ```> Hi! I'm new to pretty much everything but I have an idea for a new way > to create sound. > Well actually it's not a new idea. It has been around for quite some > time but I haven't seen it in any music or audio software yet. > > It goes like this: Instead of modifying the waveform of the sound one > would modify it's spectrum ie. harmonics. > > As some of you may remember from the math lessons any periodic > function can be represented as sum of Sines and Cosines resulting in > the Fourrier series for that function. This series tells the frequency > composition of that function. > Sounds or waveforms can in turn be represented as a spectrogram that > tells how the frequencies change over time. > I have so far only found software that turns a waveform in to it's > spectrogram but none that do the opposite. And that's what I'd like to > be able to do; to draw and paint harmonics to produce sound. It would > offer a great deal of control over how the wave sounds like than > plotting the waveform directly. > > Expressing the idea in a mathematical form: > > wave = Sum( Sin(2*pi*base_frequency*time*n)*frequency_weight[n](time) > ) > where n runs from 1 to n_max so that it stays within the limits of the > sample rate and frequency_weight[i](t) is a time dependent function > that tells how much of the frequency i is added to the final output. > These weights are what I'd like to able to control somehow, maybe by > plotting with the mouse. > > This approach produces very clean sounding results. For a more noisy > and interesting sounds one would need to modify all the frequencies. > Not just some base frequency and it's integer multiples. Well actually > one could set the base frequency so low that the ear can't tell the > difference. I understand that this kind of spectrogram painting could > utilize the Fast Fourrier Transform (FFT), or in this case Inverse FFT. > > If something like this is implemented I hope it doesn't become too CPU > hungry... Adding a ton of Sines or Cosines together can take some > processing power. It should be optimizable... and FFT is fast right? > > I'm still learning programming so it will take some time before I can > for example write a plugin that does this. But I wanted to throw the > idea out there meanwhile. > What you describe is additive synthesis. http://en.wikipedia.org/wiki/Additive_synthesis There have been some interesting additive synthesis instruments created. But the problem is that it's damn hard to design sounds by additive synthesis. Wendy Carlos is one of the few people who has done a lot of additive synthesis and made real music with it. But even she admits that she "cheats" and uses triangle waves for high harmonics to fill in the audio spectrum all in one go. Cheers, Ross ```