Skip to content

Instantly share code, notes, and snippets.

Avatar

Michael Lockhart sinewalker

View GitHub Profile
@sinewalker
sinewalker / sonic-pi-snippets.md
Last active Mar 25, 2021
How to use Sonic Pi Snippets
View sonic-pi-snippets.md

Sonic Pi has an experimental, undocumented feature to support snippets, which autoexpand with the TAB key.

Here's the issue: https://github.com/sonic-pi-net/sonic-pi/issues/587

Specifically, Sam's comment: https://github.com/sonic-pi-net/sonic-pi/issues/587#issuecomment-131945899

... [T]o play with it now (with the caveat that it all may drastically change) you just need to create a file with the contents of your snippet with an .sps extension in a directory somewhere on your machine. You might want to create a snippets directory for your own personal snippets. The name of the file doesn't matter. You then load all the snippets in a given directory with:

load_snippets("/path/to/snippets/dir")

View bollybyte.rb
live_loop :india do
use_random_seed 4000
16.times do
sample "tabla_", choose
sleep 0.125
end
sample "tabla_", choose
sleep 0.125
2.times do
sample "tabla_", choose
@sinewalker
sinewalker / bootusb-mac.md
Last active Jul 12, 2019
Make a bootable USB from an ISO image, on macOS
View bootusb-mac.md

Making a bootable USB on a Mac

  1. hdiutil convert -format UDRW -o bootimage.img sourceimage.iso
  2. diskutil list (look for the volume that's the same size as your USB device. It'll be "external".)
  3. diskutil partitionDisk /dev/diskX 1 "Free Space" "unused" "100%" (use diskX from the list!)
  4. sudo dd if=bootimage.img of=/dev/diskX bs=1m

original source

@sinewalker
sinewalker / slack-dark.css
Created May 26, 2019
Slack Desktop Dark Theme CSS
View slack-dark.css
/*
Activate by appending this code to the end of ~\AppData\Local\slack\app-3.3.8\resources\app.asar.unpacked\src\static\ssb-interop.js
document.addEventListener('DOMContentLoaded', function() {
$.ajax({
url: 'https://gist.githubusercontent.com/Icebird/638220c4b3eb7f68c39431740fbd7eb7/raw/slack-dark.css',
success: function(css) {
$("<style></style>").appendTo('head').html(css);
}
});
@sinewalker
sinewalker / freezenv.sh
Created May 21, 2019
Freeze your python pip requirements to a known place, to guard against Homebrew mess-ups
View freezenv.sh
freezenv() {
FUNCDESC='Freeze the active Python Environment pip requirements.
This stores the requirements.txt in the active $VIRTUAL_ENV or $CONDA_PREFIX
directory, overwriting any existing requirements file.'
if [[ -z ${VIRTUAL_ENV-$CONDA_PREFIX} ]] ; then
error "$FUNCNAME: no active python or conda venv"
return 1
fi
@sinewalker
sinewalker / minecraft-coords.md
Created May 18, 2019
Minecraft Pi Edition Python Coords vs Minecraft Debugging Coords
View minecraft-coords.md

To fix your Minecraft world so that the coordinates displayed on the F3 debugging screen match what the MCPI API tells you with player.getPos() or player.getTilePos(), issue this Command in the game (requires Multiplayer, or a World generated with Cheat Codes enabled):

/setworldspawn 0 0 0

(to do this, press T or / and then type /setw followed by the TAB key, and then 0 0 0. For some reason you can't type this command out in full on the Talk window.)


@sinewalker
sinewalker / wtfo.sh
Created May 13, 2019
wtfo -- fix wtf -o option's error message when it can't find an abbreviation
View wtfo.sh
function wtfo(){
FUNCDESC="Look up an abbreviation, including obscene meanings"
wtf -o ${@}|sed 's/nothing appropriate/nothing inappropriate/'
}
@sinewalker
sinewalker / subdir-files-completion.sh
Last active May 10, 2019
Bash completion for all files in all subdirectories of a directory
View subdir-files-completion.sh
function _subfiles() {
COMPREPLY=()
local CUR FILES
CUR="${COMP_WORDS[COMP_CWORD]}"
FILES="$(find ${_COMP_DIR}/* -type f|awk -F ${_COMP_DIR}/ '{print $2}')"
COMPREPLY=( $(compgen -W "${FILES}" -- ${CUR}) )
return 0
}
@sinewalker
sinewalker / ssh.config
Created Apr 3, 2019
SSH jump to one host via another
View ssh.config
Host *-via-jumpbox
ProxyCommand ssh user@jumpbox.net nc $(echo %h | sed 's/-via-jumpbox$//') %p
@sinewalker
sinewalker / chiparp.rb
Last active Mar 31, 2019
8-bit retro chip arp "chord" in Sonic Pi
View chiparp.rb
define :chiparp do |notes, duration, c_amp=0.8, c_Hz=30, c_sust_ratio=1, c_step=1|
tx=bt(1) # seconds for 1 beat
in_thread do
use_bpm 60 # normalise bpm to 1 beat per second
c_speed = 1.0/c_Hz #the chip speed is better converted from Hz
count = (duration * tx / c_speed)
use_synth :chiplead
use_synth_defaults amp: c_amp, sustain: c_speed*c_sust_ratio,
attack: 0, decay: 0, release: 0