Lets look at a way of 'beat slicing' looping samples, using slice and splice:
setcps 0.6
-- Hear it straight
d1 $ splice 8 "0 1 2 3 4 5 6 7" $ sound "break:4"
-- Now with a more messed-up pattern
d1 $ splice 8 "6 1 [2 3] ~ 4 1 6*2 7" $ sound "break:4"
-- Try changing the cps to hear it at different speeds
-- Try manipulating the pattern of slices
d1 $ splice 8 (fast "1 [0.5 0.75]" "6 1 [2 3] ~ 4 1 6*2 7")
$ sound "break:4"
-- Now try all the above with 'slice' instead of 'splice'.
-- Slice _doesn't_ do the pitching up/down thing to splice the
-- sound to the step.
-- Here I put six slices from a loop originally in 4/4, to create
-- a 3/4 waltz
d1 $ splice 8 ("0 1 2 3 4 5") $ sound "break:4" # gain 1.1
d2 $ sound "kick snare*2 clap:4" # speed 2
They should do the same (in haste, I haven't tested them).
Note that it starts counting at 0, so if you have 8 slices, 0 will be the first slice, 1 will be the second one, and 8 will also be the first (because it loops back to the start).
@mattia.paterna yes, i think, in a more limited way than typical. i'd be limiting how it's read to discrete blocks of samples instead of reindexing more arbitrarily.
Hi!!
I'm trying to slice a long sample, but just from the second middle of that. How can I pattern just the second half of a long sample to manipulate it? Taking "bev" as example, imagin it begins playing normal, but in the middle it begins to change using stut, |*speed or whatever.
It's close to work with a sample like "break" and that sintax
I'm a bit confused what the within (0.5, 1) (#gain 0) is doing. I can hear it sounds very different without it.. But don't understand why the first half of each cycle isn't completel silent then..
The problem with the second one is it lasts longer than a cycle, and transformations generally work on a per-cycle basis. You have a slow 4 there but that ends up stretching out all the chopped up bits or grains leaving gaps. So maybe you also want to modify the playback rate of the sound. You could do that with 'hurry' instead:
Hi @yaxu thanks for your answer. I think what I'm actually searching for is a sintax capable to affect a long sample progessively while it sounds. May be the way to achieve this is through a sintax capable of slice a long sample in two half, and then reslice the second half in n parts being able to affect its parameters (just for that 2nd half). In that hypotetical case we cought be able to nest it again and again. The result is a long sample who is progressively modificated in some their parameters.
I don't know if it's possible.
Thank you!!
Hm, I don't think there is an easy function for this. I could try to make something but actually in the next version of Tidal and SuperDirt it will become possible to modify effects (e.g. panning, distortion) to an ongoing sound without chopping it. There are some complications but hopefully I will get a chance to finish the interface for this soon.