Skip to content

Instantly share code, notes, and snippets.

@TuxedoCat619
Last active November 3, 2021 06:13
Show Gist options
  • Save TuxedoCat619/f72973a884390c9bce2346f46b83bf46 to your computer and use it in GitHub Desktop.
Save TuxedoCat619/f72973a884390c9bce2346f46b83bf46 to your computer and use it in GitHub Desktop.
SPHERES - SONIC PI CODE
# Coded by SonicPit
#
# Taken from "Beats basteln wie die Großen"
# c't 13/2017
# Note: requires a powerful machine to run smoothly.
use_bpm 50
# CHORD CONTROL
# This part provides two rings called "chord_high" and "chord_low".
# They always contain the "permitted" notes in order that everything will be in tune.
# You can use them in other live loops to select notes.
chord_1 = chord :c4, :maj9, num_octaves: 3
chord_2 = chord :es4, :maj9, num_octaves: 3
chord_3 = chord :b3, :maj9, num_octaves: 3
chord_4 = chord :d4, :maj9, num_octaves: 3
chord_low_1 = chord :c2, :maj9
chord_low_2 = chord :es2, :maj9
chord_low_3 = chord :b1, :maj9
chord_low_4 = chord :d2, :maj9
chord_high = chord_1
chord_low = chord_low_1
live_loop :chord_selector, delay: -0.5 do
chord_high = (knit(chord_1, 2, chord_2, 2, chord_3, 4,chord_4, 4)).tick
chord_low = (knit(chord_low_1, 2, chord_low_2, 2, chord_low_3, 4, chord_low_4, 4)).look
sleep 8
end
# SPHERES
define :chord_player do |the_chord|
use_synth :blade
the_chord.each do |note|
play note, attack: rand(4), release: rand(6..8), cutoff: rand(50..85), vibrato_rate: rand(0.01..2), amp: 0.55
end
end
with_fx :reverb, room: 0.99, mix: 0.7 do
live_loop :chord_loop do
chord_player chord_high.pick(6)
chord_player chord_low.take(3)
sleep 8
end
end
# Coded by Pit Noack
# supported by
# Alexander Degraf
# Astrid Hagenguth
# Enrico Mercaldi
# http://www.maschinennah.de/
# mail@pitnoack.de
@TuxedoCat619
Copy link
Author

Coded by SonicPit

Taken from "Beats basteln wie die Großen"

c't 13/2017

Note: requires a powerful machine to run smoothly.

use_bpm 40

CHORD CONTROL

This part provides two rings called "chord_high" and "chord_low".

They always contain the "permitted" notes in order that everything will be in tune.

You can use them in other live loops to select notes.

chord_1 = chord :c4, :maj9, num_octaves: 4
chord_2 = chord :es4, :maj9, num_octaves: 4
chord_3 = chord :b3, :maj9, num_octaves: 4
chord_4 = chord :d4, :maj9, num_octaves: 4

chord_low_1 = chord :c3, :maj9
chord_low_2 = chord :es2, :maj9
chord_low_3 = chord :b1, :maj9
chord_low_4 = chord :d2, :maj9

chord_high = chord_1
chord_low = chord_low_1

live_loop :chord_selector, delay: -0.5 do
chord_high = (knit(chord_1, 2, chord_2, 2, chord_3, 4,chord_4, 4)).tick
chord_low = (knit(chord_low_1, 2, chord_low_2, 2, chord_low_3, 4, chord_low_4, 4)).look
sleep 8
end

SPHERES

define :chord_player do |the_chord|
use_synth :dark_ambience
the_chord.each do |note|
play note, attack: rand(4), release: rand(6..8), cutoff: rand(50..85), vibrato_rate: rand(0.01..2), amp: 0.55
end
end

with_fx :reverb, room: 0.99, mix: 0.7 do
live_loop :chord_loop do
chord_player chord_high.pick(6)
chord_player chord_low.take(3)
sleep 8
end
end

Coded by Pit Noack

supported by

Alexander Degraf

Astrid Hagenguth

Enrico Mercaldi

http://www.maschinennah.de/

mail@pitnoack.de

@TuxedoCat619
Copy link
Author

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