-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgood_days.rb
147 lines (126 loc) · 3.08 KB
/
good_days.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
microkorg = "/Users/streamerd/devel/musicode/samples/3microkorg"
violins = "/Users/streamerd/devel/musicode/samples/Violins"
tambour = "/Users/streamerd/devel/musicode/samples/Tambour"
basses = "/Users/streamerd/devel/musicode/samples/Basses"
use_bpm 90 # Moderate tempo for a long journey
# Deep bass foundation
live_loop :deep_bass_journey do
with_fx :lpf, cutoff: 70 do
sample microkorg, "MicrodeepBass", amp: 0.7, beat_stretch: 8
sleep 8
end
end
# Rhythmic tambour pattern
live_loop :tambour_rhythm do
pattern = [:hit_f, :rest, :hit_mf, :rest, :hit_f, :hit_mf, :rest, :hit_mf]
pattern.each do |hit|
if hit != :rest
sample tambour, hit.to_s.gsub("_", "-"),
amp: 0.5,
attack: 0.05,
release: 0.3
end
sleep 1
end
end
# Violin main theme
live_loop :violin_theme do
use_random_seed 567
16.times do |i|
violin_notes = ["violin-a4", "violin-c5", "violin-e5", "violin-g4"]
with_fx :reverb, room: 0.8, mix: 0.6 do
sample violins, violin_notes[i % 4],
amp: 0.4,
attack: 0.1,
release: 1.5
sleep 2
end
end
end
# Bass progression
live_loop :bass_progression do
bass_pattern = [
"basses-sus-c2", "basses-sus-f#2",
"basses-sus-a2", "basses-sus-c2"
]
8.times do |i|
with_fx :reverb, room: 0.7 do
sample basses, bass_pattern[i % 4],
amp: 0.5,
attack: 0.2,
release: 2.0
sleep 4
end
end
end
# Long violin phrases
live_loop :violin_phrases do
use_random_seed 789
4.times do
with_fx :echo, phase: 0.75, decay: 4 do
sample violins, ["violin-e4", "violin-a4"].choose,
amp: 0.3,
attack: 0.5,
release: 3.0
sleep 8
end
end
end
# Dramatic middle section
live_loop :dramatic_build do
# Wait for a while before starting
sleep 32
12.times do |i|
with_fx :reverb, room: 0.9 do
# Increasing intensity
amp_value = 0.3 + (i * 0.05)
sample violins, "violin-c5",
amp: amp_value,
rate: 1 + (i * 0.1),
attack: 0.2,
release: 1.0
sample basses, "basses-sus-c2",
amp: amp_value,
attack: 0.1,
release: 0.8
sample tambour, "hit-f",
amp: amp_value,
rate: 0.8
sleep [4, 2, 1][i % 3] # Accelerating rhythm
end
end
# Reset with a long pause
sleep 16
end
# Interweaving violins
live_loop :violin_weave do
use_random_seed 234
6.times do |i|
with_fx :echo, phase: 0.5, decay: 2 do
2.times do
sample violins, ["violin-g4", "violin-e5", "violin-a4"].ring[i],
amp: 0.25,
attack: 0.1,
release: 0.8
sleep 1
end
end
end
end
# Optional: Uncomment for additional bass texture
# live_loop :bass_texture do
# sleep 24 # Wait before starting
#
# 8.times do |i|
# with_fx :wobble, phase: 0.5 do
# sample microkorg, "Micro fat bass 4",
# amp: 0.4,
# rate: 0.8,
# attack: 0.2,
# release: 1.0
# sleep 8
# end
# end
#
# sleep 16 # Rest before repeating
# end