80 lines
1.7 KiB
Ruby
80 lines
1.7 KiB
Ruby
|
# Welcome to Sonic Pi v2.6
|
||
|
# Acid
|
||
|
# Coded by Sam Aaron
|
||
|
# Hacked around by RJS & JHR
|
||
|
# This file should be in /home/pi/world-o-techno so the startup script can find it
|
||
|
|
||
|
# GPS ruby code derived from https://github.com/ndarilek/rb-gps
|
||
|
#
|
||
|
require '/home/pi/world-o-techno/gps/gps.rb'
|
||
|
|
||
|
gps = Gps::Receiver.create('gpsd',:host => 'localhost', :port => 2947)
|
||
|
|
||
|
gps.start
|
||
|
|
||
|
sleep 2
|
||
|
|
||
|
puts gps.latitude
|
||
|
|
||
|
|
||
|
|
||
|
use_debug false
|
||
|
load_sample :bd_fat
|
||
|
|
||
|
8.times do
|
||
|
sample :bd_fat, amp: (line 0, 5, steps: 8).tick
|
||
|
sleep 0.5
|
||
|
end
|
||
|
|
||
|
live_loop :drums do
|
||
|
sample :bd_fat, amp: 5
|
||
|
sleep 0.5
|
||
|
end
|
||
|
|
||
|
live_loop :acid do
|
||
|
cue :foo
|
||
|
4.times do |i|
|
||
|
long = (gps.longitude.abs * 10**9) % 100
|
||
|
use_random_seed long
|
||
|
16.times do
|
||
|
use_synth :tb303
|
||
|
play chord(:e5, :minor).choose, attack: 0, release: 0.1, cutoff: rrand_i(50, 90) + i * 10
|
||
|
sleep 0.125
|
||
|
end
|
||
|
end
|
||
|
|
||
|
cue :bar
|
||
|
use_synth :tb303
|
||
|
32.times do |i|
|
||
|
gspeed = gps.speed.modulo(1)
|
||
|
puts gspeed
|
||
|
play chord(:b4, :minor).choose, attack: 0, release: 0.05, cutoff: rrand_i(70, 98) + i, res: gspeed
|
||
|
sleep 0.125
|
||
|
end
|
||
|
|
||
|
cue :baz
|
||
|
with_fx :reverb, mix: 0.3 do |r|
|
||
|
32.times do |m|
|
||
|
control r, mix: 0.3 + (0.5 * (m.to_f / 32.0)) unless m == 0 if m % 8 == 0
|
||
|
use_synth :prophet
|
||
|
play chord(:e6, :minor).choose, attack: 0, release: 0.08, cutoff: rrand_i(110, 130)
|
||
|
sleep 0.125
|
||
|
end
|
||
|
end
|
||
|
|
||
|
cue :quux
|
||
|
in_thread do
|
||
|
use_random_seed 668
|
||
|
slat = (gps.latitude.abs * 10**7).modulo(1)
|
||
|
with_fx :slicer, mix: 0.75, wave: 3, phase: slat do
|
||
|
16.times do
|
||
|
use_synth :tb303
|
||
|
play chord(:d3, :major).choose, attack: 0, release: 0.1, cutoff: rrand(50, 100)
|
||
|
sleep 0.25
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
sleep 4
|
||
|
end
|