Anybody have a good patch for 'slicing' a loop into chunks in order to play them out of order/backwards, etc...
I've been fiddling with this and having a hell of a time. I've tried using [phasor~]s and [line~]s to index the slices.
Loop Slices
Anybody have a good patch for 'slicing' a loop into chunks in order to play them out of order/backwards, etc...
I've been fiddling with this and having a hell of a time. I've tried using [phasor~]s and [line~]s to index the slices.
To get reverse playback you could subtract the (phasor output x sample size) from sample size, ie. for sample size of 44100:-
(phasor~)
|
(*~ -44100)
|
(+~ 44100)
|
(tabread~)....etc
To jump around slices you could use a sample + hold object to add chunks of a specified number of samples at each phase wraparound, like this:-
{100} {200} {300} {400} etc... messages to send to samphold~
|
| (phasor~)
| |
(samphold~)
|
(+~ ) ... add phasor output times the chunk size (eg. 100 in this case)
the phasor output triggers the samphold object to output its current value at the start of each phase, so that each time a chunk has finished being played back, the index for tabread can be forced to jump to a new location. shouldn't be too hard to send an automatically cycling pattern of index numbers to the tabread object, and then introduce reverse in there too...
Brett
|] [] |.| ][|-| -- http://soundcloud.com/domxh
Hi Domien,
The patch seems to be intact and I can see my sample once I've downloaded it, but don't get any sound. Pd keep saying it's expecting ' ' but gets float; or float and gets bang etc etc... is there sth I'm missing?
Also, the GUI look pretty nice - is there a tutorial anywhere for making this kind of interface?
Thanks,
Brett
do a 'find last error'
Hi brett,
i've downloaded that version again and pd doesn't complain here, so i can't really help you on that one. In that same topic there's a second (much extended) version of that patch, maybe you can try that one.
For creating those kind of gui's, just play around with canvasses and the properties of all widgets...
Have fun,
Domien
|] [] |.| ][|-| -- http://soundcloud.com/domxh
{100} {200} {300} {400} etc... messages to send to samphold~
|
| (phasor~)
| |
(samphold~)
|
(+~ ) ... add phasor output times the chunk size (eg. 100 in this case)
This was my next idea to try.... So I did, Later I'll add a second argument to define number of slices. Here it is 16. (0.0625 Is 1/16th, in case you're confused.)
the heart of it is [pd chunkler]
the other abstractions are stuff I use and reuse. It suits my workflow to normalize all index [phasor~]s to 1, then do the sample length stuff in the [looper] abstraction.
Nestor,
Could you send me the HSclock, HZclock and BPHclock, as they are not recognised on my machine?
@brettb said:
Nestor,
Could you send me the HSclock, HZclock and BPHclock, as they are not recognised on my machine?
Good call, those are all my external widgets, I'll make them abstractions and repost.
doesn't the [sfplay~] object do this with ease?
@mnemonic said:
doesn't the [sfplay~] object do this with ease?
Probably, but I've never had it working on OSX.
I've been working on a similar loop-slicing sampler based on the rockefella sampler in the audio examples.
Basically, i wanted to make a patch where you can load any length of sample then slice it into as many segments as you like and play them back randomly (some in reverse), but also be able to control the playback speed independently of pitch and vice versa (ie. timestretch).
It pretty much does all that now, but the two chunk players now have an annoying glitch that I can't seem to get rid of, even multipying with a cosine envelope or vline~.
anyone got any ideas why this is happening?
Patch is attached for reference. let me know if you need more notes, as the patch is quite messy!!
http://www.pdpatchrepo.info/hurleur/B14.sampler.rockafella.proto2.pd
anyone got any ideas on this (above post)?
>>the patch is quite messy!!
i definitely agree! i had a good look at it and really had trouble seeing where everything was going.
what i would do, is clean that patch up so it is obvious where everything is going. use sends , and receives [r $0-whatever] instead of having patch cords criss-crossing across the screen.
the dataflow should be from top to bottom, so as much as possible, try to stick to that.
i think if you spend 15 or 20 minutes cleaning that patch up, you will start to develop a much better patching technique (which will really pay off when you start doing more involved stuff) ..and i think also that the glitch will present itself for you to see.
one more thing i just noticed...unless you are using one of those 5 inch wallet sized computers, then you don't need your font so big.
8 is generally too small, but you can go down to 10 with with no probs. that gives you a lot more room to move.
edit->font->10->do it
Oops! Looks like something went wrong!