If you have a problem or need to report a bug please email : support@dsprobotics.com
There are 3 sections to this support area:
DOWNLOADS: access to product manuals, support files and drivers
HELP & INFORMATION: tutorials and example files for learning or finding pre-made modules for your projects
USER FORUMS: meet with other users and exchange ideas, you can also get help and assistance here
NEW REGISTRATIONS - please contact us if you wish to register on the forum
Users are reminded of the forum rules they sign up to which prohibits any activity that violates any laws including posting material covered by copyright
Karplus Strong Synthesis
13 posts
• Page 1 of 2 • 1, 2
Karplus Strong Synthesis
In 1983, two computer science students Kevin Karplus and Alex Strong pblished their algorithm for string sound synthesis. It may be viewed as a physical model, with a fractional delay line in a feedback loop representing the string. A moderate lowpass in the loop quickly filters out the high frequencies of the excitation usually formed by a burst of white noise.
Owing to the dispersion of the fractional delay, the waveform changes at each cycle, resulting in a vivid, natural sound, as opposed to the static, strictly periodic oscillations from a wavetable. The excitation envelope may be shaped to generate a wide range of sound characteristics.
Inverting the phase in the feedback loop yields a tone with only odd harmonics, opening many possibilities like pan flute, marimba, glass bottle etc.
I have included a demonstration below, which is actually the best synth I have created so far. There are ten presets to showcase its potential. What I find so fascinating is the rather low number of components and CPU hit.
Anyway, check it out for yourself an please give me feedback.
I am planning to release this as a VST. Any GUI artist out there willing to help?
Owing to the dispersion of the fractional delay, the waveform changes at each cycle, resulting in a vivid, natural sound, as opposed to the static, strictly periodic oscillations from a wavetable. The excitation envelope may be shaped to generate a wide range of sound characteristics.
Inverting the phase in the feedback loop yields a tone with only odd harmonics, opening many possibilities like pan flute, marimba, glass bottle etc.
I have included a demonstration below, which is actually the best synth I have created so far. There are ten presets to showcase its potential. What I find so fascinating is the rather low number of components and CPU hit.
Anyway, check it out for yourself an please give me feedback.
I am planning to release this as a VST. Any GUI artist out there willing to help?
- Attachments
-
- KarplusStrong4.fsm
- contains some fixes
- (76.66 KiB) Downloaded 1222 times
Last edited by martinvicanek on Sun Jun 12, 2016 6:50 pm, edited 1 time in total.
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: Karplus Strong Synthesis
Wow! very interesting method of synthesis, I need to learn from you!...
The sound of some presets I similar to the famous synth from AAS,
May I, with your permission, take your resonator to use in your project???
The sound of some presets I similar to the famous synth from AAS,
May I, with your permission, take your resonator to use in your project???
Creative Technology for Bold Player's!
-
DigiTonix - Posts: 136
- Joined: Sat May 07, 2016 11:28 am
Re: Karplus Strong Synthesis
Wow Martin!
What a delightful thing to find on a Saturday morning!
Initially I struggled with the two sets of attack/decay settings since I was thinking in conventional terms. I even made a version which wired a conventional ADSR to control the noise level but it was dreadful. Puzzled by this, I read up on the principle which is completely new to me. Once I understood broadly what the method was I was able to grasp programming it. I made preset 11 just to experiment.
Although the technique seems to have a more narrow application than typical synthesis, the range of results attainable makes it well worth having. Your range of presets demonstrated this admirably. They are all really nice too!
People really do need to listen to this thing! One thing that really appealed to me was the round-robin effect presumably created by the random element in the excitation noise. No two notes sound exactly the same and this could be very useful for multi-layering to get a rich ensemble result and also to emulate real-world playing of guitars for example. Normally a multi-sample arrangement would be needed for round-robin but this does it purely in synthesis, so I’m well impressed.
I also like the effects that you provided and I’ve “borrowed” the 3-stage LED which I thought was a great idea.
So, of course, I just had to interfere and I Spogged it a bit (file attached). I’ve made it so all the preset parameter names are unique which I had to do to load up one of your presets to play with it (I set the preset manager to lock too, so I could preserve your presets).
The other thing was the sustain pedal was turning on the LFO for the Modwheel so I replaced your Modwheel module with the one I always use. Maybe you intended this but I personally like to have Modwheel and sustain separate.
This is a really nice synth and the only thing that I think needs to be added is a tuner to set the octave, note and fine tune. I do hope someone can make a nice front panel for it at some point. Me, I can do orange…
Thanks for sharing this.
Cheers
Spogg
What a delightful thing to find on a Saturday morning!
Initially I struggled with the two sets of attack/decay settings since I was thinking in conventional terms. I even made a version which wired a conventional ADSR to control the noise level but it was dreadful. Puzzled by this, I read up on the principle which is completely new to me. Once I understood broadly what the method was I was able to grasp programming it. I made preset 11 just to experiment.
Although the technique seems to have a more narrow application than typical synthesis, the range of results attainable makes it well worth having. Your range of presets demonstrated this admirably. They are all really nice too!
People really do need to listen to this thing! One thing that really appealed to me was the round-robin effect presumably created by the random element in the excitation noise. No two notes sound exactly the same and this could be very useful for multi-layering to get a rich ensemble result and also to emulate real-world playing of guitars for example. Normally a multi-sample arrangement would be needed for round-robin but this does it purely in synthesis, so I’m well impressed.
I also like the effects that you provided and I’ve “borrowed” the 3-stage LED which I thought was a great idea.
So, of course, I just had to interfere and I Spogged it a bit (file attached). I’ve made it so all the preset parameter names are unique which I had to do to load up one of your presets to play with it (I set the preset manager to lock too, so I could preserve your presets).
The other thing was the sustain pedal was turning on the LFO for the Modwheel so I replaced your Modwheel module with the one I always use. Maybe you intended this but I personally like to have Modwheel and sustain separate.
This is a really nice synth and the only thing that I think needs to be added is a tuner to set the octave, note and fine tune. I do hope someone can make a nice front panel for it at some point. Me, I can do orange…
Thanks for sharing this.
Cheers
Spogg
- Attachments
-
- KarplusStrong4 -spogged preset parameters and modwheel.fsm
- (436.1 KiB) Downloaded 1273 times
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Karplus Strong Synthesis
Hi martin. Very interesting project. I also experimented with string synthesis myself for a long time. What I tried to do is to resynthesize real guitar sounds from this. When you have a recording of real guitar string, you can extract the characteristics of the dampening filter, for example using this (EQ match), simply by driving normal signal as the dry and one-period-delayed signal as wet.
Real strings actually vibrate in 2 dimensions (horizontally and vertically). The vertical vibrations have higher dampening (because they transfer more energy to the bridge) and decay faster. Horizontal vibrations decay slower and thus are more prominent after the attack phase. You can see this in this image. Up to 1.5 mark the decay is quite fast and after that is gets slower.
The two vibration modes bleed into each other.
Another approach is to change the characteristics of the filter over time (for example, estimate response near the start, in the threshold (where fast dacay turns into slow) and near the end and then interpolate between them).
You can also extract the excitator (the pluck) by inverting the resonator (just switch it form feedback to feedforward delay).
I have some schematics where I experiment with this, yielding interesting results. unfortunately they are very old, buggy and hard to navigate (this was before memin was introduced to code, so you can imagine the hell of transferring coefficients to the filters). If you are interested I can clean them up a little and update them...
Real strings actually vibrate in 2 dimensions (horizontally and vertically). The vertical vibrations have higher dampening (because they transfer more energy to the bridge) and decay faster. Horizontal vibrations decay slower and thus are more prominent after the attack phase. You can see this in this image. Up to 1.5 mark the decay is quite fast and after that is gets slower.
The two vibration modes bleed into each other.
Another approach is to change the characteristics of the filter over time (for example, estimate response near the start, in the threshold (where fast dacay turns into slow) and near the end and then interpolate between them).
You can also extract the excitator (the pluck) by inverting the resonator (just switch it form feedback to feedforward delay).
I have some schematics where I experiment with this, yielding interesting results. unfortunately they are very old, buggy and hard to navigate (this was before memin was introduced to code, so you can imagine the hell of transferring coefficients to the filters). If you are interested I can clean them up a little and update them...
- KG_is_back
- Posts: 1196
- Joined: Tue Oct 22, 2013 5:43 pm
- Location: Slovakia
Re: Karplus Strong Synthesis
As usual very cool and perfectly coded stuff!
Thanks for sharing your work!
Thanks for sharing your work!
- stw
- Posts: 111
- Joined: Tue Jul 13, 2010 11:09 am
Re: Karplus Strong Synthesis
Thanks for the helpful feedback, guys.
@DigiTronix: yes, you may use all my stuff but please acknowledge me appropriately. Oh, and if you make millions with it I accept PayPal donations.
@Spogg, thanks a bunch for your detailed account! Some sharp obervations there as usual. It had not occurred to me that preset names should be unique even across VSTs, so I updated my first post accordingly. And you were spot on with the mod wheel. I don't use a sustain pedal (you can tell i am not a keyboard player), so I overlooked that issue. It is fixed in the update, with sustain pedal support added.
Yes, no two notes sound equal because of the random excitation draws a new seed for each new note. That must be the reason why I don't get tired of a patch even after extensive jamming.
I thought a detuner would only make sense with a second oscillator. Most MIDI keyboards can transpose per se, or am I wrong?
Oh, thanks for preset #11. Although I would have added some dynamics to make it "bite" when you hit harder (my other presets do that, and I find that an important ingredient for expression.)
@KG_is_back: Yeah I remember your post that you are referring to. I think if you are after faithful emulation of a particular instrument, a sampler is the best approach. My ambition here is more modest, I just wanted to create something that sounds "interesting".
Thanks again, everybody. And please, hear my call for help with the GUI. Or do you really not care if this thing ends up orange?
@DigiTronix: yes, you may use all my stuff but please acknowledge me appropriately. Oh, and if you make millions with it I accept PayPal donations.
@Spogg, thanks a bunch for your detailed account! Some sharp obervations there as usual. It had not occurred to me that preset names should be unique even across VSTs, so I updated my first post accordingly. And you were spot on with the mod wheel. I don't use a sustain pedal (you can tell i am not a keyboard player), so I overlooked that issue. It is fixed in the update, with sustain pedal support added.
Yes, no two notes sound equal because of the random excitation draws a new seed for each new note. That must be the reason why I don't get tired of a patch even after extensive jamming.
I thought a detuner would only make sense with a second oscillator. Most MIDI keyboards can transpose per se, or am I wrong?
Oh, thanks for preset #11. Although I would have added some dynamics to make it "bite" when you hit harder (my other presets do that, and I find that an important ingredient for expression.)
@KG_is_back: Yeah I remember your post that you are referring to. I think if you are after faithful emulation of a particular instrument, a sampler is the best approach. My ambition here is more modest, I just wanted to create something that sounds "interesting".
Thanks again, everybody. And please, hear my call for help with the GUI. Or do you really not care if this thing ends up orange?
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
Re: Karplus Strong Synthesis
martinvicanek wrote:...I thought a detuner would only make sense with a second oscillator. Most MIDI keyboards can transpose per se, or am I wrong?
I was thinking about multiple instances on the same or different tracks for detuning or fifths or octaves etc. The DAW can usually do this (but not if all on the same track) so it's not an important point, I just thought it might help in practice.
I forgot to mention what impressed me the most; using girls names for the presets. What a totally brilliant idea
This is a great synth Martin!
Cheers
Spogg
-
Spogg - Posts: 3358
- Joined: Thu Nov 20, 2014 4:24 pm
- Location: Birmingham, England
Re: Karplus Strong Synthesis
I forgot to mention what impressed me the most; using girls names for the presets. What a totally brilliant idea
Kar + Strong
hmmm ... Strong Woman with a Car ... ok
- RJHollins
- Posts: 1571
- Joined: Thu Mar 08, 2012 7:58 pm
Re: Karplus Strong Synthesis
Spogg wrote: [...] using girls names for the presets. What a totally brilliant idea
Yes, brilliant indeed, but not mine. I stole it from a creative fella here on the forum.
-
martinvicanek - Posts: 1328
- Joined: Sat Jun 22, 2013 8:28 pm
13 posts
• Page 1 of 2 • 1, 2
Who is online
Users browsing this forum: No registered users and 22 guests