To recall: .uhm files contain scripts which create and manipulate wavetables. To my best knowledge, these are the most powerful tool to synthesize wavetables from scratch. The possibilities exceed anything one could do inside a visual editor, and it does not rely on tedious workarounds to turn samples into wavetables. It's very powerful.
I want to encourage people to try things out. It's not overly difficult to start tweaking away. As someone recently said: Just do it!
Note that I deliberately do not post downloadable files. Please don't post any either. Let's keep hacking away rather than just consuming.
#----------------------------------------------------------------------
The basic principle of Karplus-Strong Synthesis is, there's a delay which is filled with noise. A lowpass filter in the feedback thins out the spectrum until only the fundamental (or just silence) remains after a while. The result sounds somewhere between cembalo, guitar and all sorts of plucks. The method has been altered and refined over the years to create bowed string sounds, mallets, tubes, woodwinds and abstract disharmonic tones. While naturally, wavetable synthesis can only reproduce a harmonic spectrum, many of the effects of KS and ist successors can be mimicked, and maybe even improved upon.
In the beginning of this thread I would like to start with a very basic concept and maybe we can move over to more complex tones later on.
So let's get started!
Chapter 1: Simple KS
Copy following lines in a text file which you save as "Simple KS.uhm" somewhere in your Hive Wavetables directory:
Code: Select all
Info "Simple Karplus-Strong-like wavetable. Use Auto and adjust to taste."
NumFrames = 101
Seed = 1346
Wave end=0 "rand * 2 - 1"
Wave start=1 end=100 "y + 0.15 * ( main_fi(frame-1, index) - y)"
Normalize base=allCode: Select all
Info "Simple Karplus-Strong-like wavetable. Use Auto and adjust to taste."Code: Select all
NumFrames = 101Code: Select all
Seed = 1346Code: Select all
Wave end=0 "rand * 2 - 1"Code: Select all
Wave start=1 end=100 "y + 0.15 * ( main_fi(frame-1, index) - y)"y = y + 0.15 * ( x - y )
And for each frame, the x in it always points to the same sample in the previous frame:
main_fi(frame-1, index)
If you're scratching your head right now, it really is utterly simple. Experiment with the 0.15 to see how it changes the spectral damping of the wavetable. Stay between 0.01 and 0.99.
Code: Select all
Normalize base=all
