Brds/plucked behavior


#1

probably @johannes

The brds/plucked object sustains several notes (up to three at least), when the 'timbre' is great enough to get sustained sounds. So when you play a sequence, say, c-e-g, you actually hear a c major chord.

I would like to use it in a polyphonic sub-patch, but for that i need it to stop sounding old nodes when 'strike' is triggered again. Is there a way to change it so as to do that?


#2

put an enveloper/vca after it?

(id get guess is self resonating, perhaps some of the other parameters will help reduce it?)


#3

I think I found an answer myself. In case anyone has the same wish: I've added the extra line osc.set_parameters(... to the code*, which sets the 'timbre' to 0 when the key is released (and keeps 'color' the same).
You can, if desired, replace the value 0, possibly by an attribute and/or an inlet to allow for variable release.

osc.set_parameters(__USAT((inlet_timbre+param_timbre)>>12,15),__USAT((inlet_color+param_color)>>12,15));
osc.set_pitch((64<<7)+((param_pitch + inlet_pitch)>>14));
bool strike = 0;
if (inlet_strike && !pstrike){
	pstrike = 1;
	strike = 1;
} else if (!inlet_strike) {
	pstrike = 0;

osc.set_parameters(__USAT((0)>>12,15),__USAT((inlet_color+param_color)>>12,15));

}

    osc.Render(&outlet_wave[0],BUFSIZE,strike);

*to change the code of this object, you first have to copy it and the included file brds_digital.h from the factory directory to your own objects directory and refresh. Then load and change that copy.

ps @thetechnobear: I tried your solution, but the old note will sound again once the envelope is triggered the next time, since it's still resonating. Reducing 'timbre' overall helps, but then the note will decay quickly even while the key is pressed, which is not what i want. Thanks anyway!


#4

cool...
if your doing this, can you not just patch the same thing in ? (rather than change the code)
simply use a mux, controlled by your 'trigger' (or gate perhaps) that sets timbre on high, but resets to zero on low.

its interesting, Id be interested to know if the real braids module the same behaviour exists.
id would not have thought timbre is resets automatically after a strike, since it might not alway be desirable.

... this why perhaps its more applicable in the patch rather than the code, as perhaps for some other brds settings e.g different values of shape/colour/timbre - it might not be what you want.

anyway cool that you got it to work as you wanted, thats the main goal!


#5

Very true, didn't think of that.

The behavior is still not
perfect btw. so i, like you, suspect the original works differently in that regard. Generally speaking you would expect that a single oscillator stops producing the old note once a new one is triggered, right...?


#6

Not really, an oscillator constantly sounds
However, this is a bit different since it’s a pluck , so you strike it and it resonates , so to control decay I suspect you control the amount of resonating , which I’m assuming maps to timbre.
(Braids uses timbre and colour for different parameters for different ‘shapes’)

This is why I said I think what you want may differ depending on other settings


#7

I am aware that an oscillator constantly sounds. But it usually
sounds one note, doesn't it?


#8

Curious (and probably related): If I embed the 'plucked' oscillator in a polyphonic subpatch, every key hit will increase the CPU usage. Press e.g. the same key 20 times, and this patch with a MWE (3.1 KB) goes bye bye to 100% land.
I'd say there's something seriously wrong with that little osc...