Skip to content

Instantly share code, notes, and snippets.

@jesusninoc
Forked from darinwilson/sonic_pi_examples.txt
Created November 6, 2019 15:11
Show Gist options
  • Save jesusninoc/567b3735e4a1e72b718af109a0833989 to your computer and use it in GitHub Desktop.
Save jesusninoc/567b3735e4a1e72b718af109a0833989 to your computer and use it in GitHub Desktop.

Revisions

  1. @darinwilson darinwilson renamed this gist Nov 6, 2015. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. @darinwilson darinwilson revised this gist Nov 6, 2015. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -163,7 +163,7 @@ end
    ## Example 16 - a better way to thread
    live_loop :beeps do
    start_note = ring(60, 62, 63, 62).tick
    my_chord = chord(start_note, :maj9)
    my_chord = chord(start_note, :M7)
    play my_chord, release: 2
    16.times do
    play my_chord.choose, release: 0.25, amp: [0.75, 0.5, 0.25].choose
  3. @darinwilson darinwilson created this gist Nov 6, 2015.
    230 changes: 230 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,230 @@
    ##############################################
    ## Example 1 - play a note
    play 60


    ##############################################
    ## Example 2 - play 4 random notes
    4.times do
    play rrand_i(60, 90)
    sleep 0.5
    end


    ##############################################
    ## Example 3 - play a major chord
    play chord(60, :M)


    ##############################################
    ## Example 4 - play an arpeggio
    loop do
    play chord(60, :M7).tick
    sleep 0.5
    end


    ##############################################
    ## Example 5 - play a chord with an arpeggio
    loop do
    play chord(60, :M7), release: 3
    16.times do
    play chord(60, :M7).choose
    sleep 0.25
    end
    end


    ##############################################
    ## Example 6 - play a shifting chord with an arpeggio
    start_notes = ring(60, 62, 63, 62)
    loop do
    my_chord = chord(start_notes.tick, :M7)
    play my_chord, release: 2
    16.times do
    play my_chord.choose
    sleep 0.125
    end
    end


    ##############################################
    ## Example 7 - play a sample
    sample :drum_bass_hard


    ##############################################
    ## Example 8 - play a simple drum beat
    loop do
    sample :bd_haus
    sleep 0.5
    end


    ##############################################
    ## Example 9 - alternate kick and snare
    loop do
    if tick.even?
    sample :bd_haus
    else
    sample :sn_dolf
    end
    sleep 0.5
    end


    ##############################################
    ## Example 10 - combine kick, snare and hi-hat
    loop do
    sample :drum_cymbal_closed
    if tick.even?
    sample :bd_haus
    else
    sample :sn_dolf
    end
    sleep 0.25
    sample :drum_cymbal_closed
    sleep 0.25
    end


    ##############################################
    ## Example 11 - play a drum loop once
    sample :loop_amen


    ##############################################
    ## Example 12 - play a drum loop as a loop
    loop do
    sample :loop_amen
    sleep sample_duration(:loop_amen)
    end


    ##############################################
    ## Example 13 - try to combine melody, harmony, rhythm (doesn't work)
    loop do
    start_note = ring(60, 62, 63, 62).tick
    my_chord = chord(start_note, :M7)
    play my_chord, release: 2
    16.times do
    play my_chord.choose, release: 0.25, amp: [0.75, 0.5, 0.25].choose
    sleep 0.125
    end
    end

    loop do
    sample :loop_amen
    sleep sample_duration(:loop_amen)
    end


    ##############################################
    ## Example 14 - a fix for Example 13, using threads (drums out of sync)
    in_thread do
    loop do
    start_note = ring(60, 62, 63, 62).tick
    my_chord = chord(start_note, :M7)
    play my_chord, release: 2
    16.times do
    play my_chord.choose, release: 0.25, amp: [0.75, 0.5, 0.25].choose
    sleep 0.125
    end
    end
    end

    loop do
    sample :loop_amen
    sleep sample_duration(:loop_amen)
    end


    ##############################################
    ## Example 15 - a fix for Example 14, drums now in sync
    in_thread do
    loop do
    start_note = ring(60, 62, 63, 62).tick
    my_chord = chord(start_note, :M7)
    play my_chord, release: 2
    16.times do
    play my_chord.choose, release: 0.25, amp: [0.75, 0.5, 0.25].choose
    sleep 0.125
    end
    end
    end

    loop do
    sample :loop_amen, beat_stretch: 2
    sleep 2
    end


    ##############################################
    ## Example 16 - a better way to thread
    live_loop :beeps do
    start_note = ring(60, 62, 63, 62).tick
    my_chord = chord(start_note, :maj9)
    play my_chord, release: 2
    16.times do
    play my_chord.choose, release: 0.25, amp: [0.75, 0.5, 0.25].choose
    sleep 0.125
    end
    end

    live_loop :drums do
    sample :loop_amen, beat_stretch: 2
    sleep 2
    end


    ##############################################
    ## Example 17 - use a different synth
    use_synth :saw
    loop do
    play scale(60, :major).choose
    sleep 0.25
    end


    ##############################################
    ## Example 18 - a simple pattern to demo effects
    play 50
    sleep 0.5
    sample :elec_plip
    sleep 0.5
    play 62


    ##############################################
    ## Example 19 - adding reverb
    with_fx :reverb do
    play 50
    sleep 0.5
    sample :elec_plip
    sleep 0.5
    play 62
    end


    ##############################################
    ## Example 20 - adding echo
    with_fx :echo do
    play 50
    sleep 0.5
    sample :elec_plip
    sleep 0.5
    play 62
    end


    ##############################################
    ## Example 21 - adding reverb and echo together
    with_fx :echo do
    with_fx :reverb do
    play 50
    sleep 0.5
    sample :elec_plip
    sleep 0.5
    play 62
    end
    end