Created
October 29, 2021 23:19
-
-
Save TuxedoCat619/eade13c2076a606ff873c62403f07d59 to your computer and use it in GitHub Desktop.
SONIC PI CODE COMPILATION
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 70 | |
# HISS | |
live_loop :hiss_loop do | |
sample :vinyl_hiss, amp: 2 | |
sleep sample_duration :vinyl_hiss | |
end | |
# HIHAT | |
define :hihat do | |
use_synth :pnoise | |
with_fx :hpf, cutoff: 120 do | |
play release: 0.01, amp: 13 | |
end | |
end | |
live_loop :hihat_loop do | |
divisors = ring 2, 4, 2, 2, 2, 2, 2, 6 | |
divisors.tick.times do | |
hihat | |
sleep 1.0 / divisors.look | |
end | |
end | |
# SNARE | |
live_loop :snare_loop do | |
sleep ring(2.5, 3)[tick] | |
with_fx :lpf, cutoff: 100 do | |
sample :sn_dub, sustain: 0, release: 0.05, amp: 3 | |
end | |
sleep ring(1.5, 1)[look] | |
end | |
# BASSDRUM | |
define :bassdrum do |note1, duration, note2 = note1| | |
use_synth :sine | |
with_fx :hpf, cutoff: 100 do | |
play note1 + 24, amp: 40, release: 0.01 | |
end | |
with_fx :distortion, distort: 0.1, mix: 0.3 do | |
with_fx :lpf, cutoff: 26 do | |
with_fx :hpf, cutoff: 55 do | |
bass = play note1, amp: 85, release: duration, note_slide: duration | |
control bass, note: note2 | |
end | |
end | |
end | |
sleep duration | |
end | |
live_loop :bassdrum_schleife do | |
bassdrum 36, 1.5 | |
if bools(0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0)[tick] | |
bassdrum 36, 0.5, 40 | |
bassdrum 38, 1, 10 | |
else | |
bassdrum 36, 1.5 | |
end | |
bassdrum 36, 1.0, ring(10, 10, 10, 40)[look] | |
end | |
# 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: 2 | |
chord_2 = chord :es4, :maj9, num_octaves: 2 | |
chord_3 = chord :b3, :maj9, num_octaves: 2 | |
chord_4 = chord :d4, :maj9, num_octaves: 2 | |
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/ | |
# [email protected] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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/
[email protected]