Dear list,
This is most likely a stupid question. I purchased an Akai midi (usb) controller and started building a patch for it in Pd. I tried a simple delay controlled (length) by one of the knobs on the Akai, and I think I can hear the jumps between the different length values as I turn the knob.
The input from the controller is first normalized to the delay line max length, then passed to a [pack 0 20], then to a [line~], before affecting the delay length. I thought the line would smooth the control input, but apparently it's not. Are the 20 ms for the [line~] too short, or am I not doing it the proper way ? I actually don't know what happens to line~ when a new value is given to it before the 20 ms are over.
Thank you in advance.
Pierre.
On 02/22/2015 09:05 PM, Pierre Massat wrote:
The input from the controller is first normalized to the delay line max length, then passed to a [pack 0 20], then to a [line~], before affecting the delay length. I thought the line would smooth the control input, but apparently it's not. Are the 20 ms for the [line~] too short
yes most likely. 20ms is equivalent to 50Hz which is well notifiable (you are modulating your input signal with a 50Hz half-period)
as a rule of thumb, use something above 50ms (==20Hz which is basically inaudible), the higher the smoother (though obviously the higher you get, the longer it will take to reach the target; so having very long lengths might become inacceptable as well)
, or am I not doing it the proper way ? I actually don't know what happens to line~ when a new value is given to it before the 20 ms are over.
[line~] interpolates from the *current* value to the target value in x ms. the *current* value is the value it currently has. so if you start with [0, 1.5 3000(, and after 1 second send it a [0 100(, it will start the second ramp from 0.5 (because this is where the 1.5/3000 ramp was interrupted).
gfrdsa IOhannes
Thank you very much IOhannes.
Pierre.
2015-02-22 21:43 GMT+01:00 IOhannes m zmölnig zmoelnig@iem.at:
On 02/22/2015 09:05 PM, Pierre Massat wrote:
The input from the controller is first normalized to the delay line max length, then passed to a [pack 0 20], then to a [line~], before affecting the delay length. I thought the line would smooth the control input, but apparently it's not. Are the 20 ms for the [line~] too short
yes most likely. 20ms is equivalent to 50Hz which is well notifiable (you are modulating your input signal with a 50Hz half-period)
as a rule of thumb, use something above 50ms (==20Hz which is basically inaudible), the higher the smoother (though obviously the higher you get, the longer it will take to reach the target; so having very long lengths might become inacceptable as well)
, or am I not doing it the proper way ? I actually don't know what happens to line~
when
a new value is given to it before the 20 ms are over.
[line~] interpolates from the *current* value to the target value in x ms. the *current* value is the value it currently has. so if you start with [0, 1.5 3000(, and after 1 second send it a [0 100(, it will start the second ramp from 0.5 (because this is where the 1.5/3000 ramp was interrupted).
gfrdsa IOhannes
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list