IOhannes m zmoelnig wrote:
Derek Holzer wrote:
Hi Roman,
and thanks. I implemented it in my patch, but it doesn't seem to work right. The looping isn't seamless, in fact there's a "hiccup" at the point where the loop wraps around. In my previous version, I had another function to calculate the offset and start point, so what would work better for me is the the original concept, of an audio [mod~] which would only wrap around the end point of the table.
like this?
or to put it in your own words: try and find the difference...
mfga.sdr IOhannes
#N canvas 334 83 885 778 10; #X text 240 13 0 - 127; #X text 574 6 0 - 255; #X text 581 45 127 = normal; #X text 580 31 255 = lowest; #X text 584 61 0 = highest; #X obj 91 516 phasor~; #X obj 91 553 *~; #X obj 91 302 / 44.1; #X obj 91 329 expr 1 / ($f1 * 1 / 1000); #X obj 61 247 t f f; #X obj 91 422 sig~; #X obj 91 450 *~; #X text 142 302 time in ms (use 48 if sample rate is 48KHz); #X obj 268 116 hsl 128 15 0 127 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 0 1; #X text 241 39 127 = whole sample; #X text 244 60 0 = smallest fraction; #X obj 251 146 / 127; #X obj 61 219 *; #X obj 91 583 +~; #X obj 452 124 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 0 1; #X floatatom 458 193 5 0 0 0 - - -; #X obj 385 234 *; #X obj 581 229 / 127; #X obj 622 134 hsl 128 15 0 255 0 0 empty empty empty -2 -6 0 8 -262144 -1 -1 0 1; #X floatatom 595 272 5 0 0 0 - - -; #X obj 598 196 abs; #X obj 599 172 - 255; #X obj 250 175 t b f; #X obj 400 188 t b f; #X floatatom 324 163 5 0 0 0 - - -; #X obj 434 153 / 255; #N canvas 0 22 406 310 wraparound~ 0; #X obj 87 29 inlet~; #X obj 87 149 outlet~; #X obj 87 83 wrap~; #X obj 87 55 /~; #X obj 87 113 *~; #X obj 144 28 inlet total num of samples in table; #X connect 0 0 3 0; #X connect 2 0 4 0; #X connect 3 0 2 0; #X connect 4 0 1 0; #X connect 5 0 3 1; #X connect 5 0 4 1; #X restore 91 631 pd wraparound~; #X obj 551 383 table test_zample; #X obj 29 21 openpanel; #X obj 30 -8 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 29 49 read -resize $1 test_zample; #X obj 28 76 soundfiler; #X obj 240 85 inlet loop length; #X obj 393 86 inlet loop offset; #X obj 552 85 inlet loop pitch; #X text 420 60 0 = table end; #X obj 91 712 dac~; #X text 121 585 offset loop from start of table; #X text 126 555 multiply phasor~ by loop length; #X text 277 329 convert ms to frequency in Hz; #X text 209 630 <------this needs help!!!!!! without this subpatch , loop offset works , but can go beyond bounds of table. with this subpatch , loop offset does not work , so table bounds cannot be reached.; #X text 103 245 number of samples in loop; #X text 416 16 0 - 255; #X text 419 32 255 = table start; #X obj 91 688 tabread4~ test_zample; #X connect 5 0 6 0; #X connect 6 0 18 0; #X connect 7 0 8 0; #X connect 8 0 10 0; #X connect 9 0 6 1; #X connect 9 1 7 0; #X connect 10 0 11 0; #X connect 11 0 5 0; #X connect 13 0 16 0; #X connect 13 0 29 0; #X connect 16 0 27 0; #X connect 17 0 9 0; #X connect 18 0 31 0; #X connect 19 0 30 0; #X connect 21 0 18 1; #X connect 22 0 24 0; #X connect 22 0 11 1; #X connect 23 0 26 0; #X connect 25 0 22 0; #X connect 26 0 25 0; #X connect 27 0 17 0; #X connect 27 1 17 1; #X connect 28 0 21 0; #X connect 28 1 21 1; #X connect 30 0 20 0; #X connect 30 0 28 0; #X connect 31 0 49 0; #X connect 33 0 35 0; #X connect 34 0 33 0; #X connect 35 0 36 0; #X connect 36 0 17 0; #X connect 36 0 21 0; #X connect 36 0 31 1; #X connect 37 0 16 0; #X connect 38 0 30 0; #X connect 39 0 26 0; #X connect 49 0 41 0;