Derek Holzer wrote:
Yes, correct. If I have a table that's 100 places long, and I set the offset to 95 and the length to 30, I would like to get a loop that starts at 95 and when it reaches 100, continue playing at 0 up to 25. The next loop would then begin again at 95 and wrap around through 0 to 25, und so weiter.
Like this?
Note: 0 -> [wrap~] -> 1, which is weird (and undesirable in my eyes).
http://claudiusmaximus.goto10.org
#N canvas 0 0 387 615 10; #X obj 45 170 phasor~; #X obj 45 283 wrap~; #X obj 46 203 *~ 30; #X obj 45 230 +~ 95; #X obj 45 257 /~ 100; #X obj 45 312 *~ 100; #X floatatom 163 235 5 0 0 1 table-length - -; #X floatatom 164 201 5 0 0 1 offset - -; #X floatatom 165 174 5 0 0 1 loop-length - -; #X obj 45 396 tabread4~ $0-table 100; #X floatatom 167 145 5 0 0 1 frequency - -; #X obj 45 425 tabsend~ $0-scope; #N canvas 0 0 450 300 (subpatch) 0; #X array $0-scope 64 float 0; #X coords 0 1 63 -1 64 64 1; #X restore 99 467 graph; #N canvas 0 0 450 300 (subpatch) 0; #X array $0-table 100 float 0; #X coords 0 1 99 -1 100 64 1; #X restore 99 327 graph; #X obj 46 66 samplerate~; #X msg 103 89 0; #X obj 47 42 t b b; #X obj 46 22 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 45 90 / 64; #X msg 166 123 set $1; #X connect 0 0 2 0; #X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 9 0; #X connect 6 0 4 1; #X connect 6 0 5 1; #X connect 7 0 3 1; #X connect 8 0 2 1; #X connect 9 0 11 0; #X connect 10 0 0 0; #X connect 14 0 18 0; #X connect 15 0 0 1; #X connect 16 0 14 0; #X connect 16 1 15 0; #X connect 17 0 16 0; #X connect 18 0 0 0; #X connect 18 0 19 0; #X connect 19 0 10 0;