Skip to content

Instantly share code, notes, and snippets.

Avatar

Xavier Riley xavriley

View GitHub Profile
@xavriley
xavriley / README.md
Created Feb 5, 2016
Getting LADSPA plugins working on Sonic Pi
View README.md

Getting LADSPA plugins working on Sonic Pi

This is an evil experiment at the moment but it works

  • Download and install LMMS from http://lmms.io
  • Run the attached SuperCollider file to create the synthdef locally (Overtone doesn't have ladspa yet)
  • patch the named ruby files as per the other attachments
  • start Sonic Pi
@xavriley
xavriley / README.md
Last active Jul 9, 2022
Using Sonic Pi to practice guitar
View README.md

Using Sonic Pi to practice guitar

This is an implementation of a scale exercise widely used in jazz teaching. It's sometimes known as the "big scale" exercise.

Explanation

Let's say you practice the saxophone and you want to make sure you know all your major scales. One way to test this would be to play the scale within the limits of your instrument - saxophones have a lowest note and a highest note (from :Db3 to :A5 at concert pitch in Sonic-Pi speak - see here http://en.wikipedia.org/wiki/Alto_saxophone#Range - assuming you don't get fancy with harmonics!)

Playing an Eb major scale over the whole range of the instrument would mean playing from :D3 to Ab5 (concert) as the lowest and highest notes available don't appear in the scale (:Db3 and :A5 respectively). When you hit the upper or lower limit you just reverse the direction and carry on going.

@xavriley
xavriley / README.md
Last active May 23, 2022
Sennheiser VSM201 Vocoder Emulation in SuperCollider
View README.md
@xavriley
xavriley / README.md
Last active Feb 2, 2022
Original NES Mario Theme for Sonic Pi
View README.md

Making Chiptune Music using Sonic Pi v2.0

Warning: this might not work on a RaspberryPi yet

I was curious about making retro gaming sounds using Sonic Pi. A couple of months and a lot of Googling later, here's the original Mario Bros theme as it was heard on the NES console.

I'm (just about) old enough to remember rushing home from school to play this game at Philip Boucher's house, sitting cross-legged in front of the TV till my feet got pins and needles. Working out how to recreate it for Sonic Pi was a lot of fun!

Getting the sounds of the NES chip

@xavriley
xavriley / clyde_stubblefield.rb
Created Jun 10, 2014
Funky drummer with Sonic Pi
View clyde_stubblefield.rb
# The funky drummer
# The aim here is to experiment with
# a) sequencing drums
# b) playing with 'time feel' which is
# music-speak for how the beat feels,
# ranging from robotic (0.0 swing_time)
# to ultra funky Fresh Prince of Bel Air
# theme tune style (0.2+ swing_time)
current_bpm = 180.0
@xavriley
xavriley / pyin-lf.patch
Created Jan 17, 2022
pYin patch for detecting low frequencies
View pyin-lf.patch
commit 6ed838b60173dc354fcb432e27bccb3a7a1e5769
Author: Xavier Riley <xavriley@hotmail.com>
Date: Mon Jun 28 12:47:19 2021 +0100
Reduce min frequency detectable from 61Hz to 22Hz
diff --git a/LocalCandidatePYIN.cpp b/LocalCandidatePYIN.cpp
index fc69308..4f04fbc 100644
--- a/LocalCandidatePYIN.cpp
+++ b/LocalCandidatePYIN.cpp
@xavriley
xavriley / kindle_4_vnc.md
Created Jul 6, 2015
Setting up VNC on a Kindle 4
View kindle_4_vnc.md
@xavriley
xavriley / README.md
Created Oct 20, 2015
"A Protocol for Packet Network Intercommunication" - VINTON G. CERF AND ROBERT E. KAHN (Plain text for Kindle, ereaders, ipads etc)
View README.md
@xavriley
xavriley / stella.ly
Last active Oct 1, 2021
Example of using LilypondExport to produce MusicXML from Lilypond. See https://music.stackexchange.com/a/115341/77453 for instructions
View stella.ly
% LilyBin
\version "2.18.2"
\include "oll-core/package.ily"
\loadPackage lilypond-export
opts.exporter = #exportMusicXML
\score{
@xavriley
xavriley / wavetable_stuff.sc
Created Nov 13, 2017
SuperCollider wavetable experiments for Sonic Pi
View wavetable_stuff.sc
s.boot
// BEGIN code to convert AKWF wavetables from 600 samples in length to 1024
// because VOsc3 needs a buffer which is a power of two to work properly
// this pipes in stdout from ls
(
var p, l;
p = Pipe.new("find ~/Projects/sonic-pi/etc/wavetables/AKWF/AKWF_0001 -iname *.wav", "r"); // list directory contents in long format
l = p.getLine; // get the first line