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
https://twitter.com/iamnotsonicpi