I’d like to share a song I made, based on the first line of an a cappella Mongolian Lullaby. Please let me know what you think.
Here is the SoundCloud link:
The original song by Urna Chahar-Tuchi can be found here: https://www.youtube.com/watch?v=d8kv_syHuYA
This song took me 7 months. I learned a lot about micro tonality, improved my “musical ear” and it truly was a journey. A lullaby has special meaning for me as I have a sleep disorder impacting my sleep quality, I can’t take the medication that would help me as it gave me really bad side effects, my previous song (also Sonic Pi) was in part about that. So this is not your typical lullaby
The technical bits:
Created 90% in Sonic Pi, some editing on samples and sounds in Audacity and Ardour. The vocal harmonies were done with Melodyne. Recorded and mixed in Ardour were I added a few effects as well.
The original song does not use our regulars 12-tone system, some of the notes are in between the “piano notes”. The past half year I’ve been navigating half sharps and half flats, this is the closest I got notation:
I added harmonies by using 31-EDO tuning but sticking mostly to the key of G in Orwel-9 tuning (with A=440), this maps almost perfectly to the notes Urna is singing.
Trying out some chords:
freqs = [27.5, 28.122, 28.758, 29.408, 30.073, 30.753, 31.448, 32.159, 32.887, 33.63, 34.391, 35.168, 35.963, 36.777, 37.608, 38.459, 39.328, 40.217, 41.127, 42.057, 43.008, 43.98, 44.975, 45.991, 47.031, 48.095, 49.182, 50.294, 51.432, 52.595, 53.784, 55.0, 56.244, 57.515, 58.816, 60.146, 61.506, 62.897, 64.319, 65.773, 67.26, 68.781, 70.336, 71.927, 73.553, 75.216, 76.917, 78.656, 80.435, 82.253, 84.113, 86.015, 87.96, 89.949, 91.983, 94.063, 96.19, 98.365, 100.589, 102.863, 105.189, 107.568, 110.0, 112.487, 115.031, 117.632, 120.292, 123.012, 125.793, 128.637, 131.546, 134.521, 137.562, 140.673, 143.853, 147.106, 150.433, 153.834, 157.312, 160.869, 164.507, 168.227, 172.031, 175.92, 179.898, 183.966, 188.126, 192.38, 196.729, 201.178, 205.727, 210.379, 215.135, 220.0, 224.975, 230.062, 235.264, 240.583, 246.023, 251.586, 257.275, 263.092, 269.041, 275.124, 281.345, 287.707, 294.212, 300.865, 307.668, 314.625, 321.739, 329.014, 336.453, 344.061, 351.841, 359.796, 367.932, 376.251, 384.759, 393.459, 402.356, 411.453, 420.757, 430.271, 440.0, 449.949, 460.123, 470.527, 481.166, 492.046, 503.172, 514.55, 526.184, 538.082, 550.249, 562.691, 575.414, 588.425, 601.73, 615.336, 629.25, 643.478, 658.028, 672.907, 688.122, 703.682, 719.593, 735.864, 752.503, 769.518, 786.918, 804.711, 822.907, 841.514, 860.542, 880.0, 899.898, 920.246, 941.054, 962.333, 984.092, 1006.344, 1029.099, 1052.368, 1076.164, 1100.498, 1125.381, 1150.828, 1176.85, 1203.46, 1230.672, 1258.499, 1286.956, 1316.056, 1345.814, 1376.244, 1407.363, 1439.186, 1471.728, 1505.006, 1539.036, 1573.836, 1609.423, 1645.814, 1683.028, 1721.084, 1760.0, 1799.796, 1840.492, 1882.108, 1924.665, 1968.185, 2012.688, 2058.198, 2104.737, 2152.328, 2200.995, 2250.763, 2301.656, 2353.7, 2406.92, 2461.344, 2516.999, 2573.912, 2632.111, 2691.627, 2752.489, 2814.727, 2878.372, 2943.456, 3010.011, 3078.072, 3147.672, 3218.845, 3291.628, 3366.056, 3442.168, 3520.0, 3599.592, 3680.984, 3764.217, 3849.331, 3936.37, 4025.377, 4116.396, 4209.474, 4304.656, 4401.991, 4501.526, 4603.312, 4707.399, 4813.84, 4922.688, 5033.997, 5147.823, 5264.223, 5383.255, 5504.978, 5629.453, 5756.743, 5886.911, 6020.023, 6156.144, 6295.344, 6437.69, 6583.256, 6732.113, 6884.335, 7040.0, 7199.185, 7361.968, 7528.433, 7698.662, 7872.74, 8050.753, 8232.793, 8418.948, 8609.312, 8803.981, 9003.052, 9206.624, 9414.799, 9627.681, 9845.377, 10067.995, 10295.647, 10528.446, 10766.509, 11009.955, 11258.906, 11513.486, 11773.823, 12040.046, 12312.289, 12590.687, 12875.381, 13166.511, 13464.225, 13768.671, 14080.0]
# G3 op 119
set :offset, 119 # we start in the key of G
# testen akkoordenprogressie
define :speel do |notes_to_play, duration|
for n in notes_to_play do
note = hz_to_midi(freqs[get[:offset] + n])
puts n, note
play note, sustain: duration, attack: 0, release: 0, amp: 0.6
end
sleep duration
end
live_loop :chords do
use_synth :sine
speel [-33, -2, 4, 18], 2.328 + 0.579 # Gb Gb Ad D
speel [-31, 0, 7, 18], 2.148 + 0.218 + 0.417 + 0.178 # G G A# D
speel [-23, 0, 8, 18], 2.391 + 0.442 + 0.223 + 0.333 # Bb G Bb D
speel [-12, 0, 8, 21], 3.408 + 0.247 + 0.348 # D+ G Bb Eb
speel [-30, 1, 11, 19], 4 # G+ G+ B+ D+
sleep 2
end
live_loop :melody do
use_synth :saw
sleep 2.328
speel [18], 0.579 # D
speel [0], 2.148 # G
sleep 0.218
speel [19], 0.417 # D+
speel [14], 0.178 # C+
speel [8], 2.391 # Bb
sleep 0.442
speel [16], 0.223 # Db
speel [26], 0.333 # F
speel [21], 3.408 # Eb
speel [38], 0.247 # A#
speel [36], 0.348 # A
speel [32], 4 # G+
sleep 2
end
Some techniques I used in my song:
The intro: bass beat and drone. Change the sample rate and bits in live loop :bass to get the same break down effect as in my song:
# Deel A1 - intro
freqs = [27.5, 28.122, 28.758, 29.408, 30.073, 30.753, 31.448, 32.159, 32.887, 33.63, 34.391, 35.168, 35.963, 36.777, 37.608, 38.459, 39.328, 40.217, 41.127, 42.057, 43.008, 43.98, 44.975, 45.991, 47.031, 48.095, 49.182, 50.294, 51.432, 52.595, 53.784, 55.0, 56.244, 57.515, 58.816, 60.146, 61.506, 62.897, 64.319, 65.773, 67.26, 68.781, 70.336, 71.927, 73.553, 75.216, 76.917, 78.656, 80.435, 82.253, 84.113, 86.015, 87.96, 89.949, 91.983, 94.063, 96.19, 98.365, 100.589, 102.863, 105.189, 107.568, 110.0, 112.487, 115.031, 117.632, 120.292, 123.012, 125.793, 128.637, 131.546, 134.521, 137.562, 140.673, 143.853, 147.106, 150.433, 153.834, 157.312, 160.869, 164.507, 168.227, 172.031, 175.92, 179.898, 183.966, 188.126, 192.38, 196.729, 201.178, 205.727, 210.379, 215.135, 220.0, 224.975, 230.062, 235.264, 240.583, 246.023, 251.586, 257.275, 263.092, 269.041, 275.124, 281.345, 287.707, 294.212, 300.865, 307.668, 314.625, 321.739, 329.014, 336.453, 344.061, 351.841, 359.796, 367.932, 376.251, 384.759, 393.459, 402.356, 411.453, 420.757, 430.271, 440.0, 449.949, 460.123, 470.527, 481.166, 492.046, 503.172, 514.55, 526.184, 538.082, 550.249, 562.691, 575.414, 588.425, 601.73, 615.336, 629.25, 643.478, 658.028, 672.907, 688.122, 703.682, 719.593, 735.864, 752.503, 769.518, 786.918, 804.711, 822.907, 841.514, 860.542, 880.0, 899.898, 920.246, 941.054, 962.333, 984.092, 1006.344, 1029.099, 1052.368, 1076.164, 1100.498, 1125.381, 1150.828, 1176.85, 1203.46, 1230.672, 1258.499, 1286.956, 1316.056, 1345.814, 1376.244, 1407.363, 1439.186, 1471.728, 1505.006, 1539.036, 1573.836, 1609.423, 1645.814, 1683.028, 1721.084, 1760.0, 1799.796, 1840.492, 1882.108, 1924.665, 1968.185, 2012.688, 2058.198, 2104.737, 2152.328, 2200.995, 2250.763, 2301.656, 2353.7, 2406.92, 2461.344, 2516.999, 2573.912, 2632.111, 2691.627, 2752.489, 2814.727, 2878.372, 2943.456, 3010.011, 3078.072, 3147.672, 3218.845, 3291.628, 3366.056, 3442.168, 3520.0, 3599.592, 3680.984, 3764.217, 3849.331, 3936.37, 4025.377, 4116.396, 4209.474, 4304.656, 4401.991, 4501.526, 4603.312, 4707.399, 4813.84, 4922.688, 5033.997, 5147.823, 5264.223, 5383.255, 5504.978, 5629.453, 5756.743, 5886.911, 6020.023, 6156.144, 6295.344, 6437.69, 6583.256, 6732.113, 6884.335, 7040.0, 7199.185, 7361.968, 7528.433, 7698.662, 7872.74, 8050.753, 8232.793, 8418.948, 8609.312, 8803.981, 9003.052, 9206.624, 9414.799, 9627.681, 9845.377, 10067.995, 10295.647, 10528.446, 10766.509, 11009.955, 11258.906, 11513.486, 11773.823, 12040.046, 12312.289, 12590.687, 12875.381, 13166.511, 13464.225, 13768.671, 14080.0]
# G3 op 119
set :offset, 119 # we start in the key of G
define :speel do |notes_to_play, duration|
for n in notes_to_play do
note = hz_to_midi(freqs[get[:offset] + n] + [-0.5,0.5].choose) - 24
puts n, note
play note, sustain: duration, attack: 4, release: 4, amp: 0.4, pan: rrand(-0.8,0.8)
end
end
with_fx :sound_out_stereo, output: 3 do
notes = [-2,-2,-2,18]
live_loop :bass do
with_fx :bitcrusher, sample_rate: 10000, bits: 8, cutoff: 130 do |b| # start with 10k and 8, go to 100 (or even lower) and 1
use_synth :bass_foundation
notes = [[0,0,0,18],[-2,-2,-2,18]].tick if one_in(10)
puts notes
2.times do
length = [1,1,1,2].choose
note = notes.choose
speel([note], length * 4)
sleep length / 2.0
end
end
end
end
with_fx :sound_out_stereo, output: 5 do
live_loop :beat do
sync :bass
#stop
sample :bd_boom
end
end
Noise to chords. Use a band pass filter on white noise to let it evolve into a pitch. Add some automation to make it sound interesting. This has a very airy dream like vibe that I absolutely love.
freqs = [27.5, 28.122, 28.758, 29.408, 30.073, 30.753, 31.448, 32.159, 32.887, 33.63, 34.391, 35.168, 35.963, 36.777, 37.608, 38.459, 39.328, 40.217, 41.127, 42.057, 43.008, 43.98, 44.975, 45.991, 47.031, 48.095, 49.182, 50.294, 51.432, 52.595, 53.784, 55.0, 56.244, 57.515, 58.816, 60.146, 61.506, 62.897, 64.319, 65.773, 67.26, 68.781, 70.336, 71.927, 73.553, 75.216, 76.917, 78.656, 80.435, 82.253, 84.113, 86.015, 87.96, 89.949, 91.983, 94.063, 96.19, 98.365, 100.589, 102.863, 105.189, 107.568, 110.0, 112.487, 115.031, 117.632, 120.292, 123.012, 125.793, 128.637, 131.546, 134.521, 137.562, 140.673, 143.853, 147.106, 150.433, 153.834, 157.312, 160.869, 164.507, 168.227, 172.031, 175.92, 179.898, 183.966, 188.126, 192.38, 196.729, 201.178, 205.727, 210.379, 215.135, 220.0, 224.975, 230.062, 235.264, 240.583, 246.023, 251.586, 257.275, 263.092, 269.041, 275.124, 281.345, 287.707, 294.212, 300.865, 307.668, 314.625, 321.739, 329.014, 336.453, 344.061, 351.841, 359.796, 367.932, 376.251, 384.759, 393.459, 402.356, 411.453, 420.757, 430.271, 440.0, 449.949, 460.123, 470.527, 481.166, 492.046, 503.172, 514.55, 526.184, 538.082, 550.249, 562.691, 575.414, 588.425, 601.73, 615.336, 629.25, 643.478, 658.028, 672.907, 688.122, 703.682, 719.593, 735.864, 752.503, 769.518, 786.918, 804.711, 822.907, 841.514, 860.542, 880.0, 899.898, 920.246, 941.054, 962.333, 984.092, 1006.344, 1029.099, 1052.368, 1076.164, 1100.498, 1125.381, 1150.828, 1176.85, 1203.46, 1230.672, 1258.499, 1286.956, 1316.056, 1345.814, 1376.244, 1407.363, 1439.186, 1471.728, 1505.006, 1539.036, 1573.836, 1609.423, 1645.814, 1683.028, 1721.084, 1760.0, 1799.796, 1840.492, 1882.108, 1924.665, 1968.185, 2012.688, 2058.198, 2104.737, 2152.328, 2200.995, 2250.763, 2301.656, 2353.7, 2406.92, 2461.344, 2516.999, 2573.912, 2632.111, 2691.627, 2752.489, 2814.727, 2878.372, 2943.456, 3010.011, 3078.072, 3147.672, 3218.845, 3291.628, 3366.056, 3442.168, 3520.0, 3599.592, 3680.984, 3764.217, 3849.331, 3936.37, 4025.377, 4116.396, 4209.474, 4304.656, 4401.991, 4501.526, 4603.312, 4707.399, 4813.84, 4922.688, 5033.997, 5147.823, 5264.223, 5383.255, 5504.978, 5629.453, 5756.743, 5886.911, 6020.023, 6156.144, 6295.344, 6437.69, 6583.256, 6732.113, 6884.335, 7040.0, 7199.185, 7361.968, 7528.433, 7698.662, 7872.74, 8050.753, 8232.793, 8418.948, 8609.312, 8803.981, 9003.052, 9206.624, 9414.799, 9627.681, 9845.377, 10067.995, 10295.647, 10528.446, 10766.509, 11009.955, 11258.906, 11513.486, 11773.823, 12040.046, 12312.289, 12590.687, 12875.381, 13166.511, 13464.225, 13768.671, 14080.0]
# G3 op 119
set :offset, 119 # we start in the key of G
define :noise_to_note do |note_to_play|
note = hz_to_midi(freqs[get[:offset] + note_to_play])
puts(note)
with_fx :bpf, centre: note , res: 0.9999, res_slide: 10, mix: 0.9, res_slide_shape: 7, mix_slide_shape: 1, mix_slide: 25 do |f|
use_synth :noise
amp = 1
if note_to_play > 32
amp = 0.5
end
if note_to_play < 0
amp = 2
end
pan = rrand(0.5,1)
wide_pan = [pan * -1, pan]
n = play note, attack: 1, sustain: 160, amp: amp, pan: rrand(-0.7, 0.7), pan_slide: 5
control n, pan: 0
sleep 10
control n, pan: wide_pan.choose
control f, res: 0.995, mix: 1
sleep 15
control n, pan: 0
50.times do
amp = amp + 0.1
control n, amp: amp
sleep 4.0/10
end
control n, pan: wide_pan.choose
20.times do
sleep 5
control n, pan: rrand(-1, 1)
control f, res: rrand(0.99, 1)
end
end
end
live_loop :subsubbass do
noise_to_note(-62) #sol
stop
end
live_loop :subbass do
noise_to_note(-31) #sol
stop
end
live_loop :bass do
noise_to_note(0) #sol
stop
end
live_loop :tenor do
noise_to_note(11) #si+
stop
end
live_loop :alto do
noise_to_note(18) #re
stop
end
live_loop :soprano do
noise_to_note(31) # sol
stop
end
live_loop :soprano2 do
noise_to_note(62) #sol
stop
end
#noten uit eerste zin maar heel hoog
live_loop :re do
noise_to_note(31 + 18)
stop
end
live_loop :sib do
noise_to_note(8) # klinkt best goed met de 11 (si+)
stop
end
live_loop :sib2 do
noise_to_note(31 + 8)
stop
end
live_loop :mib do
noise_to_note(31 + 21)
stop
end
Ear candy, the melody distorted, sliced to pieces and with a ping pong effect:
freqs = [27.5, 28.122, 28.758, 29.408, 30.073, 30.753, 31.448, 32.159, 32.887, 33.63, 34.391, 35.168, 35.963, 36.777, 37.608, 38.459, 39.328, 40.217, 41.127, 42.057, 43.008, 43.98, 44.975, 45.991, 47.031, 48.095, 49.182, 50.294, 51.432, 52.595, 53.784, 55.0, 56.244, 57.515, 58.816, 60.146, 61.506, 62.897, 64.319, 65.773, 67.26, 68.781, 70.336, 71.927, 73.553, 75.216, 76.917, 78.656, 80.435, 82.253, 84.113, 86.015, 87.96, 89.949, 91.983, 94.063, 96.19, 98.365, 100.589, 102.863, 105.189, 107.568, 110.0, 112.487, 115.031, 117.632, 120.292, 123.012, 125.793, 128.637, 131.546, 134.521, 137.562, 140.673, 143.853, 147.106, 150.433, 153.834, 157.312, 160.869, 164.507, 168.227, 172.031, 175.92, 179.898, 183.966, 188.126, 192.38, 196.729, 201.178, 205.727, 210.379, 215.135, 220.0, 224.975, 230.062, 235.264, 240.583, 246.023, 251.586, 257.275, 263.092, 269.041, 275.124, 281.345, 287.707, 294.212, 300.865, 307.668, 314.625, 321.739, 329.014, 336.453, 344.061, 351.841, 359.796, 367.932, 376.251, 384.759, 393.459, 402.356, 411.453, 420.757, 430.271, 440.0, 449.949, 460.123, 470.527, 481.166, 492.046, 503.172, 514.55, 526.184, 538.082, 550.249, 562.691, 575.414, 588.425, 601.73, 615.336, 629.25, 643.478, 658.028, 672.907, 688.122, 703.682, 719.593, 735.864, 752.503, 769.518, 786.918, 804.711, 822.907, 841.514, 860.542, 880.0, 899.898, 920.246, 941.054, 962.333, 984.092, 1006.344, 1029.099, 1052.368, 1076.164, 1100.498, 1125.381, 1150.828, 1176.85, 1203.46, 1230.672, 1258.499, 1286.956, 1316.056, 1345.814, 1376.244, 1407.363, 1439.186, 1471.728, 1505.006, 1539.036, 1573.836, 1609.423, 1645.814, 1683.028, 1721.084, 1760.0, 1799.796, 1840.492, 1882.108, 1924.665, 1968.185, 2012.688, 2058.198, 2104.737, 2152.328, 2200.995, 2250.763, 2301.656, 2353.7, 2406.92, 2461.344, 2516.999, 2573.912, 2632.111, 2691.627, 2752.489, 2814.727, 2878.372, 2943.456, 3010.011, 3078.072, 3147.672, 3218.845, 3291.628, 3366.056, 3442.168, 3520.0, 3599.592, 3680.984, 3764.217, 3849.331, 3936.37, 4025.377, 4116.396, 4209.474, 4304.656, 4401.991, 4501.526, 4603.312, 4707.399, 4813.84, 4922.688, 5033.997, 5147.823, 5264.223, 5383.255, 5504.978, 5629.453, 5756.743, 5886.911, 6020.023, 6156.144, 6295.344, 6437.69, 6583.256, 6732.113, 6884.335, 7040.0, 7199.185, 7361.968, 7528.433, 7698.662, 7872.74, 8050.753, 8232.793, 8418.948, 8609.312, 8803.981, 9003.052, 9206.624, 9414.799, 9627.681, 9845.377, 10067.995, 10295.647, 10528.446, 10766.509, 11009.955, 11258.906, 11513.486, 11773.823, 12040.046, 12312.289, 12590.687, 12875.381, 13166.511, 13464.225, 13768.671, 14080.0]
# G3 op 119
set :offset, 119 # we start in the key of G
define :speel do |notes_to_play, duration|
for n in notes_to_play do
note = hz_to_midi(freqs[get[:offset] + n]) + 12
puts n, note
play note, sustain: duration, attack: 0.05, release: 0.1, amp: 0.6, pan: rrand(-0.8,0.8)
end
sleep duration
end
with_fx :ping_pong do
with_fx :distortion, distort: 0.8 do
with_fx :slicer, phase: 0.125, probability: 0.1 do
live_loop :melody do
use_synth :saw
speel [18], 0.579 # D
speel [0], 2.148 # G
sleep 0.218
speel [19], 0.417 # D+
speel [14], 0.178 # C+
speel [8], 2.391 # Bb
sleep 0.442
speel [16], 0.223 # Db
speel [26], 0.333 # F
speel [21], 3.408 # Eb
speel [38], 0.247 # A#
speel [36], 0.348 # A
speel [32], 4 # G+
end
end
end
end
Sonic Pi is actually quite capable of pitch shifting, here I play the voice at half speed, dropping an octave, but then the pitch_shift pulls it back up an octave. First it sounded like crap but adding pitch_dis: 0.04
fixed it.
You’ll need the sample but the forum does not allow me to upload wav files.
with_fx :reverb, room: 0.9 do
with_fx :pitch_shift, pitch: 12, pitch_dis: 0.04 do
live_loop :buuvei do
buuvei = "/home/roel//31-edo-buvei/buuvei-m1-4.wav"
sample buuvei, rate: 0.5, amp: 2
stop
end
end
end
The ticking middle part, this lacks effects and in the song it’s layered with chords and effects but this was the basis for it:
freqs = [27.5, 28.122, 28.758, 29.408, 30.073, 30.753, 31.448, 32.159, 32.887, 33.63, 34.391, 35.168, 35.963, 36.777, 37.608, 38.459, 39.328, 40.217, 41.127, 42.057, 43.008, 43.98, 44.975, 45.991, 47.031, 48.095, 49.182, 50.294, 51.432, 52.595, 53.784, 55.0, 56.244, 57.515, 58.816, 60.146, 61.506, 62.897, 64.319, 65.773, 67.26, 68.781, 70.336, 71.927, 73.553, 75.216, 76.917, 78.656, 80.435, 82.253, 84.113, 86.015, 87.96, 89.949, 91.983, 94.063, 96.19, 98.365, 100.589, 102.863, 105.189, 107.568, 110.0, 112.487, 115.031, 117.632, 120.292, 123.012, 125.793, 128.637, 131.546, 134.521, 137.562, 140.673, 143.853, 147.106, 150.433, 153.834, 157.312, 160.869, 164.507, 168.227, 172.031, 175.92, 179.898, 183.966, 188.126, 192.38, 196.729, 201.178, 205.727, 210.379, 215.135, 220.0, 224.975, 230.062, 235.264, 240.583, 246.023, 251.586, 257.275, 263.092, 269.041, 275.124, 281.345, 287.707, 294.212, 300.865, 307.668, 314.625, 321.739, 329.014, 336.453, 344.061, 351.841, 359.796, 367.932, 376.251, 384.759, 393.459, 402.356, 411.453, 420.757, 430.271, 440.0, 449.949, 460.123, 470.527, 481.166, 492.046, 503.172, 514.55, 526.184, 538.082, 550.249, 562.691, 575.414, 588.425, 601.73, 615.336, 629.25, 643.478, 658.028, 672.907, 688.122, 703.682, 719.593, 735.864, 752.503, 769.518, 786.918, 804.711, 822.907, 841.514, 860.542, 880.0, 899.898, 920.246, 941.054, 962.333, 984.092, 1006.344, 1029.099, 1052.368, 1076.164, 1100.498, 1125.381, 1150.828, 1176.85, 1203.46, 1230.672, 1258.499, 1286.956, 1316.056, 1345.814, 1376.244, 1407.363, 1439.186, 1471.728, 1505.006, 1539.036, 1573.836, 1609.423, 1645.814, 1683.028, 1721.084, 1760.0, 1799.796, 1840.492, 1882.108, 1924.665, 1968.185, 2012.688, 2058.198, 2104.737, 2152.328, 2200.995, 2250.763, 2301.656, 2353.7, 2406.92, 2461.344, 2516.999, 2573.912, 2632.111, 2691.627, 2752.489, 2814.727, 2878.372, 2943.456, 3010.011, 3078.072, 3147.672, 3218.845, 3291.628, 3366.056, 3442.168, 3520.0, 3599.592, 3680.984, 3764.217, 3849.331, 3936.37, 4025.377, 4116.396, 4209.474, 4304.656, 4401.991, 4501.526, 4603.312, 4707.399, 4813.84, 4922.688, 5033.997, 5147.823, 5264.223, 5383.255, 5504.978, 5629.453, 5756.743, 5886.911, 6020.023, 6156.144, 6295.344, 6437.69, 6583.256, 6732.113, 6884.335, 7040.0, 7199.185, 7361.968, 7528.433, 7698.662, 7872.74, 8050.753, 8232.793, 8418.948, 8609.312, 8803.981, 9003.052, 9206.624, 9414.799, 9627.681, 9845.377, 10067.995, 10295.647, 10528.446, 10766.509, 11009.955, 11258.906, 11513.486, 11773.823, 12040.046, 12312.289, 12590.687, 12875.381, 13166.511, 13464.225, 13768.671, 14080.0]
# G3 op 119
set :offset, 119 # we start in the key of G
define :get_midi do |note|
midi_note = hz_to_midi(freqs[get[:offset] + note])
return midi_note
end
live_loop :basic_beat do
cue :start7tellen
2.times do
cue :maatvan2
sample :perc_bell, beat_stretch: 0.35
sleep 0.5
sample :perc_bell, beat_stretch: 0.15, amp: 0.5
sleep 0.5
end
cue :maatvan3
sample :perc_bell, beat_stretch: 0.3
sleep 0.5
sample :perc_bell, beat_stretch: 0.2, amp: 0.5
sleep 0.5
sample :perc_bell, beat_stretch: 0.25, amp: 0.4
sleep 0.5
end
live_loop :ritme3tegen2 do
sync :maatvan2
3.times do
sample :perc_bell, amp: 0.4, beat_stretch: 0.2
sleep 1.0 / 3
end
sleep -0.2
end
live_loop :ritme5tegen3 do
sync :maatvan3
5.times do
sample :perc_bell, amp: 0.4, beat_stretch: 0.2
sleep 1.5 / 5
end
sleep -0.2
end
live_loop :ritme11tegen7 do
sync :start7tellen
use_synth :saw
n1 = get_midi(31)
n2 = get_midi(0)
n3 = get_midi(18)
n4 = get_midi(14)
n5 = get_midi(8)
n6 = get_midi(26)
n7 = get_midi(21)
with_fx :reverb, room: 0.99, damp: 0.3, mix: 0.6 do
11.times do
play [n1,n2,n3,n4,n5,n6,n7].pick + [0,31,62].pick, amp: 0.06, pan: rrand(-1,1), attack: 0.01, sustain: 0.05, decay: 0, release: 0.05 if one_in(1)
sleep 3.5 / 11
end
end
sleep -0.2
end
live_loop :lange_noot do
sync :start7tellen
use_synth :supersaw
with_fx :reverb, room: 0.99, damp: 0.2, mix: 0.8 do
n = [0, 0, 0, 8, 14, 21, 26, 31].choose
puts(n)
play get_midi(n), amp: 0.04, attack: 1, sustain: 0, release: 9, pan: rrand(-0.7,0.7) if one_in(2)
end
end
If you have questions about the song or a sound in particular I’ll do my best to answer
Please let me know what you think, I need feedback to learn and improve