Hi to all, this is another Sonic-Pi’s interpretation of a traditional Celtic tune named “A Fig For A Kiss”.
# Title: A Fig For A Kiss
# Artist: Mattia Giovanetti
# Date: 22/04/2019
#
# Sonic Pi v3.1
a1 = [67,71,64,71,71,69,67]
a2 = [66,69,62,69,69,67,66]
a3 = [71,74,71,69,67,66,64]
b1 = [1,0.5,1,0.5,0.5,0.5,0.5]
b2 = [0.5,0.5,0.5,0.5,0.5,0.5,1.5]
a4 = [79,76,79,76,76,62,71,]
a5 = [78,74,74,73,74,78,76,74]
a6 = [67,71,74,76,78,79,78,76]
a7 = [79,78,76,78,76,74,76,74,71]
b3 = [1,0.5,0.5,0.5,0.5,0.5,0.5,0.5]
b4 = [0.5,0.5,0.5,1,0.5,0.5,0.5,0.5]
b5 = [0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5]
voceA = :pluck
voceB = :fm
use_bpm 168
t = -12
r = 4.5
define :rit_A do
in_thread do
use_synth voceA
play_pattern_timed a1,b1, release: r, pitch: t
play_pattern_timed a2,b1, release: r, pitch: t
play_pattern_timed a1,b1, release: r, pitch: t
play_pattern_timed a3,b2, release: r, pitch: t
end
in_thread do
use_synth voceB
play_chord chord(:e4,:minor), release: 4.5
sleep 4.5
play_chord chord(:d4,:major), release: 4.5
sleep 4.5
play_chord chord(:e4,:minor), release: 4.5
sleep 4.5
play_chord chord(:e4,:minor), release: 1.5
sleep 1.5
play_chord chord(:d4,:major), release: 1.5
sleep 1.5
play_chord chord(:e4,:minor), release: 1.5
sleep 1.5
end
in_thread do
3.times do
sample :drum_bass_hard, rate: 0.75
sleep 3
sample :drum_bass_soft, rate: 1.25
sleep 1.5
end
sample :drum_bass_hard, rate: 0.75
sleep 1.5
sample :drum_bass_soft, rate: 1.25
sleep 1.5
sample :drum_bass_soft, rate: 1.25
sleep 1.5
end
sleep 4.5*4 #tempo di una misura (= 4.5) per numero delle misure (= 4)
end
define :rit_B do
in_thread do
use_synth voceA
play_pattern_timed a4,b1, release: r, pitch: t
play_pattern_timed a5,b3, release: r, pitch: t
play_pattern_timed a4,b1, release: r, pitch: t
play_pattern_timed a6,b4, release: r, pitch: t
###
play_pattern_timed a4,b1, release: r, pitch: t
play_pattern_timed a5,b3, release: r, pitch: t
play_pattern_timed a7,b5, release: r, pitch: t
play_pattern_timed a3,b2, release: r, pitch: t
end
in_thread do
use_synth voceB
play_chord chord(:e4,:minor), release: 4.5
sleep 4.5
play_chord chord(:d4,:major), release: 4.5
sleep 4.5
play_chord chord(:e4,:minor), release: 4.5
sleep 4.5
play_chord chord(:g4,:major), release: 1.5
sleep 1.5
play_chord chord(:e4,:minor), release: 1.5
sleep 1.5
play_chord chord(:d4,:major), release: 1.5
sleep 1.5
###
play_chord chord(:e4,:minor), release: 4.5
sleep 4.5
play_chord chord(:d4,:major), release: 3
sleep 3
play_chord chord(:b3,:minor), release: 1.5
sleep 1.5
play_chord chord(:c4,:major), release: 1.5
sleep 1.5
play_chord chord(:d4,:major), release: 1.5
sleep 1.5
play_chord chord(:e4,:minor), release: 1.5
sleep 1.5
play_chord chord(:g4,:major), release: 1.5
sleep 1.5
play_chord chord(:d4,:major), release: 1.5
sleep 1.5
play_chord chord(:e4,:minor), release: 1.5
sleep 1.5
end
in_thread do
2.times do
3.times do
sample :drum_bass_hard, rate: 0.75
sleep 3
sample :drum_bass_soft, rate: 1.25
sleep 1.5
end
sample :drum_bass_hard, rate: 0.75
sleep 1.5
sample :drum_bass_soft, rate: 1.25
sleep 1.5
sample :drum_bass_soft, rate: 1.25
sleep 1.5
end
end
sleep 4.5*8
end
define :rit_C do
in_thread do
use_synth voceA
play_pattern_timed a3,b2, release: r, pitch: t
end
in_thread do
use_synth voceB
play_chord chord(:g4,:major), release: 1.5
sleep 1.5
play_chord chord(:d4,:major), release: 1.5
sleep 1.5
play_chord chord(:e4,:minor), release: 1.5
sleep 1.5
end
in_thread do
sample :drum_bass_hard, rate: 0.75
sleep 1.5
sample :drum_bass_soft, rate: 1.25
sleep 1.5
sample :drum_bass_soft, rate: 1.25
sleep 1.5
end
sleep 4.5
end
with_fx :reverb, mix: 0.75, damp: 1 do
with_fx :echo, mix: 0.12, phase: 0.66, decay: 4.5 do
use_synth voceA
play 64, release: r, pitch: t
sleep 1.5
2.times do
2.times do
rit_A
end
rit_B
end
rit_C
use_synth voceA
play_pattern_timed [76,79,83,88,64],[0.2,0.25,0.3,1.25,2.5], release: r, pitch: t
end
end