Is this simpler to code

Is it possible to write this code more compressed
thanks Sorry dont know why its so medded up oO

set_mixer_control! amp: 3
use_bpm 60

live_loop :slep12 do
 use_random_seed (ring 2,1,1,2,1).tick(:a3)
 
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).tick(:sadkg34)
   sleep get(:slep1)
 end
 use_random_seed (ring 2,2,2,3,3).tick(:a3fgj)
 
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep1)
   
 end
 use_random_seed (ring 3,4,3,4,3).tick(:a234237h3)
 
 1.times do
   set :slep1, (ring 0.25,0.25,0.25,0.25, 0.25,0.25).choose
   sleep get(:slep1)
   
 end
 use_random_seed (ring 5,5,5,6,6).tick(:a2erwe4237h3)
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 7,7,7,8,8).tick(:a2erwe4237h3)
 1.times do
   set :slep1, (ring 0.5,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 9,9,9,10,10).tick(:a2erwe4237h3)
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 11,11,11,12,12).tick(:a2erwe4237h3)
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 14,13,13,13,14).tick(:a2erwe4237h3)
 1.times do
   set :slep1, (ring 0.25,0.5,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep1)
 end
 
end

live_loop :slep12324 do
 use_random_seed (ring 2,1,1,2,1).tick(:ajkkl3)
 
 1.times do
   set :slep2, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).tick(:sadfdf34)
   sleep get(:slep2)
 end
 use_random_seed (ring 2,2,2,3,3).tick(:a3f87kj)
 
 1.times do
   set :slep1, (ring 0.25,0.5,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep2)
   
 end
 use_random_seed (ring 3,4,3,4,3).tick(:a23zujg7h3)
 
 1.times do
   set :slep1, (ring 0.25,0.25,0.25,0.25, 0.25,0.25).choose
   sleep get(:slep2)
   
 end
 use_random_seed (ring 5,5,5,6,6).tick(:a2237h3)
 1.times do
   set :slep1, (ring 0.25,0.25,0.5, 0.25,0.25,0.25).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 7,7,7,8,8).tick(:a2er7h3)
 1.times do
   set :slep1, (ring 0.25,0.5,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 9,9,9,10,10).tick(:a2erw37h3)
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 11,11,11,12,12).tick(:a2er7h3)
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 14,13,13,13,14).tick(:a234237h3)
 1.times do
   set :slep1, (ring 0.25,0.25,0.5, 0.25,0.25,0.25).choose
   sleep get(:slep2)
 end
end


live_loop :ampi12 do
 use_random_seed (ring 1,2,1,2).tick(:a2)
 
 1.times do
   set :pronou1,rrand(1, 1.25)
   sleep get(:pronou1)
 end
 use_random_seed (ring 3,3,3,4,4).tick(:a474hzrgh32)
 
 1.times do
   set :pronou1, rrand(1, 1.25)
   sleep get(:pronou1)
 end
 use_random_seed (ring 5,5,5,6,6).tick(:a2477j)
 
 1.times do
   set :pronou1, rrand(1, 1.5)
   sleep get(:pronou1)
 end
 use_random_seed (ring 7,7,7,8,8).tick(:asdegtgh9)
 1.times do
   set :pronou1, rrand(1, 1.5)
   sleep get(:pronou1)
 end
 use_random_seed (ring 9,9,9,10,10).tick(:trztra2)
 
 1.times do
   
   set :pronou1,rrand(1, 1.5)
   sleep get(:pronou1)
 end
 use_random_seed (ring 11,11,11,12,12).tick(:asfg2)
 
 1.times do
   set :pronou1, rrand(1.5, 2)
   sleep get(:pronou1)
 end
 
end

live_loop :releasse do
 use_random_seed (ring 576).tick(:a)
 
 6.times do
   set :rel, rrand(0.3, 1.2)
   sleep 0.5
 end
end


live_loop :cutos do
 use_random_seed (ring 1,1,1,2,2).tick(:afaf)
 
 1.times do
   set :cuto, rrand(95, 120)
   sleep 0.125
   
 end
 use_random_seed (ring 3,3,3,4,4).tick(:a232das4)
 
 1.times do
   set :cuto, rrand(95, 120)
   sleep 0.125
   
 end
 use_random_seed (ring 5,5,5,6,6).tick(:afafsdf4)
 
 1.times do
   set :cuto, rrand(95, 120)
   sleep 0.125
 end
 use_random_seed (ring 7,7,7,8,8).tick(:a23fefafsdf4)
 
 1.times do
   set :cuto, rrand(9, 120)
   sleep 0.125
 end
end


live_loop :pitchis do
 use_random_seed (ring 02,2,2,1,1).tick(:asd122343)
 
 1.times do
   set :pitchi, (ring 0, 0, 0, 1).choose
   sleep get(:slep1)
   
 end
 use_random_seed (ring 3,4,3,4,3).tick(:tzrtz)
 1.times do
   set :pitchi, (ring 0 , 0 ,0 , 1).choose
   sleep get(:slep1)
   
 end
 use_random_seed (ring 5,5,5,6,6).tick(:aqeffgj234)
 1.times do
   set :pitchi, (ring 0, 0, 0 , 1).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 7,8,7,8,7).tick(:aqjkö234)
 2.times do
   1.times do
     set :pitchi, (ring 0, 0 , 0 , 1).choose
     sleep get(:slep1)
   end
 end
 use_random_seed (ring 8,9,8,8,9).tick(:aqtze234)
 1.times do
   set :pitchi, (ring 0 , 0 , 0 , 1).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 10,11,10,11,11).tick(:aq934)
 1.times do
   set :pitchi, (ring 0 , 0 , 0 , 1).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 12,13,12,13,13).tick(:aqe23f34)
 1.times do
   set :pitchi, (ring 0 , 0 , 0 , 1).choose
   sleep get(:slep1)
 end
 use_random_seed (ring 14,14,14,15,14).tick(:aqe23f434)
 2.times do
   1.times do
     set :pitchi, (ring 0 , 0 , 0 , 1).choose
     sleep get(:slep1)
   end
 end
 use_random_seed (ring 16,17,16,16,17).tick(:aqe23hgfhf34)
 1.times do
   set :pitchi, (ring 0 , 0 , 0 , 1).choose
   sleep get(:slep1)
 end
end


live_loop :pitchisss do
 use_random_seed (ring 2,2,2,1,1).tick(:asd122343)
 
 1.times do
   set :pitchib, (ring -7 , -3, -7, -7).choose
   sleep get(:slep2)
   
 end
 use_random_seed (ring 3,4,3,4,3).tick(:tzrtz)
 1.times do
   set :pitchib, (ring -7 , -10, -7, -7).choose
   sleep get(:slep2)
   
 end
 use_random_seed (ring 5,5,5,6,6).tick(:aqeffgj234)
 1.times do
   set :pitchib, (ring -7 , -5, -7, -7).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 7,8,7,8,7).tick(:aqjkö234)
 2.times do
   1.times do
     set :pitchib, (ring -10 , -7, -7, -7).choose
     sleep get(:slep2)
   end
 end
 use_random_seed (ring 8,9,8,8,9).tick(:aqtze234)
 1.times do
   set :pitchib, (ring -7 , -13, -7, -7).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 10,11,10,11,11).tick(:aq934)
 1.times do
   set :pitchib, (ring -7 , -7, -7, -10).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 12,13,12,13,13).tick(:aqe23f34)
 1.times do
   set :pitchib, (ring -7 , -5, -7, -7).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 14,14,14,15,14).tick(:aqe23f434)
 
 1.times do
   set :pitchib, (ring -7 , -7, -3, -7).choose
   sleep get(:slep2)
 end
 use_random_seed (ring 16,17,16,16,17).tick(:aqe23hgfhf34)
 1.times do
   set :pitchib, (ring -7 , -7, -7, -10).choose
   sleep get(:slep2)
 end
end

live_loop :atti do
 use_random_seed (ring 1,1,1,2.2).tick(:asdje)
 1.times do
   set :atts, rrand(0.05, 0.1)
   sleep get(:slep2)
 end
 use_random_seed (ring 3,3,3,4,4).tick(:asdj1234e)
 1.times do
   set :atts, rrand(0.05, 0.1)
   sleep get(:slep2)
 end
 use_random_seed (ring 5,5,5,6,6).tick(:asdjfasdfe)
 1.times do
   set :atts, rrand(0.05, 0.1)
   sleep get(:slep2)
 end
 use_random_seed (ring 7,7,7,8,8).tick(:asdjetrz43)
 1.times do
   set :atts, rrand(0.05, 0.1)
   sleep get(:slep2)
 end
end


use_synth  :chipbass
live_loop :bass do
 
 use_bpm 60
 
 use_random_seed (ring 1,1,1,2,2).tick(:a523ref)
 
 1.times do
   
   play (ring 47,47, 47, 47).choose, attack: 0,cutoff: get(:cuto), amp: get(:pronou1),  release: rrand(0.05, 0.25) , pitch: get(:pitchib), attack: get(:atts)
   
   sleep get(:slep2)
 end
 
 use_random_seed (ring 2,2,2,3,3).tick(:a5234fdf)
 
 1.times do
   
   play (ring 47,47, 47, 47).choose, attack: 0,cutoff: get(:cuto), amp: get(:pronou1),  release: rrand(0.05, 0.25) , pitch: get(:pitchib), attack: get(:atts)
   
   sleep get(:slep2)
 end
 
 use_random_seed (ring 4,4,4,5,5).tick(:a52324dfg4dfs3ref)
 
 1.times do
   
   play (ring 47,47, 47, 47).choose, attack: 0,cutoff: get(:cuto),  release: get(:pronou1) , pitch: rrand(0.05, 0.25), attack: get(:atts)
   
   sleep get(:slep2)
 end
 
 use_random_seed (ring 6,6,6,7,7).tick(:a52344fgef)
 
 1.times do
   
   play (ring 47,47, 47, 47 ,:r).choose, attack: 0,cutoff: get(:cuto), amp: get(:pronou1),  release: rrand(0.05, 0.25), pitch: get(:pitchib), attack: get(:atts)
   
   sleep get(:slep2)
 end
end

use_synth :chiplead
live_loop :one21 do
 
 use_bpm 60
 
 use_random_seed (ring 13123).tick(:adfgdf5)
 
 1.times do
   
   play (ring 47, 47, 47 ,47).choose, cutoff: get(:cuto),  attack: 0, release: get(:pronou1), pitch: get(:pitchi), amp: 1
   
   sleep get(:slep1)
 end
end

I think you’ve used 3 forward ticks instead of 3 back ticks to delimit your code. Could you update if possible to make it easier to read? thanks.

For some reason

 .... 

works better for me …

Hey @holz.
The easiest thing to do here first is to look for repeated sections of code that you can simplify :slight_smile: Looking at your code:

  • If your rings contain lots of repeated values, then you can often shorten those using (knit ...), or (ring ...).repeat(X), or other ring chain functions, if desired. See Tutorial chapter 8.5 (Ring Chains) for details: Sonic Pi - Tutorial
  • Extracting sections of code that are repeated exactly several times, or that are very similar, into functions can also shorten your code. (It’s always worth considering the amount of similarity in the common sections of code, and how complex you would need to make the function that you extract the common code into, as to whether the result is worthwhile). For example: you have many repeats of this sort of code structure, (with different data values), as well as several other similar repeating structures in later live_loops:
 use_random_seed (ring 2,2,2,3,3).tick(:a3fgj)
 
 1.times do
   set :slep1, (ring 0.25,0.25,0.25, 0.25,0.25,0.25).choose
   sleep get(:slep1)
   
 end

These could be extracted into their own function, maybe something like set_sleep. It all comes down to how much code you end up with as a result and whether you think that’s worth it. Functions are described in the Tutorial in Chapter 5.5: Sonic Pi - Tutorial.

Also:

  • if you take away the 1.times do ... end that wraps some code, it means exactly the same thing.
  • there are other tiny optimisations if you want to be super optimised with your code, such as removing unused synth opts (you have some lines where you set attack: 0, and later on the same line, attack: get(:atts) - here, last one wins, so attack: 0 is always ignored. Maybe other things here and there too, but you get the idea.

Thank you ethan :smiley: :smiley: :smiley:

No problem, you’re welcome :slightly_smiling_face: