-
Notifications
You must be signed in to change notification settings - Fork 0
/
dp_str_5.rb
77 lines (71 loc) · 1.55 KB
/
dp_str_5.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
# key: dp str 5
# point_line: 0
# point_index: 0
# --
# DP STR 5
# Track5 - Mixing behaviour from all tracks (1,2,3)
set_volume! 1
##| track = Track1.new(ext_samples_path)
##| track = Track2.new(ext_samples_path)
##| track = Track3.new(ext_samples_path)
##| track = Track4.new(ext_samples_path)
track = Track5.new(ext_samples_path)
live_loop :metronome do
use_bpm track.tempo
puts "---> Bar: #{tick} <---"
32.times do |b|
puts "# Beat: #{b}"
##| sample :drum_snare_hard
sleep 1
end
end
live_loop :vocal do
# stop
use_bpm track.tempo
sync :metronome
track.vocal['times'].times do
sleep track.vocal['sleep_before']
sample track.vocal['sample'],
start: track.vocal['sample_start'],
finish: track.vocal['sample_finish']
sleep track.vocal['sleep_after']
end
end
live_loop :background do
##| stop
use_bpm track.tempo
sync :metronome
use_synth :piano
if track.bg
track.bg.size.times do |n|
play track.bg[n][0], sustain: track.bg[n][1]
sleep track.bg[n][2] * 2
end
end
end
live_loop :melody do
##| stop
sync :metronome
use_bpm track.tempo
use_synth :piano
melody = track.melody
if melody
melody.size.times do |n|
play melody[n][0], decay: melody[n][1]
sleep melody[n][2] * 2
end
end
end
live_loop :beat do
##| stop
sync :metronome
use_bpm track.tempo
if track.beat
track.beat['times'].times do
sample track.beat['sample'],
beat_stretch: track.beat['stretch'],
amp: 0.7
sleep track.beat['sleep']
end
end
end