I have looked quickly into algorithmic instruments for generating tunes and such. Does anyone know of a good place to start looking for different algorithms to generate different sounding instruments? I am not looking at using any software, I am looking to generate the waveform in Java manually. I currently have a pluck guitar instrument and was looking for others...

It'll require experimentation or data. Different sound from different instruments comes purely from the harmonics you get from it. Thus you either need to examine an empirically obtained signal (recording) in the frequency domain and analyze the harmonics, or guess until you get something that sounds right.

Composing the output signal is basically just a question of adding sinusoids at the necessary harmonic frequencies with appropriate amplitude in the time domain. Just sample-wise addition, really, then normalize the amplitude after performing the addition.
I've had an idea similar to this for a while, but have been too lazy to implement it...

If you just run a Fast Fourier Transform operation on an instrument sample, you can just take the five or six largest bins and use that data to approximate the signal. Then, run a quadratic or cubic regression on the amplitude peaks to get a function of the volume over time. If the function of the volume is extremely complex, then carry out the regression to as many terms as you need.
From this data, just multiply the values of the sinusoids with the relevant frequencies together and then multiply it with the volume function. This will generate an artificial sounding but recognizable replication of the input signal.

Alternatively, you can fire up a synthesizer that has fine grain control over the manipulation of oscillators. Figure out settings that sound pleasing and try to replicate them.

Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

»
» All times are UTC - 5 Hours

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum