I took a Junior Interdisciplinary Seminar class in my third year of undergrad at Truman State University. The theme of the class was "Rock Music - The British Invastion."
Our final project was to use techniques from multiple disciplines to produce a creative response to something we learned about in class. 1000_Days_a_Week.rb (pronounced "Eight Days a Week", for those who don't speak binary) combines computer science and music to play an arrangement of my favorite Beatles tune using Sonic Pi.
Check out the audio and the source code below:
# Welcome to Sonic Pi v3.1
use_bpm 135
define :be_a_starr do
2.times do
sample :bd_haus, amp: 0.7
sample :drum_cymbal_open, amp: 0.5
wait 1
sample :sn_generic, amp: 0.7
sample :drum_cymbal_open, amp: 0.5
wait 1
end
end
define :four_on_the_floor do
4.times do
sample :bd_haus
sleep 0.99
end
end
define :george_guitar do |note|
use_synth :pluck
12.times do
play note, release: 0.4, amp: 0.8
sleep 0.33
end
end
define :triplet_bass do |note|
use_synth :chipbass
12.times do
play note, release: 0.4
sleep 0.33
end
end
define :intro_guitar do |root, third, fifth, sixth|
use_synth :chiplead
play root, release: 1.66, amp: 0.5
play third, release: 1.66, amp: 0.5
play fifth, release: 1.66, amp: 0.5
sleep 1.66
play root, amp: 0.5
play third, amp: 0.5
##| bend it like Lennon
s = play fifth, release: 1.99, amp: 0.8, note_slide: 0.55
sleep 0.33
play root, release: 1.32, amp: 0.5
play third, release: 1.32, amp: 0.5
control s, note: sixth
sleep 0.99
play root, release: 0.99, amp: 0.5
play third, release: 0.99, amp: 0.5
play fifth, release: 0.99, amp: 0.5
sleep 0.99
end
define :intro do
in_thread do
triplet_bass :D3
triplet_bass :E3
triplet_bass :G3
triplet_bass :D3
end
in_thread do
4.times do
george_guitar :D3
end
end
in_thread do
4.times do
four_on_the_floor
end
end
intro_guitar :D4, :Fs4, :A4, :B4
intro_guitar :E4, :Gs4, :B4, :Cs5
intro_guitar :G4, :B4, :D5, :E5
intro_guitar :D4, :Fs4, :A4, :B4
end
define :paul_bass do |one, two, three, four|
use_synth :chipbass
play one, release: 1, amp: 1.5
sleep 1
play two, release: 1, amp: 1.5
sleep 1
play three, release: 1, amp: 1.5
sleep 1
play four, release: 1, amp: 1.5
sleep 1
end
define :verse_guitar do |one, two, three|
use_synth :prophet
sleep 1
play one, release: 0.5
play two, release: 0.5
play three, release: 0.5
sleep 1.66
play one, release: 0.5
play two, release: 0.5
play three, release: 0.5
sleep 0.99
play one, release: 0.5
play two, release: 0.5
sleep 0.35
end
define :verse_vocals do
use_synth :chiplead
2.times do
play :Fs4, amp: 1.25
sleep 1
play :E4, amp: 1.25
sleep 1
play :D4, amp: 1.25
sleep 1
s = play :D4, release: 1.99, amp: 1.25, note_slide: 0.1
sleep 0.665
control s, note: :E4
sleep 0.335
play :E4, amp: 1.25
sleep 1.665
play :B3, amp: 1.25
sleep 2.335
play :B3, amp: 1.25
sleep 1
play :D4, amp: 1.25
sleep 1
play :G4, amp: 1.25
sleep 1
play :G4, amp: 1.25
sleep 0.665
play :Fs4, amp: 1.25
sleep 4.335
end
end
define :verse do
in_thread do
use_synth :chiplead
play :D4, release: 4, amp: 0.5
play :Fs4, release: 4, amp: 0.5
play :A4, release: 4, amp: 0.5
end
in_thread do
8.times do
be_a_starr
end
end
in_thread do
2.times do
paul_bass :D3, :B2, :A2, :Fs2
paul_bass :E2, :Gs2, :B2, :Gs2
paul_bass :G2, :B2, :D3, :B2
paul_bass :D3, :B2, :A2, :Fs2
end
end
in_thread do
2.times do
verse_guitar :A3, :D4, :Fs4
verse_guitar :Gs3, :B3, :E4
verse_guitar :B3, :D4, :G4
verse_guitar :A3, :D4, :Fs4
end
end
verse_vocals
end
define :chorus do
end
intro
verse
Click or tap the images to view some of the projects I’ve worked on and some of the ways I’ve performed and produced music.
Feel free to reach out if you have any questions, or if you’d like to collaborate.