Hi all
I'm trying to build stutter, I've done i think but i have some strange problem , I hear clicks while file is playing and i can't understand, why.
When i disconnect wire which connect inlet and tabwrite, clicking is stopping.
-
Stutter
-
this is, because your tabwrite~ does write data into the buffer, also when you are not triggering. the tabread~ position does not move, but the values change at the position where the tabread~ is. you could fix it with surpressing the tabread~ out as long as the effect is not triggered.
edit: i attached an abstraction, i made some time ago - this is why it's not perfect, but it works for me. maybe you can use it somehow?
-
Thank you man.
You' stutter is very good.I have added multiplier between inlet and tabwrite and now it works fine for me.
.............................
Sorry it was mistakeHere is a working patch
-
i didn't dig too deep into your patch but i guess you will have the same problem as i had, when i build that patch:
when you use longer loop periods e.g. 1000 ms, you will hear a scratching sound in the first cycle after triggering the effect. this is, because your tabread~ reads at the same position like your tabwrite~ writes the data into the buffer, so it sometimes reads data of the previous writing cycle.
this results in that scratchy sound. this issue didn't annoy me too much, since i mostly use short looping times so you will not hear this most of the time. but if you want to avoid that, you should recalculate all times that you use in your patch into multiples of the blocksize and delay the reading position for 2 or three blocksize lengths. (oh god, will somebody understand that? sorry for my bumpy explanation...)
i did something similar in this patch but with vline~ objects:
http://puredata.hurleur.com/sujet-3210-array-based-delayedit: i think you can solve the problem with a delwrite~/delread~ combination, since the delread~'s minimal delaytime is one block.
-
okay, is see, your stutter works another way, then mine and does not start at the actual point of writing. for short loops maybe accurate enough, on longer loops you should use the writing point as starting point for reading.
you can achive this through start writing and reading into the buffer only when you trigger the effect. then the reading point has to be one blocksize behind the writing point....... sorry for messing up that thread! -
I have changed stutter, now when you will press the key, pure audio (not stuttered) will continue playing and after specified time, will be muted. Also it's will be write in buffer. And then will repeated.
Sorry for my terrible inglish.
I think would be better if you look at patch.
And once again thank you for help. -
yeah, that's pretty cool!
good and simple idea, to use the pipe and avoid playing the first cycle.
only issue: if you want to change the loop length while triggering the effect, you will have problems, because the array is getting resized, so the processing will be very intensive and the buffer will not be updated.
i'd suggest to set a fixed buffersize greater than the maximum loop length (e.g. 2 seconds) and stop writing into the buffer while triggering. for different loop lenghths only change the size of the area to be looped.
see attachment....(replace the adc~ with a sampler or somethin') -
here an enhanced version with pitch shifting (read speed control). sounds better on stutter sounds then the granular pitching of my first patch. enjoy.