Experimental Karplus-Strong plugin

Sunday 2006/11/19, 2253

Well, I've finally built a working GUI. Not all the controls do what they say yet - in particular the voice rendering code to handle velocity and key follow isn't really written yet. However, it's enough to get a few good sounds out of just now.

There are one or two oddities. Firstly there's a faint noisy buzz on notes which I can't track down. Possibly a small amount of state is being lost every time the plugin renders a frame, but I can't find where. The other thing is that at high levels of damping, the notes become distinctly flat - this is because of the phase delay through the lowpass filter. I'm not really sure how to cure this. Finally, because this is a very simple implementation, it creates a delay line a fix number of samples long. Sometimes this delay line isn't *quite* the right length for the required frequency, particularly with higher notes. This means that some notes sound a little sharp because they've been rounded up to the nearest integer period length.

You can pull the source from the Subversion repository at svn://www.nekosynth.co.uk/nekosynth/nekoplunk/tags/rel-0.0.2/ if you want to try it.

There are some demos here - nekoplunk harp, and nekoplunk clavinet.

Monday 2006/11/06, 2303

I put together a new GUI in Glade, which doesn't actually work at all - less than the previous version. You can find last night's at http://www.gjcp.net/svn/nekosynth/nekoplunk/tags/rel-0.0.1/ with the functionality as described below. Tomorrow I'll work on a modular OSC implementation that I can graft onto Glade GUIs using C.

The new GUI is in trunk. Please feel free to prod it, and tell me what you think. It will probably change.

Sunday 2006/11/05, 1224

The GUI code now sort of works. Only the first three sliders do anything. A new GUI will be written from scratch, but for now have a play and see how you get on.

You can use dssi_osc_update to read off the values of the OSC ports.

Saturday 2006/11/04, 2355

First off, I don't like the name. It might not be staying.

This is a hack on the nekostring plugin I'm developing. Rather rudely, it uses the same GUI which doesn't work.

To affect the sound, you'll need to prod the OSC ports directly, either with some suitable DSSI host or dssi_osc_send from the dssi distribution

The ports are as follows:

2. Noise colour

3. Noise duration

4. Smoothing

5. Attack time

6. Decay time

Noise colour applies a first-order lowpass filter to the exciter noise (0 being loads of smoothing, 1 being none). Noise duration sets how much of the delay line is filled with noise (0 being none, giving silence, 1 being the full length of the delay line). Finally, Smoothing sets how much the first-order filter in the feedback loop damps the vibration.

Please try this out and let me know how you get on. You can get it from Subversion at http://www.gjcp.net/svn/nekosynth/nekopluck