Skip to content

Instantly share code, notes, and snippets.

@claritee
Last active June 11, 2018 08:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save claritee/753811cc42ee4d304dba3399a4d57fa1 to your computer and use it in GitHub Desktop.
Save claritee/753811cc42ee4d304dba3399a4d57fa1 to your computer and use it in GitHub Desktop.
Accompanying examples for sonic pi workshop demo

Accompanying live walkthrough for workshops

1. Play a note

play 50
play 50
play 55
play 62

As an array

play [50, 55, 62]

Introduce Sleep

play 50
sleep 1
play 55
sleep 1
play 62

Introduce notes

play :c3
sleep 1
play :d3
sleep 1
play :e3

Introduce sound and release

play :c3, amp: 0.3, release: 0.5
sleep 1
play :d3, amp: 0.7, release: 1
sleep 1
play :e3, amp: 10.0, release: 2

2. Choosing synths

use_synth :piano #:piano, :fm

3. Playing scales

play_pattern_timed scale(:c3, :major), 0.3, release: 0.5

4. Playing Chords

play chord(:C3, :major), release: 1.5
sleep 1
play chord(:D3, :major), release: 1.5
sleep 1
play chord(:G3, :major), release: 1.5
sleep 1

Example song: twinkle twinkle

play :C3, release: 1
sleep 0.5
play :C3, release: 1
sleep 0.5
play :G3, release: 1
sleep 0.5
play :G3, release: 1
sleep 0.5
play :A3, release: 1
sleep 0.5
play :A3, release: 1
sleep 0.5
play :G3, release: 1.5
sleep 1
play :F3, release: 1
sleep 0.5
play :F3, release: 1
sleep 0.5
play :E3, release: 1
sleep 0.5
play :E3, release: 1
sleep 0.5
play :D3, release: 1
sleep 0.5
play :D3, release: 1
sleep 0.5
play :C3, release: 1.5
sleep 1

5. As an array

play_pattern_timed [:C3, :C3, :G3, :G3, :A3, :A3], 0.5, release: 0.5
play :G3, release: 1

6. Loops

Specify how many times

5.times do
  play :c3
  sleep 0.5
end

Infinite loop

loop do
  play 60
  sleep 1
end

Playing samples

2.times do
  sample :loop_amen
  sleep 1
end
loop do
  sample :perc_bell, rate: (rrand 0.125, 1.5)
  sleep rrand(0,2)
end

Defining your own sound

define :my_sound do
  play 50
  sleep 1
end

in_thread(name: :looper) do
  loop do
    my_sound
  end
end

7. Live Coding

live_loop :foo do
  use_synth :piano #:mod_pulse, :mod_fm
  play :c4, release: 0.8
  sleep 0.5
  play :d4, release: 0.5
  sleep 0.5
  play :e4, release: 0.5
  sleep 0.5
end

live_loop :bar do
  sync :foo
  sample :loop_amen  #:ambi_piano, :ambi_glass_hum, :loop_breakbeat, :loop_amen
  sleep 0.5
end

8. Examples to show at the end:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment