# ZynAddSubFx Channel 1 net_wisdon 50 Aura, Channel 2 and 3 SynthPiano, 32 Analog Piano 1, 34 Analog Piano 2
use_bpm 92
midi_cc 7,85,channel: 1
midi_cc 10,27,channel: 1
midi_cc 7,90,channel: 2
midi_cc 10,100,channel: 2
midi_cc 7,90,channel: 3
midi_cc 10,100,channel: 3
# ONN
define :onn do |v=0|
live_loop :onn do
if v == 0 then
midi_all_notes_off
stop
end
cue :d
sleep 4
cue :ya
sleep 4
end
end
# CHORDS
define :chords do |v=0|
live_loop :chords do
if v == 0 then
midi_all_notes_off
stop
end
sync :ya
4.times do
midi_note_on chord(:e3, :minor7).tick, release: 1.5, amp: 0.8
end
sleep 1.5
4.times do
midi_note_off chord(:e3,:minor7).tick
end
sleep 0.5
4.times do
midi_note_on chord(:c3, :major7).tick, release: 1.5, amp: 0.8
end
sleep 1.5
4.times do
midi_note_off chord(:c3,:major7).tick
end
sleep 0.5
4.times do
midi_note_on chord(:g3, :major7).tick, release: 1.5, amp: 0.8
end
sleep 1.5
4.times do
midi_note_off chord(:g3,:major7).tick
end
sleep 0.5
3.times do
midi_note_on chord(:d3, :sus2).tick, release: 1.5, amp: 0.8
end
sleep 1.5
3.times do
midi_note_off chord(:d3,:sus2).tick
end
sleep 0.5
end
end
# ARPEGIOS
define :arpegios do |v=0|
live_loop :arpegios do
if v == 0 then
midi_all_notes_off
stop
end
sync :ya
use_synth :bass_foundation
4.times do
play chord(:e3, :minor7).tick, release: 2, amp: 0.4
sleep 0.5
end
4.times do
play chord(:c3, :major7).tick, release: 2, amp: 0.4
sleep 0.5
end
4.times do
play chord(:g3, :major7).tick, release: 2, amp: 0.4
sleep 0.5
end
4.times do
play chord(:d3, :sus2).tick, release: 2, amp: 0.4
sleep 0.4995
end
end
end
# DRUMS
define :drums do |v=0|
live_loop :drums do
if v == 0 then
stop
end
sync :d
sample :bd_haus, amp: 2
sleep 1
sample :sn_dolf, amp: 1
sleep 1
sample :bd_haus, amp: 1.8
sleep 1
sync :ya
sample :sn_dolf, amp: 1
sleep 1
end
live_loop :hats do
if v == 0 then
stop
end
sync :ya
16.times do
sample :drum_cymbal_closed, amp: 0.4
sleep 0.25
end
end
live_loop :glitch do
if v == 0 then
stop
end
sync :ya
sleep 4
sample :vinyl_backspin, rate: 0.8, amp: 0.6
end
end
# MELODIA
melodia = []
escala = scale(:g3,:major_pentatonic,num_octaves: 1)
define :melodia do |v=0|
use_random_seed 321
27.times do |i|
melodia[i]= escala.choose
end
live_loop :pad do
#stop
sync :ya
2.times do
9.times do |i|
c = [2,3].choose
a = melodia [i+v]
midi_note_on a, channel: c
midi_cc 65,[0,25,50,100].choose ,channel: c
sleep 1
sleep 0.5 if spread(5,16)
midi_note_off a,channel: c
end
sleep 2
end
melodia([9,0,9,0,18,0,18,0].tick)
end
end
onn(1)
chords(1)
sleep 8
arpegios(1)
sleep 8
drums(1)
sleep 16
melodia()