Re: [PD] round off the corners of a [line] movement?

2023-09-27 Thread cyrille henry

...and I forget the iir object (vanilla abstraction) in the pure_mapping lib...

cheers


Le 27/09/2023 à 16:18, cyrille henry a écrit :

ho,
and you can cascade 2 line, in order to smooth the 1st one, just like this 
example.

But the best is probably to use line~ with lop~ and control the glissandi in 
audio...

cheers


Le 26/09/2023 à 20:06, Peter P. a écrit :

Hi list,

often when I use [line¨] to make frequency glissandi, the point when the
ramp starts, and the point where it ends, appear as very sudden events
to my ears. I am wondering if there is an easy way to gradually speed up
the ramp when it starts, and slow it down before it reaches its target
value?
The only way I can think of so far is to model such a behavior with two
masses connected by an elastic link using the pmpd library. But a
vanilla way would be very interesting too!

Thanks in advance for all ideas and pointers!
cheersz, Peter



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list




___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] round off the corners of a [line] movement?

2023-09-27 Thread cyrille henry



Le 27/09/2023 à 17:58, Antoine Rousseau a écrit :

I've always loved [line3] :-)

thanks!


[line3~] would be cool too, by the way.

you can use a more efficient hack :

[line3]
 |
[$1 20<
 |
[line~]



but lop~ is also working nicely for very low frequency.
see attachment

cheers






Antoine

Le mer. 27 sept. 2023 à 16:12, cyrille henry mailto:c...@chnry.net>> a écrit :

hello,

it's not vanilla, but line3 is using a 3rd degree polynomial to allow 
continuity of the tangents. It is also working if you trigger a new line before 
the end of the current.
equation is not very complex and can be ported to vanilla, but I was lazy...
You can find it in nusmuk_somthing in deken

cheers
c



Le 26/09/2023 à 20:06, Peter P. a écrit :
 > Hi list,
 >
 > often when I use [line¨] to make frequency glissandi, the point when the
 > ramp starts, and the point where it ends, appear as very sudden events
 > to my ears. I am wondering if there is an easy way to gradually speed up
 > the ramp when it starts, and slow it down before it reaches its target
 > value?
 > The only way I can think of so far is to model such a behavior with two
 > masses connected by an elastic link using the pmpd library. But a
 > vanilla way would be very interesting too!
 >
 > Thanks in advance for all ideas and pointers!
 > cheersz, Peter
 >
 >
 >
 > ___
 > Pd-list@lists.iem.at  mailing list
 > UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list 




___
Pd-list@lists.iem.at  mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list 

#N canvas 195 365 475 450 12;
#X obj 145 162 snapshot~;
#X obj 257 102 metro 20;
#X obj 259 73 loadbang;
#X obj 143 198 vsl 20 170 0 1 0 0 empty empty empty 0 -9 0 12 #fcfcfc #00 #00 0 1;
#X obj 141 59 tgl 20 0 empty empty empty 0 -10 0 12 #fcfcfc #00 #00 0 1;
#X obj 140 95 lop~ 0.1;
#X obj 143 123 lop~ 0.1;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] round off the corners of a [line] movement?

2023-09-27 Thread Antoine Rousseau
I've always loved [line3] :-)
[line3~] would be cool too, by the way.

Antoine

Le mer. 27 sept. 2023 à 16:12, cyrille henry  a écrit :

> hello,
>
> it's not vanilla, but line3 is using a 3rd degree polynomial to allow
> continuity of the tangents. It is also working if you trigger a new line
> before the end of the current.
> equation is not very complex and can be ported to vanilla, but I was
> lazy...
> You can find it in nusmuk_somthing in deken
>
> cheers
> c
>
>
>
> Le 26/09/2023 à 20:06, Peter P. a écrit :
> > Hi list,
> >
> > often when I use [line¨] to make frequency glissandi, the point when the
> > ramp starts, and the point where it ends, appear as very sudden events
> > to my ears. I am wondering if there is an easy way to gradually speed up
> > the ramp when it starts, and slow it down before it reaches its target
> > value?
> > The only way I can think of so far is to model such a behavior with two
> > masses connected by an elastic link using the pmpd library. But a
> > vanilla way would be very interesting too!
> >
> > Thanks in advance for all ideas and pointers!
> > cheersz, Peter
> >
> >
> >
> > ___
> > Pd-list@lists.iem.at mailing list
> > UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
>
>
>
> ___
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management ->
> https://lists.puredata.info/listinfo/pd-list
>
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] round off the corners of a [line] movement?

2023-09-27 Thread Christof Ressi
Now I am not sure if [line"] was supposed to be [line~]... Just in case, 
here's a signal version called [cline~].


Christof

On 27.09.2023 14:51, Christof Ressi wrote:
[line] outputs a linear ramp, so you just need to apply a transfer 
function to get the behavior you want. For example, if you want a 
gradual start and gradual, you could use the second half of a cosine 
wave.


I have an abstraction called [cline] that supports various shapes (see 
attachment).


Christof

On 26.09.2023 20:06, Peter P. wrote:

Hi list,

often when I use [line¨] to make frequency glissandi, the point when the
ramp starts, and the point where it ends, appear as very sudden events
to my ears. I am wondering if there is an easy way to gradually speed up
the ramp when it starts, and slow it down before it reaches its target
value?
The only way I can think of so far is to model such a behavior with two
masses connected by an elastic link using the pmpd library. But a
vanilla way would be very interesting too!

Thanks in advance for all ideas and pointers!
cheersz, Peter



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list#N canvas 747 262 842 546 10;
#X obj 3 181 line~;
#X obj 130 140 snapshot~;
#X obj 30 359 outlet~;
#X obj 58 -8 inlet;
#X obj 4 205 -~ 0;
#X obj 82 121 -;
#X obj 4 234 /~ 1;
#X obj 4 295 *~ 1;
#X obj 30 326 +~ 0;
#X obj 62 90 t l f b;
#X obj 10 151 spigot;
#N canvas 256 342 893 547 transfer 0;
#X obj 62 61 inlet~;
#X obj 117 61 r \$0-transfer;
#N canvas 309 228 1087 458 exp 0;
#X obj 358 196 exp~;
#X obj 419 191 exp;
#X obj 354 73 inlet~;
#X obj 359 162 *~ 1;
#X obj 357 232 -~ 1;
#X obj 420 227 - 1;
#X obj 355 270 /~ 1;
#X obj 354 341 outlet~;
#X text 122 50 normalized natural exponential function;
#X obj 405 72 r \$0-arg;
#X obj 412 128 * -1;
#X obj 505 126 switch~;
#X obj 504 74 inlet;
#X obj 504 96 == 2;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 4 0 6 0;
#X connect 5 0 6 1;
#X connect 6 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 3 1;
#X connect 10 0 1 0;
#X connect 12 0 13 0;
#X connect 13 0 11 0;
#X restore 165 243 pd exp;
#X obj 134 303 outlet~;
#N canvas 0 50 450 300 pow 0;
#X obj 87 130 inlet~;
#X obj 106 213 outlet~;
#X obj 107 176 pow~ 1;
#X msg 148 131 1;
#X obj 148 76 max 0;
#X obj 148 104 select 0;
#X obj 148 45 r \$0-arg;
#X obj 246 134 switch~;
#X obj 248 82 inlet;
#X obj 249 107 == 1;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 2 1;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 5 1 2 1;
#X connect 6 0 4 0;
#X connect 8 0 9 0;
#X connect 9 0 7 0;
#X restore 107 244 pd pow;
#X text 286 89 missing or invalid argument is set to 'lin' (0);
#N canvas 266 122 787 443 cos 0;
#X obj 94 25 inlet~;
#X obj 91 335 outlet~;
#X obj 251 24 inlet;
#X obj 90 241 cos~;
#X obj 93 186 *~ 1;
#X obj 91 212 +~ 0;
#X obj 91 270 +~ 0;
#X obj 91 300 *~ 1;
#X obj 164 165 unpack f f f f;
#X msg 184 108 0.25 -0.25 0 1;
#X msg 204 139 0.25 0.5 1 1;
#X msg 173 81 0.5 0.5 1 0.5;
#X obj 170 29 r \$0-arg;
#X obj 168 56 sel 0 1 2;
#X text 307 48 cos 0: second half of a cosine wave (s-shape) \; cos
1: last quarter of a cosine wave (slow rise) \; cos 2: third quarter
of a cosine wave (fast rise) \; 'reset' message simply goes through
the rejection outlet of select and sets output of cos~ to zero.;
#X obj 264 330 switch~;
#X obj 264 286 == 3;
#X connect 0 0 4 0;
#X connect 2 0 16 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 8 0 4 1;
#X connect 8 1 5 1;
#X connect 8 2 6 1;
#X connect 8 3 7 1;
#X connect 9 0 8 0;
#X connect 10 0 8 0;
#X connect 11 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 11 0;
#X connect 13 1 9 0;
#X connect 13 2 10 0;
#X connect 16 0 15 0;
#X restore 224 244 pd cos;
#X obj 117 91 select lin pow exp cos;
#X obj 225 26 r \$0-arg;
#X obj 187 117 demux;
#X obj 225 55 != 0;
#X text 284 114 exp with argument 0 is routet to 'lin';
#X text 199 170 switch off what you don't need;
#X obj 64 244 *~;
#X obj 165 167 t f;
#X msg 126 138 0;
#X msg 163 140 1;
#X msg 216 140 2;
#X msg 253 139 3;
#X obj 79 200 == 0;
#X connect 0 0 4 0;
#X connect 0 0 2 0;
#X connect 0 0 6 0;
#X connect 0 0 13 0;
#X connect 1 0 7 0;
#X connect 2 0 3 0;
#X connect 4 0 3 0;
#X connect 6 0 3 0;
#X connect 7 0 15 0;
#X connect 7 1 16 0;
#X connect 7 2 9 0;
#X connect 7 3 18 0;
#X connect 7 4 15 0;
#X connect 8 0 10 0;
#X connect 9 0 15 0;
#X connect 9 1 17 0;
#X connect 10 0 9 1;
#X connect 13 0 3 0;
#X connect 14 0 4 1;
#X connect 14 0 2 1;
#X connect 14 0 6 1;
#X connect 14 0 19 0;
#X connect 15 0 14 0;
#X connect 16 0 14 0;
#X connect 17 0 14 0;
#X connect 18 0 14 0;
#X connect 19 0 13 1;
#X restore 4 265 pd transfer;
#N canvas 542 443 817

Re: [PD] round off the corners of a [line] movement?

2023-09-27 Thread cyrille henry

ho,
and you can cascade 2 line, in order to smooth the 1st one, just like this 
example.

But the best is probably to use line~ with lop~ and control the glissandi in 
audio...

cheers


Le 26/09/2023 à 20:06, Peter P. a écrit :

Hi list,

often when I use [line¨] to make frequency glissandi, the point when the
ramp starts, and the point where it ends, appear as very sudden events
to my ears. I am wondering if there is an easy way to gradually speed up
the ramp when it starts, and slow it down before it reaches its target
value?
The only way I can think of so far is to model such a behavior with two
masses connected by an elastic link using the pmpd library. But a
vanilla way would be very interesting too!

Thanks in advance for all ideas and pointers!
cheersz, Peter



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list#N canvas 797 158 586 482 12;
#X obj 175 111 line 0 100;
#X msg 141 210 \$1 200;
#X msg 174 84 \$1 1000;
#X obj 170 52 tgl 20 0 empty empty empty 0 -10 0 12 #fcfcfc #00 #00 0 1;
#X obj 139 236 line;
#X obj 131 278 timeroll;
#X obj 139 181 f;
#X obj 138 155 metro 100;
#X obj 135 132 loadbang;
#X connect 0 0 6 1;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 6 0 1 0;
#X connect 7 0 6 0;
#X connect 8 0 7 0;
___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] round off the corners of a [line] movement?

2023-09-27 Thread cyrille henry

hello,

it's not vanilla, but line3 is using a 3rd degree polynomial to allow 
continuity of the tangents. It is also working if you trigger a new line before 
the end of the current.
equation is not very complex and can be ported to vanilla, but I was lazy...
You can find it in nusmuk_somthing in deken

cheers
c



Le 26/09/2023 à 20:06, Peter P. a écrit :

Hi list,

often when I use [line¨] to make frequency glissandi, the point when the
ramp starts, and the point where it ends, appear as very sudden events
to my ears. I am wondering if there is an easy way to gradually speed up
the ramp when it starts, and slow it down before it reaches its target
value?
The only way I can think of so far is to model such a behavior with two
masses connected by an elastic link using the pmpd library. But a
vanilla way would be very interesting too!

Thanks in advance for all ideas and pointers!
cheersz, Peter



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list




___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list


Re: [PD] round off the corners of a [line] movement?

2023-09-27 Thread Christof Ressi
[line] outputs a linear ramp, so you just need to apply a transfer 
function to get the behavior you want. For example, if you want a 
gradual start and gradual, you could use the second half of a cosine wave.


I have an abstraction called [cline] that supports various shapes (see 
attachment).


Christof

On 26.09.2023 20:06, Peter P. wrote:

Hi list,

often when I use [line¨] to make frequency glissandi, the point when the
ramp starts, and the point where it ends, appear as very sudden events
to my ears. I am wondering if there is an easy way to gradually speed up
the ramp when it starts, and slow it down before it reaches its target
value?
The only way I can think of so far is to model such a behavior with two
masses connected by an elastic link using the pmpd library. But a
vanilla way would be very interesting too!

Thanks in advance for all ideas and pointers!
cheersz, Peter



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list#N canvas 601 170 834 486 10;
#X obj 138 25 inlet;
#X obj 159 155 -;
#X obj 136 120 t l f b;
#N canvas 307 136 893 547 transfer 0;
#X obj 117 61 r \$0-transfer;
#X msg 117 122 0;
#X msg 147 122 1;
#X msg 215 165 2;
#X msg 228 122 3;
#N canvas 309 228 1087 458 exp 0;
#X obj 419 191 exp;
#X obj 420 227 - 1;
#X text 122 50 normalized natural exponential function;
#X obj 405 72 r \$0-arg;
#X obj 412 128 * -1;
#X obj 355 72 inlet;
#X obj 354 303 outlet;
#X obj 358 162 * 1;
#X obj 359 196 exp;
#X obj 357 232 - 1;
#X obj 355 270 / 1;
#X connect 0 0 1 0;
#X connect 1 0 10 1;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 4 0 7 1;
#X connect 5 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 6 0;
#X restore 145 260 pd exp;
#N canvas 0 50 450 300 pow 0;
#X msg 148 131 1;
#X obj 148 76 max 0;
#X obj 148 104 select 0;
#X obj 148 45 r \$0-arg;
#X obj 87 130 inlet;
#X obj 107 176 pow 1;
#X obj 106 212 outlet;
#X connect 0 0 5 1;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 2 1 5 1;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X restore 114 228 pd pow;
#X msg 266 122 0;
#X text 300 122 missing or invalid argument is set to 'lin' (0);
#N canvas 769 284 787 443 cos 0;
#X obj 164 165 unpack f f f f;
#X msg 184 108 0.25 -0.25 0 1;
#X msg 204 139 0.25 0.5 1 1;
#X msg 173 81 0.5 0.5 1 0.5;
#X msg 236 232 0;
#X obj 167 21 r \$0-arg;
#X obj 168 56 sel 0 1 2;
#X obj 94 24 inlet;
#X obj 92 278 cos;
#X obj 93 307 + 0;
#X obj 93 337 * 1;
#X obj 93 219 + 0;
#X obj 93 186 * 1;
#X obj 96 374 outlet;
#X obj 93 248 * 6.28319;
#X connect 0 0 12 1;
#X connect 0 1 11 1;
#X connect 0 2 9 1;
#X connect 0 3 10 1;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 10 1;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 6 1 1 0;
#X connect 6 2 2 0;
#X connect 6 3 4 0;
#X connect 7 0 12 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 13 0;
#X connect 11 0 14 0;
#X connect 12 0 11 0;
#X connect 14 0 8 0;
#X restore 176 300 pd cos;
#X obj 117 91 select lin pow exp cos;
#X obj 311 59 r \$0-arg;
#X obj 182 122 demux;
#X obj 311 88 != 0;
#X text 355 89 exp with argument 0 is routet to 'lin';
#X obj 87 394 outlet;
#X obj 63 61 inlet;
#X obj 83 178 demux 0 1 2 3;
#X connect 0 0 10 0;
#X connect 1 0 17 1;
#X connect 2 0 17 1;
#X connect 3 0 17 1;
#X connect 4 0 17 1;
#X connect 5 0 15 0;
#X connect 6 0 15 0;
#X connect 7 0 17 1;
#X connect 9 0 15 0;
#X connect 10 0 1 0;
#X connect 10 1 2 0;
#X connect 10 2 12 0;
#X connect 10 3 4 0;
#X connect 10 4 7 0;
#X connect 11 0 13 0;
#X connect 12 0 1 0;
#X connect 12 1 3 0;
#X connect 13 0 12 1;
#X connect 16 0 17 0;
#X connect 17 0 15 0;
#X connect 17 1 6 0;
#X connect 17 2 5 0;
#X connect 17 3 9 0;
#X restore 116 244 pd transfer;
#N canvas 542 443 817 556 arg 0;
#X obj 112 42 inlet;
#X obj 111 72 route set;
#X obj 195 6 loadbang;
#X obj 163 274 s \$0-arg;
#X obj 49 273 s \$0-transfer;
#X obj 184 73 symbol \$1;
#X obj 259 73 \$2;
#X obj 163 241 f;
#X obj 196 39 t b b;
#X obj 177 175 route bang float;
#X msg 177 200 0;
#X obj 183 108 pack s f;
#X obj 100 205 t s b;
#X obj 110 136 list split 1;
#X connect 0 0 1 0;
#X connect 1 0 13 0;
#X connect 2 0 8 0;
#X connect 5 0 11 0;
#X connect 6 0 11 1;
#X connect 7 0 3 0;
#X connect 8 0 5 0;
#X connect 8 1 6 0;
#X connect 9 0 10 0;
#X connect 9 1 7 1;
#X connect 10 0 7 1;
#X connect 11 0 13 0;
#X connect 12 0 4 0;
#X connect 12 1 7 0;
#X connect 13 0 12 0;
#X connect 13 1 9 0;
#X restore 282 84 pd arg;
#X text 296 52 anything ("set ...");
#X text 22 39 list \; (target \, time);
#X text 340 269 note: it's best to change the shape of the transfer
function when starting a new ramp and not in the middle of an ongoing
ramp. with this technique you can easily design envelope generators
with individual shapes for each section.;
#X text 342 127 use "set" messages to change arguments dynamically:
;
#X text 341 79 creation arguments: \; 1) l

[PD] round off the corners of a [line] movement?

2023-09-27 Thread Peter P.
Hi list,

often when I use [line¨] to make frequency glissandi, the point when the
ramp starts, and the point where it ends, appear as very sudden events
to my ears. I am wondering if there is an easy way to gradually speed up
the ramp when it starts, and slow it down before it reaches its target
value?
The only way I can think of so far is to model such a behavior with two
masses connected by an elastic link using the pmpd library. But a
vanilla way would be very interesting too!

Thanks in advance for all ideas and pointers!
cheersz, Peter



___
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list