This is sort of a cross post from the device/module wishlist, but I just found out after a while of experimenting, that there is no way physmod is possible on Mod.
Just as a memory refresher, the Karplus-Strong string modeling method uses several delays in a feedback loop (represents the string), and sends it an impulse (pluck, etc.) to cause sound. The delay time controls how long the string is, and inturn controls pitch.
So this is basically what all the "plucked string" type physmod does. I decided to try to implement it using the mod delay module in ModIII and try to make me one.
Problems:
CW mod delay module has built in lowpass and so the signal altered during the delay. (thanx to j9k for informing me about this) For Karplus-Strong, you need delays that simply delay what you feed it, and throws it back 100% unaltered.
Delay time controls pitch, and theoretically, modulating the delay time of mod delay can control pitch. It works, to an extent, but there is no way to control pitch using the keyboard, as in, I can't convert MIDI note numbers to proper delay time format. Ideally, I would convert like this: notenumber->hertz->time it takes for 1 cycle in millisecs. In Mod, there are no objects that can do Note number->hertz conversion.
With the experiment I did, I got some sound... using a bunch of improper workarounds, (out went the concept of scientific accuracy) and ended up with a string that could be plucked by keystroke, pitch controled with a const val slider (range was only about 4 semitones). The plucked sound was okay, but the decay would morph into a sin wave at high pitches, and morph into a squarewave at low pitches. If anyone's interested, I'll post the patch.
Conclusion? The result I got sounds nothing like a plucked string. It's scientifically totally inaccurate, and the pitch can't be effectively controlled. BUT, the resulting sound is really strange and almost magical. I think I may even tweak it so that it's playable as an instrument of its own kind.
<font size=-1>[ This Message was edited by: kensuguro on 2004-04-29 09:23 ]</font>
karplus-strong physmod string model not possible on Mod
the modulation delay doesn't have a lowpass built in exactly. what it's doing is averaging between the samples which is what a lowpass filter does but differently.
a 200 sample delay has a modulation input of min to max which is a range of 4,294,967,296. if you divide the modulation range by how large the delay is you get 21,474,836. so every time your modulation signal hits a multiple of that number you will get exactly out what goes in. inbetween though it's crossfading between each sample of delay.
the feedback mdl also introduces one sample of delay(which i just found out recently myself). so you probably need two of them in your patch.
j9k
_________________
if you're not up to much you get .....crushed
<font size=-1>[ This Message was edited by: j9k on 2004-04-29 15:36 ]</font>
a 200 sample delay has a modulation input of min to max which is a range of 4,294,967,296. if you divide the modulation range by how large the delay is you get 21,474,836. so every time your modulation signal hits a multiple of that number you will get exactly out what goes in. inbetween though it's crossfading between each sample of delay.
the feedback mdl also introduces one sample of delay(which i just found out recently myself). so you probably need two of them in your patch.
j9k
_________________
if you're not up to much you get .....crushed
<font size=-1>[ This Message was edited by: j9k on 2004-04-29 15:36 ]</font>
A problem with working on such tight timings, using Xmod&Feedback or Flexor's Sample Delay, is also known as the phase issue. We have no control over which dsp the module is loaded on. Most of the time you load the patch, it will sit right on the same chip, but if you have bad luck it doesn't. This can make a couple samples difference in the flow, making a patch (and it's presets) somewhat unpredictable, especially if it's a larger circuit.
Hey j9k, smart Slew Rate Limiter idea of yours, it uses that sample delay feedback for interpolation
Nordmod patch uses sample delays for counters, to make sure events happen in the right sequence. An example is the arpeggiator patch, which uses fast logics to scan pressed keys.
Ken, fingers crossed we can play with DP one of these, that opens some more perspectives
Hey j9k, smart Slew Rate Limiter idea of yours, it uses that sample delay feedback for interpolation

Nordmod patch uses sample delays for counters, to make sure events happen in the right sequence. An example is the arpeggiator patch, which uses fast logics to scan pressed keys.
Ken, fingers crossed we can play with DP one of these, that opens some more perspectives
