I'm working on my first patch in pd and before I proceed working on it, I woud like to get some input on the sample playback engine I'm using. I'm wondering if I'm losing any sort of sample accuracy that I might obtain by using different objects or methods - I used phasor~ because it seemed easier to pitch. I haven't installed any other libraries other than the base install of pd. please forgive any 'newbieisms' present in the patch. the pseudo-granular implementation is unenveloped and very clicky. what I would like to do is some sort of bpm-locked manipulations (for example: 1/4 speed playback with eight-note sized grains).
thanks,
#N canvas -3 1 971 706 12; #X obj 256 23 openpanel; #X obj 256 69 soundfiler; #X graph graph3 0 -1 70559 1 52 146 252 6; #X array array1 70560 float 0; #X pop; #X obj 256 6 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 -1; #X obj 130 344 r sample-length; #X floatatom 130 368 10 0 0; #X obj 256 92 send sample-length; #X obj 52 416 tabread4~ array1; #X obj 50 344 phasor~ 0; #X obj 52 368 *~; #X obj 52 441 dac~; #X msg 256 46 read -resize -maxsize 1e+006 $1 array1; #X msg 857 12 ; pd dsp 1; #X msg 858 53 ; pd dsp 0; #X floatatom 50 213 8 0 0; #X obj 52 150 r sample-length; #X obj 50 189 /; #X msg 80 189 44100; #X obj 52 392 +~ 1; #X obj 50 317 *; #X obj 81 317 f 1; #X obj 112 317 loadbang; #X obj 81 292 line 100; #X obj 777 66 vsl 15 512 -3 3 0 0 empty empty empty 20 8 0 8 -262144 -1 -1 25550 0; #X obj 739 450 vsl 15 128 100 10000 1 0 empty empty empty 20 8 0 8 -262144 -1 -1 9000 1; #X obj 774 589 pack; #X obj 774 614 send linear; #X obj 81 265 r linear; #X msg 520 590 0; #X msg 739 410 0; #X obj 525 559 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 -1; #X obj 578 559 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 -1; #X msg 560 590 1; #X msg 483 590 -1; #X obj 275 137 vsl 15 512 0 80000 0 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 0; #X obj 232 677 pack; #X obj 270 678 send granule; #X obj 153 264 r granule; #X obj 153 291 line 100; #X obj 278 656 hsl 512 15 0 1 0 0 empty empty empty 20 8 0 8 -262144 -1 -1 0 0; #X msg 440 620 0.125; #X msg 241 633 0; #X msg 295 632 1; #X obj 84 639 t f f; #X floatatom 143 677 10 0 0; #X msg 173 577 100; #X obj 741 37 r transpose; #X obj 492 620 s transpose; #X obj 428 590 s zero; #X obj 717 385 r zero; #X text 484 526 transposition remote; #X text 628 445 portamento ->; #X text 817 137 <- transposition; #X text 616 555 <- forward; #X text 413 554 reverse ->; #X text 299 176 instructions: 1 load a sample by clicking the bang in the top left next to the graph. 2 turn on the dsp 3 hit the forward buttton strange effects can be achieved by hitting the zero message in the bottom left , moving the slider and hitting 1; #X text 456 674 ^ sample transport slider; #X text 303 349 <- transport 'portamento'; #X connect 0 0 11 0; #X connect 1 0 6 0; #X connect 3 0 0 0; #X connect 4 0 5 0; #X connect 5 0 9 1; #X connect 7 0 10 0; #X connect 7 0 10 1; #X connect 8 0 9 0; #X connect 9 0 18 0; #X connect 11 0 1 0; #X connect 14 0 19 1; #X connect 15 0 16 1; #X connect 15 0 17 0; #X connect 16 0 14 0; #X connect 17 0 16 0; #X connect 18 0 7 0; #X connect 19 0 8 0; #X connect 20 0 19 0; #X connect 21 0 20 0; #X connect 22 0 19 0; #X connect 23 0 25 0; #X connect 24 0 25 1; #X connect 25 0 26 0; #X connect 27 0 22 0; #X connect 28 0 47 0; #X connect 29 0 24 0; #X connect 30 0 33 0; #X connect 30 0 48 0; #X connect 31 0 32 0; #X connect 31 0 48 0; #X connect 32 0 47 0; #X connect 33 0 47 0; #X connect 34 0 35 1; #X connect 34 0 44 0; #X connect 35 0 36 0; #X connect 37 0 38 0; #X connect 38 0 8 1; #X connect 39 0 35 0; #X connect 41 0 43 0; #X connect 42 0 39 0; #X connect 43 0 39 0; #X connect 43 1 34 0; #X connect 45 0 34 0; #X connect 46 0 23 0; #X connect 49 0 29 0;
Comic Cuteness hat gesagt: // Comic Cuteness wrote:
I'm working on my first patch in pd and before I proceed working on it, I woud like to get some input on the sample playback engine I'm using. I'm wondering if I'm losing any sort of sample accuracy that I might obtain by using different objects or methods - I used phasor~ because it seemed easier to pitch.
tabread4~ and phasor~ are very common objects for this use in a sample player. You might want to replace the 44100 message with the [samplerate] object, because the sample rate might not always be 44100. Als sliders have built-in sends and receives. If you edit their properties, you could get rid of some patch cords, but I don't know if you wanted this.
Frank Barknecht _ ______footils.org__