Skip to content

Instantly share code, notes, and snippets.

@jeremywen
jeremywen / sonic pi live coding session 1.rb
Created August 1, 2015 03:08
sonic pi live coding session 1
drums = (ring :bd_ada, :sn_dub)
samples1 = (ring :perc_snap, :sn_dub, :perc_bell, :sn_zome, :perc_snap2)
samples2 = (ring :guit_e_fifths, :elec_blip, :guit_harmonics, :ambi_choir, :ambi_glass_hum)
starts2 = (ring 0, 0.1, 0, 0.2, 0)
rates2 = (ring 1, 0.5, -1, 2)
snareHits = (ring 0.1, 0.1, 0.1, 0.25)
#drums
live_loop :loop1 do
with_fx :level, amp:2 do
live_loop :drums do
with_fx :level, amp:1.0 do
sample :bd_ada, attack:0, sustain_level:0, decay: 0.1, start: 0, amp:2, rate:0.5
sleep 0.125
with_fx :reverb, mix:0.2, room:0.5 do
sample :perc_snap, attack:0, sustain_level:0, decay: (ring 0.1, 0.1, 0.1, 0.5).tick(:t1), start: 0, amp:1, rate:(ring -2, -3, -4, -5).tick(:t1b)
sleep 0.125
with_fx :krush, mix:0.7 do
sample :misc_burp, attack:0, sustain_level:0, decay: 0.4, start: 0.5, amp:(ring 0.4, 0.6, 0.8, 0).tick(:t2), rate:0.9
end
#samples = Dir.glob("/path/to/samples/*.wav")
#samples = [:loop_amen_full, :ambi_choir]
#samples = [:ambi_choir]
samples = [:guit_harmonics]
#starts = (ring 0, 0.25, 0.5, 0.75)
#starts = range(0, 0.875, 0.125)
starts = range(0, 0.875, 0.0625)
#starts = (0..10).collect{rand(1)}
@jeremywen
jeremywen / sonic-pi-euclidean-loop-wave-file-generator.rb
Last active February 3, 2021 01:37
This sonic pi v2.8 code will generate euclidean loops as wav files from source samples. This is inspired by Micah Frank and this post: http://puremagnetik.com/post/133330599365/ableton-live-pack-clips-electronic-beats-loops-csound
###################################################################################################################
# WARNING! Don't stop this script. It is best just to let this script stop itself :-)
# If you stop this while it is running and recording, the temp file will keep growing and
# eventually fill your hard drive! If you do happen to stop it, you can either run this
# file again or run these lines in a separate buffer:
# client = SonicPi::OSC::UDPClient.new('localhost', 4557)
# client.send("/stop-recording")
# client.send("/delete-recording")
###################################################################################################################
@jeremywen
jeremywen / JW-QuickTools.py
Last active April 15, 2016 14:08
Sublime Text 3 plugins
import sublime, sublime_plugin, os.path
############################################################################################
# Copy this file to:
# ~/Library/Application Support/Sublime Text 3/Packages/User/JW-QuickTools.py
############################################################################################
############################################################################################
# LogVarsCommand:
use_bpm 140
#kick
live_loop :a do
s = (ring 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.75).tick(:t1)
k = (ring :bd_ada, :bd_haus, :bd_zum).tick(:t2)
sample k, start: 0.06, finish: 1, sustain_level:0, decay:0.2, amp: 3, rate: 0.9
sleep 1 #1
end
@jeremywen
jeremywen / groovysh.profile
Last active May 10, 2016 15:35
groovysh.profile
//Put this file in $HOME/.groovy/groovysh.profile
//Example Output:
// groovy:000> time{(1..1000).collect{it}.unique();}
// took 59 millis
time = { Closure c ->
def start = new Date()
c()
println "took ${new Date().time-start.time} millis"
}
<html>
<head>
<script src="p5.js"></script>
<script src="addons/p5.sound.js"></script>
</head>
<body>
<script>
var playing = false, recording = false;
var mySound, recorder, recordedSound;
<html>
<head>
<script src="p5.js"></script>
<script src="addons/p5.sound.js"></script>
</head>
<body>
<script>
var playing = false, recording = false;
var mySound, recorder, recordedSound;
var clips = [
@jeremywen
jeremywen / update-vcv-rack-plugins.sh
Last active October 24, 2017 15:51
lists which vcv rack plugins you have - you can uncomment commands to run for each plugin
#!/bin/bash
for gitPlugin in $(curl https://github.com/VCVRack/Rack/wiki/List-of-plugins | grep "<strong>Source</strong>" | awk -F'"' '{print $2}' | awk -F'/' '{print "git@"$3":"$4"/"$5".git"}')
do
baseDir=$(echo $gitPlugin | awk -F'/' '{print $2}' | awk -F'.' '{print $1}')
if [ -d "$baseDir" ]; then
echo "$baseDir exists"
else
echo "$baseDir does not exists"
# git clone $gitPlugin
fi