That looks great! The Comb LPF combo should be pretty good for a resonant body. One thing you could try if you want to go for convolution is adding a small I/O module and pairing this with a Logidy EPSi. Wouldn’t be as compact obviously, but that thing sounds excellent and can store a ton of IR’s.

I posted a video over in the Synthesizing Control Schemes thread yesterday of using a rate-of-change patch to control the volume of an oscillator and it actually does work really well. Very natural sounding response once you get the timing of the ASR right, and it feels good too.

If we can get someone to put a module that does this together that would be so awsesome! It’s weird that there isn’t one out there already, given how long velocity sensors have been a staple of synthesizers, and you could do so much with it if it weren’t tied to a keybed. I’m going to experiment with the patch more this weekend and see what I can get by feeding different signals into the ROC sensor. I bet it would spit out some really funky stuff if you’re feeding it complex envelopes or slewed random.

4 Likes

thanks @smbols for mentioning the synthesizing control schemes thread, i did not see that.
really great example of the rate of change patch. i have to try that too!
@ParanormalPatroler braids already has a bowed string sound patch, right? is it any good sounding?

i wonder if something like this Spectral Interpolation Synthesis
https://www.cs.cmu.edu/~music/sis/index.html
is possible with a hardware wavetable module… i’m currently experimenting with a reaktor ensemble based on that synthesis technique, all you need is just thousands of single cycle waveforms :slight_smile:

RE: instrument body convolution, I did some searching and this little doohickey (meant for cab sim pedals) looks ripe for experimentation. Some gain staging is really all it needs!

I was pondering making the attempt but then I remembered my ER-301 has convolution :laughing:

3 Likes

I just realized an alternate route you could take with this. Instead of having the clock, trigger delay, s&h, derivator, comb filter, and LPF, you could just put your D0 in there. Since it’s got two channels you can just use one (along with a stack cable) as your shift register and the other as the delay in your body sim, with 6 hp to spare for your LPF and anything else that might be useful.

1 Like

I ended up filling a 6u 84hp case based around this idea. I kept the d0 in the other physical modeling case and used the 1022 on this. Haven’t tried the Comb yet but I’m sure it will be nice as well. As you’d expect the Serge Resonant EQ makes all the difference in the world as a violin body. I did not research the properties, I went by ear.

A few points worth mentioning :

  1. The Ladik Min/Max doesn’t work for this patch. The fact that it has a controllable midpoint ruins it. I used the Doepfer a172 instead.
  2. Using negative feedback for hollow sound brought more realism to the body patch.
  3. A slew limiter is necessary on the RoC output. That or I didn’t balance it right in the first place.
  4. Get a Ladik Derivator. Honestly. Being able tk distinguish between upwards and downwards bow movement is crucial! (see next point)
  5. Utilize FM input on your oscillator for realism. I plugged a mix of the Derivator’s upward gate (through an attenuverter) and the RoC output (through another attenuverter) and into the FM input on Braids. This gave me two important aspects on the patch: a slight vibrato in the initial bow movement and the amazing ability to jump intervals when bowing upwards! Very easy bariolage sound and changing the attenuverter changes the interval. Try it!
  6. I plugged the attenuverted pitch control to the RoC’s clock rate. It did make a difference weirdly enough. I assume different pitches shouldn’t have the same level of bow pressure.

@kilchhofer braids doesn’t sound good but I haven’t explored it as much yet. I have two in this case so I’ll try some combos and let you know. It does cut a lot of corners and adding a body filter makes a huge difference. I didn’t reach your violin realism (re: the example with the IR) and I’m curious what your patch was soundwise. Right now I’m inclined to say that 50% of instrument sound realism is patch playability

@smbols Do you use the RoC on your VCA or is your levels a separate parameter? I plugged the Derivator’s movement gate out to an AD and then to the VCA but I got an annoying click on the attack. Haven’t been able to solve this but I do like the idea of only getting a sound when bowing. I didn’t like the RoC on its own, too jumpy. I’m considering a slew limiter that only slews the upward movement. Where do you utilise the RoC output?

In case you wanna know here is the current case. I had the ingredients laying around so why not?

PS: based on this thread I sometimes think we should have a yearly Modular Physical Modeling conference! :blush:

5 Likes

Also, an HPF is a first derivative, right? I assume it could be used as a RoC…? No? I need to test this.

sounds very interesting, i want to hear some examples with that case!

bowed string sounds are imo the hardest sounds to mimic accurately, or even to get a decent result that doesn’t sound “cheap”. i guess it’s because the bow itself does so much fine distortions and this results in so many overtones and “noise” like artefacts… in real physical modelling the modelling of the bow and bow movement is probably almost as important as the string and body…

and the string example with the violin ir was just a raw piston honda mkII wave, which is gritty and wobbly which helped quite a bit.

1 Like

@kilchhofer So just a raw wave? Damn, that IR makes a huge difference then. But your playing also does make it sound good. What would you use for the bow modeling?

You are right, I should’ve recorded the patch, but the house situation is really bad right now and I couldn’t. I’m fairly sure I will be able to improve on the patch with the extensions I made. I’m hoping the points above are still useful regardless.

some slight filtering after the oscillator, pressure opens the filter. i don’t think it’s a good example for this, i didn’t try to model a string, i just wanted to try the c0 as body filter.
i don’t know how to model the bow, when i look at serenade, an amazing ensemble which models violins and violas then it’s clear that sensitivity of bow movement has a big effect on sound, so this RoC patch definitely comes in handy. faster movement and more pressure increases volume, brightness but also noise and friction which then results in these scratching sounds and lots of inharmonic overtones. i guess these “artefacts” then all go through the modelled string. so far i haven’t found a way to mimic a bowed string in modular, that’s why i think an oscillator is still the best option. a delay line alone is not enough, it works for karplus strong but that’s just not really good sounding for soft attack sounds.

1 Like

Yes, I’m using the ROC to open a low pass gate. It could be different because I’m using the D0 rather than a shift register, so the voltage is rising and falling as smoothly as I’m twisting the knob on Frames.

And I actually found the same thing as you with the derivator used to change intervals! I’m using the Rise output of my Sin Phi Miasma, and I sent it to a quantizer tuned to send out root note and 5th, so that on upbows and downbows mimic alternating between strings.

Recorded this bit yesterday of some violin and cello sounds using the technique. I had a bit too much resonance on 3 Sisters so it rings out a bit unnaturally at times, but I’m really happy with how close I’m getting, especially with the cello sounds in the later half. Controlling the pitch by just sweeping the fine tune knob on a Dixie, which is syncing and FMing my Lifeforms Oscillator which is the one you’re actually hearing.

4 Likes

that’s really cool!! do you have a filter after the osc for normal filtering job or just the 3sisters for the body? i wonder if you could add a filter inbetween where you control the cutoff amount with the roc and the signal being the output of the filter itself, so slight self fm for brightness. at least that’s what i would do when listening to the recording. anyway, cool thread as always, great experiments and knowledge here!

It’s filtered by the 6db channel of an LxD, so it gets brighter as it gets louder. One thing I need to find a fix for is that it gets too bright at maximum velocity and sounds unnatural, so I need some way to clamp the voltage from going beyond a certain point.

I’ll have to try out the self-fm at higher speeds. But what I’m planning on doing is getting a Soundmachines Lightplane for this.

Using the Y axis to open my LPG.

Using the pressure output to distort the waveform in some way (maybe self FM) that mimics pressing harder on a real string, slightly change the pitch to mimic the effect on tension, and shorten the delay time on the D0 so it responds to movements quicker, since faster bowing often means higher pressure.

Then sending the X axis output to alter the body filter, and try to get it to behave like bowing different parts of the string, how you get more hollow tones towards the top and brighter, thinner tones towards the bridge.

1 Like

I would assume that higher bowing speed meant less pressure. Lower speed on the bow would cause more friction, no? Maybe not in terms of physics but more in terms of phrasing. I set the inversion of RoC on pressure.

@smbols Try a HPF as RoC if you can.

That might be the case–I don’t play any bowed instruments so I don’t actually know. I was thinking that the faster you move your arm, the more you would be pressing on the strings simply due to higher exertion.

So you mean just plug a signal into the HPF and the output should be RoC dependent? Or do I need to do more than that?

EDIT: Okay this is pretty cool!

I can’t comment specifically to high pass filters yet since I did this with a Steiner-Parker filter with separate inputs for each band, so I can’t tell exactly what’s going on here, but… I got some RoC dependent movement from sending my Frames output into the HPF of the Steiner-Parker. Descending voltages produce a negative signal, and ascending voltages produce a positive signal, so you have to send it through a rectifier (or use a ring-mod as your VCA).

But then I noticed the strongest voltages were produced while I was moving the cutoff knob. So I tried just sending the Frames output to the V/8 input with nothing patched into the actual filter bands, and that’s giving me a very strong RoC response. And now I have Frames’ output multed to both the V/8 input and the attenuated CV input which seems the best so far. Worth pointing out that I’m using all 4 channels of Frames, so I’m sending the filter 0 - 20V, multiplied to both inputs, so it takes quite a bit of voltage input to get this working. The frequency knob acts as a sort of output attenuator, letting the highest voltages out when pushed to max.

The downside is that I can’t find a way to influence the response and it has quite a long release (up to a full second) once movement stops. So it’s definitely working, but not quite as responsive and expressive as the ASR/min-max patch. I’ll try some stuff out, maybe sending the filter output into a function generator and see if that gives me any better behavior.

2ND EDIT:

Tried 3 Sisters and didn’t get anything RoC based from it.

Sending a signal to the HPF input and monitoring the HPF out just slightly attenuated the incoming signal, and I’m not getting any response from modulating its CV inputs. Not sure what to make of it.

1 Like

man, i have no clue why this actually works with a HPF. in fact i struggle to understand the RoC patch with min/max but i just tried it with a rs vcfq and it definitely works, the signal is weak however and the response is crazy exponential, with slow to medium fast knob movements i get almost no signal, with as-fast-as-you-can-wiggle movement the signal gets stronger and stronger. the strongest signals i get when unplugging the cable haha. anyway, rs vcfq has a low frequency mode and with that HPF mode it works even better, the cutoff has to be adjusted so that the lag isn’t too much, and when you introduce some resonance the signal becomes a bouncing ball type signal, very cool to get this physical behaviour: here’s me turning triatt into vcfq into pitch of sampler:

2 Likes

this didn’t work with the vcfq. it seems that it’s highly filter dependent, i tried it with a digital filter inside the er-301 and there was no RoC signal at all.

@kilchhofer HPF is derivation whereas LPF is integration. So HPF should give you dx/dy (if it’s a control voltage that would be ROC), similarly LPF would give you slew limiting. I’m unsure whether DC coupling is what makes it work on some filters and not on others - I just assumed it work this way.

What is it that you don’t get of the ASR Min/Max patch? It’s calculating the difference in values of your control voltage (@smbols’s Frames or my slider) at a rate T set by the clock on your ASR (I’m using a dual S&H and a gate delay to create a time difference between when they are clocked). The ASR allows you to grab two different instances of your voltage, the Min/Max allows you to get the highest value and the lowest value. You then subtract the lowest from the highest and get the difference between the two. If the difference is 0 then you haven’t changed the voltage during T. If it’s a small value then you’re changing the voltage at a rate slower than T, or if it’s a high value you’re making voltage jumps faster than T.

If your T is super fast you get higher fidelity but the calculation happens faster than you can make large voltage jumps, so you won’t get a super high ROC. If the T is low, you should be able to get higher ROC values but they won’t have be fast enough to grab small yet fast moves of voltage. I patched the pitch to change my clock speed as I wanted higher notes with faster bow movement and lower notes with slower.

Does any of this help?

The patch is not exactly ROC if you think about it, but and indication of it I guess. :thinking: I found that it needed a slew because of its jumpy nature. So much to explore! That bouncing might be able to produce bow bouncing on the string! (ha, I wish!)

1 Like

Useful threads https://www.muffwiggler.com/forum/viewtopic.php?t=148244&start=0&postdays=&postorder=&highlight= and https://www.muffwiggler.com/forum/viewtopic.php?t=212751&highlight=

Another version is to slew your CV and subtract that from the original CV. Some interesting aspects from these two threads for our discussion. Check 'em out when you can.

I really liked the idea of using a T&H instead of S&H for the RoC patch. Instead of using a clock delay you’d be using a Flip/Flop or a Switch to fire alternate clocks between the two T&H’s. I wonder if an inversion of the clock would suffice - that’s what was suggested but it seems wrong. Anyway, while one T&H tracks your incoming signal the other is Holding the previous value. Pass them through Max/Min as before etc. Might be better than S&H w/ delay. I’ll try it.

3 Likes

Just tried the T&H and S&H methods. My case is not ideal for them since I have to use my Disting as the second S&H, and so I have to use my Miasma as the Min Max and it seems less accurate. They work but they aren’t nearly as responsive as the D0. And I have to adjust both slews quite a bit in order to play at different speeds. @ParanormalPatroler have you had much more luck with them?

@kilchhofer yes it’s odd how different filters are doing completely different things. mbartkow on one of the MW threads that ParanormalPatroler linked said specifically that a first-order high pass filter (1 pole) acts as derivation. My Steiner-Parker filter is 2nd order, and Sisters is 3rd order, so perhaps that’s why I’m different results.

I’ve found though that sending a gate signal to the Steiner-Parker patch results in a vactrol-like envelope output with a pretty long decay. Sounds quite nice, actually!

I’ve only tried the S&H, I haven’t tried T&H or d0 yet! What do you mean by “both slews”? I only use one slew limiter, at the output of the mixer. Where do you use yours?