How manipulate slices with rings?

Hi again :

There’s many possibilities for manipulate values with rings,

and ring chains.One thing that would be quite interesting is

manipulate especific slices in a sample :

Sound Out

with_fx :sound_out_stereo, mix: 0 do
 r = (ring 0,1,2,3) 
  live_loop :sample do
    sample :loop_amen,num_slices: 8, r.take(0),
    amp: 0.5,beat_stretch: 4,rate: 1
sample :loop_amen, r.take(1),rate: 0.5
    sleep 4
  end
end

The message that i got was :

unexpected ‘,’ ,expecting =>

There’s some way to manipulate specific slices through the rings/ring chain ?

Thank you,one more time.

Hey @GWB70. Can you explain what you’re trying to use a ring for in this case?

Here’s an example of how I might slice up amen using a ring, using both a variable for a ring and a method chained ring. The important thing is that you need to wind up with a specific value, rather than a ring to give to the slice: option. The .take method returns a ring, so .tick or .choose would be better choices to produce a single value.

live_loop :amen_break do
  use_sample_defaults beat_stretch: 2, num_slices: 8, release: 0.5
  r = (ring, 1, 3, 5, 7)
  sample :loop_amen, slice: [0, 2, 4, 6].ring.tick
  sleep 0.25
  3.times do
    sample :loop_amen, slice: r.choose
    sleep 0.25
  end
end
2 Likes

Well, i want to use rings to pick up specific elements, in a sequence.

In a sequence of 8 slices, i can take few of them,and apply different rates.

I’ll record the parts that i liked for further edition in a DAW.

Hey :

It seems we’re looking for similar results.

I’ll use your code for manipulation with rings,to take specific slices

and apply different parameters. Then, i’ll record what i liked,and edit on Acid.

Thank you very much,mate !

Hi again :

The code that you wrote,works nice

but i couldn’t call an external sample,

do not accept this string :

 es = "C:/Users/gwb70/Documents/My Samples"

sample : es,rate: 0.5, slice: [0,2,5,2].ring.tick

But still works with internal samples :slightly_smiling_face:

Give section 3.7 a look again. You have some important info missing. Your es variable is a directory, but sample will need a sample. Also, the colon is a typo. Assuming your sample is called play-me.wav :

sample es, "play-me", rate: 0.5, slice: [0,2,5,2].ring.tick

https://sonic-pi.net/tutorial.html#section-3-7

1 Like