Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
On Sun, 29 Mar 2009, Frank Barknecht wrote: volker b?hm hat gesagt: // volker b?hm wrote: thanks for posting this. for certain freqs i hear a noticeable periodic "zipping" in the sound (try 230 hz e.g.). Hm, I don't hear it, but that may be my ears. since the algorithm is based on the sinc function (sin(x)/x), i wonder how pd handles divide by zero in the signal domain. wouldn't you have to check for that in the code/patch? A [/~] with no signal in the right inlet in Pd gives 0 as output. In saw~.pd x never becomes zero, it's always at least 1.8955. :) Well, if divide-by-zero happens any often in there, it would be worthwhile to do an explicit check for divide-by-zero in the patch, because in this case 0/0 is expected to give 1, as all neighbouring values of sin(x)/x are getting closer to 1 as x gets closer to 0: that's what you need to make sin(x)/x a smooth function. _ _ __ ___ _ _ _ ... | Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
volker böhm wrote: > for some reason my mails to the list take ages until they arrive, which > makes a discussion a little difficult... hmm, please bear in mind that "email" is an asynchronous medium. this medium was designed to make discussions with people who might be online only a few times a week. and i don't have the feeling that your mails takes "ages" (at least in this thread you have been able to reply indirectly to yourself within 3 hours) if you feel that an asynchronous medium is not the right choice to lead a discussion, why not try IRC? > > ok, something weird going on here. abs~ is not doing what i would think > it should be doing - calculating the absolute value of the incoming > signal. instead it simply seems to pass input to output (no errors in pd > window). yes, this is a known bug of [abs~] in Pd-0.42. see frank's other mails. mfdsr IOhannes ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
Frank Barknecht a écrit : Hallo, volker b?hm hat gesagt: // volker b?hm wrote: thanks for posting this. for certain freqs i hear a noticeable periodic "zipping" in the sound (try 230 hz e.g.). Hm, I don't hear it, but that may be my ears. don't hear it also. since the algorithm is based on the sinc function (sin(x)/x), i wonder how pd handles divide by zero in the signal domain. wouldn't you have to check for that in the code/patch? A [/~] with no signal in the right inlet in Pd gives 0 as output. In saw~.pd x never becomes zero, it's always at least 1.8955. :) yep c Ciao ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
Hallo, volker b?hm hat gesagt: // volker b?hm wrote: > thanks for posting this. > for certain freqs i hear a noticeable periodic "zipping" in the sound > (try 230 hz e.g.). Hm, I don't hear it, but that may be my ears. > since the algorithm is based on the sinc function (sin(x)/x), i wonder > how pd handles divide by zero in the signal domain. wouldn't you have to > check for that in the code/patch? A [/~] with no signal in the right inlet in Pd gives 0 as output. In saw~.pd x never becomes zero, it's always at least 1.8955. :) Ciao -- Frank ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
On 29 Mar 2009, at 12:53, Frank Barknecht wrote: Hallo, cyrille henry hat gesagt: // cyrille henry wrote: I think, currently it's probably a bit slower because of the sin (), but maybe that could be put into a tabread~. i think the sin object is doing a linear interpolation in a 512 point table. (don't know how it is done in expr~, but expr~ is not used for rjlib because of it's licence, right?) Attached is an expr-less version of saw~ which from a quick glance at the scope looks and sounds the same. It is vanilla in that it uses [abs~] and [>~] which are part of 0.42 (and thus RjDj). On older Pd versions you can use for example the purepd abstractions for both from the SVN in abstractions/purepd thanks for posting this. for certain freqs i hear a noticeable periodic "zipping" in the sound (try 230 hz e.g.). since the algorithm is based on the sinc function (sin(x)/x), i wonder how pd handles divide by zero in the signal domain. wouldn't you have to check for that in the code/patch? volker. ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
Frank Barknecht a écrit : Hallo, cyrille henry hat gesagt: // cyrille henry wrote: ok.here is a version using [pow~ -1] to replace [>~ 0] it should work with vanilla pd version >= 0.42 and with rjdj. and certainly with pd-extended. I also did one which replaces >~ with the tabread lookup from Enrique's [>~] embedded. yep, this is a more clever vay to do this. thx. c Ciao ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
Hallo, cyrille henry hat gesagt: // cyrille henry wrote: > ok.here is a version using [pow~ -1] to replace [>~ 0] > it should work with vanilla pd version >= 0.42 and with rjdj. > and certainly with pd-extended. I also did one which replaces >~ with the tabread lookup from Enrique's [>~] embedded. Ciao -- Frank #N canvas 232 120 725 608 10; #X obj 105 96 phasor~; #X obj 173 131 -~ 0.5; #X obj 421 192 *~ 2; #X obj 328 217 wrap~; #X obj 329 243 *~ 2; #X obj 329 268 -~ 1; #X obj 459 191 /~; #X obj 458 146 sig~ 22050; #X obj 421 219 *~; #X obj 422 241 abs~; #X obj 421 263 +~ 1.8955; #X obj 106 49 inlet~; #X obj 87 542 outlet~; #X obj 458 97 samplerate~; #X obj 458 74 loadbang; #X obj 458 120 * 0.5; #X obj 174 427 +~; #N canvas 104 42 701 480 sin(x)/x 0; #X obj 220 229 cos~; #X obj 221 204 -~ 0.25; #X msg 288 90 1; #X floatatom 288 162 5 0 0 0 - - -; #X obj 288 116 atan; #X obj 288 137 * 8; #X obj 220 181 /~ 6.238; #X obj 288 67 loadbang; #X obj 221 148 inlet~; #X obj 219 291 outlet~; #X obj 220 255 /~; #X connect 0 0 10 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 6 1; #X connect 4 0 5 0; #X connect 5 0 3 0; #X connect 6 0 1 0; #X connect 7 0 2 0; #X connect 8 0 6 0; #X connect 8 0 10 1; #X connect 10 0 9 0; #X restore 421 293 pd sin(x)/x; #X obj 330 392 *~; #X text 357 387 v2*sin(v4)/v4; #X text 208 426 + v3; #X obj 87 482 -~; #X obj 557 476 loadbang; #X obj 557 539 table \$0-lookup 2; #X obj 175 333 tabread~ \$0-lookup; #X obj 174 311 +~ 1; #X obj 557 518 s \$0-lookup; #X msg 557 497 0 0 1; #X connect 0 0 1 0; #X connect 0 0 21 1; #X connect 1 0 2 0; #X connect 1 0 3 0; #X connect 1 0 25 0; #X connect 2 0 8 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 18 0; #X connect 6 0 8 1; #X connect 7 0 6 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 10 0 17 0; #X connect 11 0 0 0; #X connect 11 0 6 1; #X connect 13 0 15 0; #X connect 14 0 13 0; #X connect 15 0 7 0; #X connect 16 0 21 0; #X connect 17 0 18 1; #X connect 18 0 16 1; #X connect 21 0 12 0; #X connect 22 0 27 0; #X connect 24 0 16 0; #X connect 25 0 24 0; #X connect 27 0 26 0; ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
ok.here is a version using [pow~ -1] to replace [>~ 0] it should work with vanilla pd version >= 0.42 and with rjdj. and certainly with pd-extended. cyrille Enrique Erne a écrit : unfortunately <~ is still missing in pd-0.42 "5.1. release notes New pow~, log~, exp~, abs~, and 'wrap' objects." Frank Barknecht wrote: Hallo, cyrille henry hat gesagt: // cyrille henry wrote: I think, currently it's probably a bit slower because of the sin(), but maybe that could be put into a tabread~. i think the sin object is doing a linear interpolation in a 512 point table. (don't know how it is done in expr~, but expr~ is not used for rjlib because of it's licence, right?) Attached is an expr-less version of saw~ which from a quick glance at the scope looks and sounds the same. It is vanilla in that it uses [abs~] and [>~] which are part of 0.42 (and thus RjDj). On older Pd versions you can use for example the purepd abstractions for both from the SVN in abstractions/purepd Ciao ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list #N canvas 232 120 652 594 10; #X obj 105 96 phasor~; #X obj 176 131 -~ 0.5; #X obj 311 179 *~ 2; #X obj 218 204 wrap~; #X obj 219 230 *~ 2; #X obj 219 255 -~ 1; #X obj 349 178 /~; #X obj 348 153 sig~ 22050; #X obj 311 206 *~; #X obj 312 228 abs~; #X obj 311 250 +~ 1.8955; #X obj 106 49 inlet~; #X obj 87 542 outlet~; #X obj 348 104 samplerate~; #X obj 348 81 loadbang; #X obj 348 127 * 0.5; #X obj 174 427 +~; #N canvas 104 42 701 480 sin(x)/x 0; #X obj 220 229 cos~; #X obj 221 204 -~ 0.25; #X msg 288 90 1; #X floatatom 288 162 5 0 0 0 - - -; #X obj 288 116 atan; #X obj 288 137 * 8; #X obj 220 181 /~ 6.238; #X obj 288 67 loadbang; #X obj 221 148 inlet~; #X obj 219 291 outlet~; #X obj 220 255 /~; #X connect 0 0 10 0; #X connect 1 0 0 0; #X connect 2 0 4 0; #X connect 3 0 6 1; #X connect 4 0 5 0; #X connect 5 0 3 0; #X connect 6 0 1 0; #X connect 7 0 2 0; #X connect 8 0 6 0; #X connect 8 0 10 1; #X connect 10 0 9 0; #X restore 311 280 pd sin(x)/x; #X obj 220 379 *~; #X text 247 374 v2*sin(v4)/v4; #X text 208 426 + v3; #X obj 87 482 -~; #X obj 175 183 pow~ -1; #X connect 0 0 1 0; #X connect 0 0 21 1; #X connect 1 0 2 0; #X connect 1 0 3 0; #X connect 1 0 22 0; #X connect 2 0 8 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 18 0; #X connect 6 0 8 1; #X connect 7 0 6 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 10 0 17 0; #X connect 11 0 0 0; #X connect 11 0 6 1; #X connect 13 0 15 0; #X connect 14 0 13 0; #X connect 15 0 7 0; #X connect 16 0 21 0; #X connect 17 0 18 1; #X connect 18 0 16 1; #X connect 21 0 12 0; #X connect 22 0 16 0; ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
And I am still forced to use [expr~] equivalents on many OSX and Windows systems I encounter because the > or < character cannot be used as a filename. This has actually changed between versions of Pd Extended, so I'm not sure where exactly the problem lies. D. Enrique Erne wrote: unfortunately <~ is still missing in pd-0.42 "5.1. release notes New pow~, log~, exp~, abs~, and 'wrap' objects." -- ::: derek holzer ::: http://blog.myspace.com/macumbista ::: http://www.vimeo.com/macumbista ::: ---Oblique Strategy # 9: "Adding on" ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
unfortunately <~ is still missing in pd-0.42 "5.1. release notes New pow~, log~, exp~, abs~, and 'wrap' objects." Frank Barknecht wrote: Hallo, cyrille henry hat gesagt: // cyrille henry wrote: I think, currently it's probably a bit slower because of the sin(), but maybe that could be put into a tabread~. i think the sin object is doing a linear interpolation in a 512 point table. (don't know how it is done in expr~, but expr~ is not used for rjlib because of it's licence, right?) Attached is an expr-less version of saw~ which from a quick glance at the scope looks and sounds the same. It is vanilla in that it uses [abs~] and [>~] which are part of 0.42 (and thus RjDj). On older Pd versions you can use for example the purepd abstractions for both from the SVN in abstractions/purepd Ciao ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
Hallo, cyrille henry hat gesagt: // cyrille henry wrote: >> I think, currently it's probably a bit slower because of the sin(), but maybe >> that could be put into a tabread~. > i think the sin object is doing a linear interpolation in a 512 point table. > (don't know how it is done in expr~, but expr~ is not used for rjlib because > of it's licence, right?) Attached is an expr-less version of saw~ which from a quick glance at the scope looks and sounds the same. It is vanilla in that it uses [abs~] and [>~] which are part of 0.42 (and thus RjDj). On older Pd versions you can use for example the purepd abstractions for both from the SVN in abstractions/purepd Ciao -- Frank BarknechtDo You RjDj.me? _ __footils.org__ saw2~.pd Description: application/puredata ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
hello Frank Barknecht a écrit : Hallo, cyrille henry hat gesagt: // cyrille henry wrote: nice to see all of this good stuff in pure vanilla pd. i've got some questions : -why this is not available in pd-extended / in pd svn? The rjdj-svn is the canonical location for rj-lib, but of course as it's GPL/BSD it can be copied anywhere. For contributions we can only accept stuff that either is BSD or transfers copyright to Reality Jockey as we want to avoid legal problems as a distributor of rjlib to others ("others" currently includes Apple, so we have to be extra-extra cautious about this.) ok. -did you benchmark e_beequad~ regarding to bequad~ specially when cutoff / band is change frequently) Do you mean to "biquad~" or what is "bequad~"? biquad~ in Pd should be a lot faster, but I didn't benchmark it. yep, tipo, i mean biquad~. of course biquad~ look faster, but i'm wondering how many times... i'll have to look at performance when i'll have more time. -have you noticed that in svn/nusmuk/osc you can find lot's better bl saw that you can use (ok, it use expr~, but you can easily remove it). this bl oscillator use a personal enhancement of miller technique. No, I hadn't seen this. It doesn't seem to need the [samphold~] which would be cool to avoid anyway. Could you elaborate the algorithm a bit and how it's better? it's sound lot's better! isn't that the aim? (i think it is almost perfect, and can easily be enhanced) try to fft's it if you're not convinced. i think i would take me 1/2h to explain in french exactly what i made. so i really can't explain it in a mail in english. in miller algorythm, the quick transition of the saw is replaced with a softer transition. this is fine. but the switch from saw~ to the soft transition is causing problem. in "my" algo the transition is based on sinus cardinal (is that the english name?) and last for a whole period of the waveform. if you need more explanation, you'll have to ask some math geek. (mathieu maybe?) I think, currently it's probably a bit slower because of the sin(), but maybe that could be put into a tabread~. i think the sin object is doing a linear interpolation in a 512 point table. (don't know how it is done in expr~, but expr~ is not used for rjlib because of it's licence, right?) Cyrille Ciao ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
Hallo, cyrille henry hat gesagt: // cyrille henry wrote: > nice to see all of this good stuff in pure vanilla pd. > > i've got some questions : -why this is not available in pd-extended / in pd > svn? The rjdj-svn is the canonical location for rj-lib, but of course as it's GPL/BSD it can be copied anywhere. For contributions we can only accept stuff that either is BSD or transfers copyright to Reality Jockey as we want to avoid legal problems as a distributor of rjlib to others ("others" currently includes Apple, so we have to be extra-extra cautious about this.) > -did you benchmark e_beequad~ regarding to bequad~ specially when cutoff / > band is change frequently) Do you mean to "biquad~" or what is "bequad~"? biquad~ in Pd should be a lot faster, but I didn't benchmark it. > -have you noticed that in svn/nusmuk/osc you can find lot's better bl saw > that you can use (ok, it use expr~, but you can easily remove it). this bl > oscillator use a personal enhancement of miller technique. No, I hadn't seen this. It doesn't seem to need the [samphold~] which would be cool to avoid anyway. Could you elaborate the algorithm a bit and how it's better? I think, currently it's probably a bit slower because of the sin(), but maybe that could be put into a tabread~. Ciao -- Frank ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
[PD] rjdj, was : Re: [equalizer] / [lowshelf] / [highshelf] in purepd!
hello Frank, nice to see all of this good stuff in pure vanilla pd. i've got some questions : -why this is not available in pd-extended / in pd svn? -did you benchmark e_beequad~ regarding to bequad~ specially when cutoff / band is change frequently) -have you noticed that in svn/nusmuk/osc you can find lot's better bl saw that you can use (ok, it use expr~, but you can easily remove it). this bl oscillator use a personal enhancement of miller technique. cyrille Frank Barknecht a écrit : Hallo, cyrille henry hat gesagt: // cyrille henry wrote: Frank Barknecht a écrit : ... The others are included in the rjdj library as u_lowpass, u_lowpassq, u_highpass, u_highpassq, u_bandpass1, u_bandpass1q, u_bandpass2 and u_bandpass2q. There also is a signal biquad~ as e_beequad available (which just does linear interpolation of parameters, so it's of course not really correct if you do larger jumps). it certainly is obvious, but where can i find them? Here's their home page: http://trac.rjdj.me/wiki/RjLibnew rsp. $ svn co http://svn.rjdj.me/scenes/trunk/rjlib/ (They are GPL, but not yet tagged correctly) Ciao ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list