Relief Composition : Kibō O Ushinatta Toki

# Title: 希望を失ったとき (Kibō o ushinatta toki) - When I Lost Hopes
# Artist: Mattia Giovanetti
# Date: 16/06/2019
#
# Sonic Pi v3.1

use_bpm 40
nota = [0,2,4,5,7,9,11,12]

define :voce_uno do
  use_synth :sine
  x = rand_i(8)
  y = nota[x] + 60
  play y, release: 0.75, pan: 0.333, amp: [0,0.25,0,0.5,0.75,0,1].choose
  sleep 0.25
end

define :voce_due do
  use_synth :sine
  x = rand_i(8)
  y = nota[x] + 48
  play y, release: 0.75, pan: 0, amp: [0,0.25,0,0.5,0.75,0,1].choose
  sleep 0.5
end

define :voce_tre do
  use_synth :sine
  x = rand_i(8)
  y = nota[x] + 36
  play y, release: 0.75, pan: -0.333, amp: [0,0.25,0,0.5,0.75,0,1].choose
  sleep 1
end

define :campane_casuali do
  sample :perc_bell, rpitch: [0.25,0.5,0.75,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3].choose, amp: [0,0.25,0.5].choose
  sleep [0.125,0.25,0.333,0.5,0.666,0.75,1].choose
end

define :tempo_che_passa do
  sample :drum_snare_soft, rpitch: 27, amp: 0.75
  sleep 0.333
  sample :drum_snare_soft, rpitch: 28, amp: 0.7
  sleep 0.333
end


#forma
with_fx :level, amp: 0.25 do
  with_fx :reverb,mix: 0.5, damp: 0.5, room: 0.25 do
    with_fx :level, amp: 0, amp_slide: 75 do |lv|
      in_thread do
        186.times do
          tempo_che_passa
          control lv, amp: 1
        end
      end
    end
  end
  with_fx :reverb,mix: 0.5, damp: 0.5, room: 1 do
    in_thread do
      4.times do
        x = rand_i(8)
        3.times do
          campane_casuali
        end
        sleep 8
        x.times do
          campane_casuali
        end
        sleep 8
        x.times do
          campane_casuali
        end
        sleep 8
        3.times do
          campane_casuali
        end
      end
    end
    with_fx :echo, mix: 0.25, decay: 4 do
      in_thread do
        sleep 1
        x = 0.75
        6.times do
          sample :ambi_lunar_land, amp: x.abs
          sleep 16
          x = x - 0.25
        end
      end
      in_thread do
        sleep 2
        440.times do
          voce_uno
        end
      end
      in_thread do
        sleep 2
        220.times do
          voce_due
        end
      end
      in_thread do
        sleep 2
        110.times do
          voce_tre
        end
      end
    end
  end
end
8 Likes

Now that is just plain GORGEOUS.

Thank you.

Eli…

1 Like

Glad you enjoy it, it means a lot to me.

I really like your choice and usage of sounds here. It’s all very subtle but the sounds all work together so well. I really enjoyed this piece.

ちなみに、日本語が話せますか?

1 Like

Thank you PiEaterAndPlayer, your words are really precious to me.

私はそれが欲しいのですが、私は単にグーグル翻訳者を使います

1 Like

It’s nice and relaxing, thanks for sharing :slight_smile:

1 Like

You’re welcome @binarysweets, glad you enjoy it! :relaxed:

I hope you don’t mind, but I was playing with your original version last night and came up with another one:

# Title: 希望を失ったとき (Kibō o ushinatta toki) - When I Lost Hopes (Binarysweets Version)
# Artist: Mattia Giovanetti
# Date: 16/06/2019
#
# Sonic Pi v3.1

use_bpm 40
use_random_seed 2019
barLength = 16

define :bar do
  sleep barLength
end

define :voce_uno do
  use_synth :sine
  (barLength * 4).times do
    play [:C4, :D4, :E4, :F4, :G4, :A4, :B4, :C5].choose, release: 0.25, pan: 0.333, amp: [0.25,0,0.5,0.75,0,1].choose
    sleep 0.25
  end
end

define :voce_due do
  use_synth :sine
  (barLength / 2).times do
    play [:C3, :D3, :E3, :F3, :G3, :A3, :B3, :C4].choose, release: 0.5, pan: 0, amp: [0.25,0,0.5,0.75,0,1].choose
    sleep 0.5
  end
end

define :voce_tre do
  use_synth :tri
  (barLength).times do
    play [:C2, :D2, :E2, :F2, :G2, :A2, :B2, :C3].choose, release: 1, pan: -0.333, amp: [0.25,0,0.5,0.75,0,1].choose
    sleep 1
  end
end

define :voce_blade do
  use_synth :blade
  (barLength / 2).times do
    play [:C4, :D4, :E4, :F4, :G4, :A5, :B5, :C5].choose, sustain: 1, release: 2, pan: 0.333, amp: [0.5,0.75,0,1].choose
    sleep 2
  end
end

define :drums do
  s = :loop_breakbeat
  pattern = (ring 1,0,0,0, 2,0,0,1, 1,0,1,0, 3,0,0,0)
  
  (barLength * 4).times do ; tick
    with_swing (line 0.01, 0.05, steps: 8).look, pulse: 4 do
      sample s, slice: 0, num_slices: 32, amp: rrand(4, 4.2) if pattern.look == 1
      sample s, slice: 8, num_slices: 32, amp: rrand(3, 3.2) if pattern.look == 2
      sample s, slice: 8, num_slices: 32, amp: rrand(3, 3.2), rate: 0.95 if pattern.look == 3
    end
    
    sleep 0.25
  end
end

#forma
with_fx :level, amp: 0.25 do
  with_fx :reverb,mix: 0.5, damp: 0.5, room: 1 do
    with_fx :echo, mix: 0.25, decay: 4 do
      in_thread do ; voce_uno ; end
      in_thread do ; voce_due ; end
      bar
      
      in_thread do ; voce_uno ; end
      in_thread do ; voce_due ; end
      in_thread do ; voce_tre ; end
      bar
      
      in_thread do ; voce_uno ; end
      in_thread do ; voce_due ; end
      in_thread do ; voce_tre ; end
      in_thread do ; voce_blade ; end
      in_thread do ; drums ; end
      bar
      
      in_thread do ; voce_uno ; end
      in_thread do ; voce_due ; end
      in_thread do ; voce_tre ; end
      in_thread do ; voce_blade ; end
      in_thread do ; drums ; end
      bar
      
      in_thread do ; voce_blade ; end
      in_thread do ; drums ; end
      bar
    end
  end
end
1 Like

@binarysweets That’s great! I’m really happy and a bit proud. It’s also interesting the use of use_random_seed and barLenght, so thank for that, add more knowledge to all (me included!). I’m really corious to listen at your version, in this exct moment I can’t have a listen.

Oh! I spelt length wrong, I’m kicking myself…
It appears I did not - Ignore me.

1 Like

@binarysweets LOL :smile:

# Title: Ethereal.
# Artist: Just Eli...
# Date: Jul-2019
#
# SonicPi v3.1 (Win 10)


# Settings
use_bpm 40
use_random_seed 79
barLength = 32
scaleName = :dorian
notes = [0,2,4,5,7,9,11,12]

# Loops
define :bar do
  sleep barLength
end

define :beats do
  (barLength).times do
    sample :bd_fat, amp: rrand(0.9, 1)
    sleep 0.5
    sample :elec_hollow_kick if spread(16, 27).tick
    sleep 0.25
    sample :bd_ada, amp: rrand(0.9, 1) if one_in(4)
    sleep 0.25
  end
end

define :hats do
  at [ 0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5 ] do
    with_fx :reverb, room: 0.95 do
      sample :drum_cymbal_closed, amp: rrand( 0.3, 0.7 )
      if one_in( 3 )
        sleep 0.25
        sample :drum_cymbal_closed, amp: rrand( 0.2, 0.4 )
      end
    end
  end
end

with_fx :level, amp: 0.5 do
  
  with_fx :reverb,mix: 0.5, damp: 0.5, room: 1 do
    with_fx :echo, mix: 0.25, decay: 4 do
      
      live_loop :one do
        use_synth :sine
        x = rand_i(8)
        y = notes[x] + 60
        s = play note: y, release: 0.75, pan: 0.333, amp: [0,0.25,0,0.5,0.75,0,1].choose
        sleep 0.25
        # control s, note: y+12
        sleep 0.25
      end
      
      
      
      live_loop :two do
        use_synth :sine
        x = rand_i(8)
        y = notes[x] + 48
        s = play note: y, release: 0.75, pan: 0, amp: [0,0.25,0,0.5,0.75,0,1].choose
        sleep 0.5
        control s, note: y+[0,12,24].choose
        sleep 0.5
      end
      
      
      live_loop :three do
        use_synth :sine
        x = rand_i(8)
        y = notes[x] + 36
        s = play note: y, release: 0.75, pan: -0.333, amp: [0,0.25,0,0.5,0.75,0,1].choose
        sleep 1
        use_synth :piano
        control s, note: y+24
        sleep 1
      end
      
      
      
      live_loop :four do
        sync :one
        sleep 2
        use_synth :pluck
        x = rand_i(8)
        y = notes[x] + 48
        s = play note: y, attack: 0, sustain: 1, release: 1, pan: -0.333, amp: 0.5+[0,0.25,0,0.5,0.75,0,1].choose
        sleep 0.5
        control s, note: y+[0,12,24].choose
        sleep 0.5
        control s, note: y+[0,12,-12].choose
        sleep 0.75
        control s, note: y+[0,12,24].choose
        sleep 0.25
      end
      
      live_loop :five do
        v= [:blade ,:dark_ambience, :hollow].choose
        y = [:C4, :D4, :E4, :F4, :G4, :A5, :B5, :C5].choose
        use_synth v
        (barLength / 16).times do
          s = play y, sustain: 1, release: 2, pan: 0.333, amp: [0.5,0.75,0.25,1].choose * 1
          sleep 0.5
          control s, note: y+[0,12,24].choose
          sleep 0.5
          control s, note: y+[0,12,-12].choose
          sleep 0.75
          control s, note: y+[0,12,24].choose
          sleep 0.25
        end
      end
      
      
    end
  end
end

live_loop :notes_change do
  sync :bar
  cue :change
end

live_loop :switch_notes do
  sync :change
  switch =  [0,1].ring.tick
  if switch == 1 then
    notes = [0,2,4,9,7,5,12,11]
  else
    notes = [12,11,5,7,9,4,2,0]
  end
end

live_loop :do_beats do
  beats
end

live_loop :do_hats do
  hats
  sleep 8
end

Eli…

1 Like

It’s a really good variation, a new piece indeed, I love it, thanks for sharing @Eli, it’s quietness reminds me a calm and sunny afternoon passing by in a quite empty flat, looking the sky line and the clouds while getting more and more yellow and red, but not fall into the night, a perpetual afternoon, a dream of calm, like these perfects moment we all experience in a date period of each our life. Thanks again.

1 Like