View answeringchords.rb
#answeringchords.rb by Robin Newman, June 2018
#I was playing around with some chords and hit on a sequence I really liked
#It developed into this piece which I find somewhat hypnotic
#I love the thick textures which worked well with the blade synth
#The sequence is repetitive, moving to differnt pitches
#I used my Sonic Pi polysynth program with a keyboard to compose this.
use_synth :blade
use_bpm 120
with_fx :level,amp: 0 do |v|
control v,amp: 1, amp_slide: 8 #fade in at start
View BWV2018mix.rb
#BWV1068 arranged for Sonic Pi by Robin Newman, June 2018
#play it using run_file "path/to/file/BWV2018mix.rb"
s=0 #set starting tempo index Used for adjusting final rit timings,set to 1
with_fx :level,amp: 0.8 do
with_fx :reverb, room: 0.6,mix: 0.7 do
use_synth :tri
#Tune part
View BobbieShaftoe.rb
#Bobbie Shaftoe arranged for Sonic Pi glockenspeil by Robin Newman June 2018
use_osc "localhost",8000
use_debug false
define :notenum do |n|
nl=(scale :c6,:major,num_octaves: 2)[0..9]+[note(:fs6)]
return nl.index note(n)
use_synth :pluck
use_bpm 240
View ThereminPlus.rb
#Theremin plus, controlling pitch and ixi_techno phase by Robin Newman May 2018
#I control a continously playing note (length 2000)
use_debug false
define :putsPretty do |n,p|
return num
define :scalev do |v,l,h|
View FibonacciMomentum.rb
#Fibonacci Momentum by Robin Newman May 2018
#This piece generates number in the Fibonacci Sequence where each new number
#is the sum of the previous two. The numbers are converted to binary
#using a recursive function and then these are then used to control the playing of two notes.
#The binary digits are read progressively from each end of the binary number.
#If the digits are the same the first note plays, if they are different the second note plays.
#The pitch of the first note is controlled by its position from the start of the number.
#The pitch of the 2nd note is controlled by its position from the end of the number.
#In each case the pitches are taken from a ring based on notes from either
#the :e2 :minor_pentatonic or :harmonic_minor scales.
View arpeggios_on_a_tb303_bass.rb
#Arpeggios on a tb303 bass by Robin Newman, April 2018
#I first wrote the percussion live loops, liked them, and then thought it would be nice to have a melody on top of this.
#I found a list of chord progressions in :c at
#and started to play with them, ending up with the program below. The triad chords in each progression are played as arpeggios
#with the first note added as a fourth note an octave below throughout the duration of the arpeggio.
#Each progression has a transpose offset applied in a sequence of 0,5,7,-5 and the tonic note of the sequence
#is played an octave lower using :tb303 synth acting as a pedal note. To add interest, the cuttoff value
#is cycled 4 times during the progress of each chord progression.
#The sequence is repeated 5 times with the volume faded up or down in each sequence.
View debrisplustomtoms.rb
#Tomtom rhythms found on wikipedia,_six_beats.png
#form the basis of this piece coded for Sonic PI by Robin Newman, December 2017
#version 2, more interesting bass. Best with a pair of decent speakers with good bass response!
# here played together with my piece Debris
l1=(ring 1,0,1,0,1,0,1,0,1,0,1,0)
l2=(ring 0,1,0,1,0,1,0,1,0,1,0,1)
l3=(ring 0,1,0,0,1,1,0,1,0,1,0,1)
l4=(ring 1,0,1,0,1,1,0,1,0,1,0,1)
View PachabelCanonAndGigue-RF.rb
#arranged for Sonic Pi by Robin Newman, March 2018
with_fx :reverb,room: 0.6,mix: 0.6 do
with_fx :level,amp: 0.6 do
use_synth :blade
View levibackingtrack.rb
#backingtrack inspired by Levi Niha's video
#developed by Robin Newman, March 2018
use_bpm 72
#next section of code deals with stopping the track cleanly
#"at" command used for timing
#triggering the final drums and chord
no_cycles=3 #adjust for length required
set :kill,false
sleep 0.5
at no_cycles*16 do
View playPurcell-RF.rb
#run using: run_file "path-to-the-file/playPurcell-RF.rb"
with_fx :reverb,room: 0.8,mix: 0.6 do
use_synth :piano
use_synth_defaults stereo_width: 0.6