Skip to content

Instantly share code, notes, and snippets.

View albedozero's full-sized avatar

Bill Peterson albedozero

View GitHub Profile
@albedozero
albedozero / nado.yaml
Created September 12, 2022 06:13
white2rnado go-to patches
# jam patches
patches:
Piano:
1: piano/Fazioli Grand.sf2:000:000
router_rules:
- {type: cc, chan: 16=1, par1: 30=64, par2: 0-127*127+0}
HohnerD6 Clav:
2: piano/Dsix Magic.sf2:000:004
router_rules:
@albedozero
albedozero / lesson6.yaml
Last active August 18, 2022 04:03
The example FluidPatcher (https://github.com/albedozero/fluidpatcher) bank file constructed in lesson 6 (https://youtu.be/baDL0ISiQlI)
patches:
Cheesy Jazz:
1: FluidR3_GM.sf2:000:007
5: FluidR3_GM.sf2:000:032
10: FluidR3_GM.sf2:128:033
midiplayers:
jazz:
file: nonamejazz2.mid
mask: [prog]
tempo: 110
@albedozero
albedozero / midifileinfo
Last active August 13, 2022 18:34
A command-line python script that prints info about a midi file. Requires mido (https://pypi.org/project/mido/)
#!/usr/bin/env python3
from sys import argv
from mido import MidiFile
if len(argv) < 2:
exit("Usage: midifile [filename]")
mid = MidiFile(argv[1])
channels = set()
@albedozero
albedozero / breath.yaml
Last active July 9, 2022 19:41
A simple fluidpatcher (https://github.com/albedozero/fluidpatcher) bank demonstrating use of a breath controller i.e. EWI
patches:
Flute:
1: FluidR3_GM.sf2:000:073
router_rules:
- {type: cc, par1: 2=11} # route breath to expression
messages:
- cc:1:68:127 # enable legato playing
@albedozero
albedozero / glissando.yaml
Created June 1, 2022 18:34
Demonstration of playing glissandos using sequencers and arpeggiators
patches:
Glissandos:
2: FluidR3_GM.sf2:000:000
sequencers:
CMaj:
tdiv: 32
notes: [note:2:C4:100, note:2:D4:100, note:2:E4:100, note:2:F4:100,
note:2:G4:100, note:2:A4:100, note:2:B4:100, note:2:C5:100]
Dm7:
tdiv: 32
@albedozero
albedozero / lesson5.yaml
Last active August 18, 2022 04:04
The example FluidPatcher (https://github.com/albedozero/fluidpatcher) bank file constructed in lesson 5 (https://youtu.be/GfelD8ZofyM)
patches:
BasicLoop:
1: FluidR3_GM.sf2:000:005
sequencers:
loop:
notes: [note:1:Eb4:100, note:1:F4:100, note:1:Ab4:100, note:1:Bb4:100]
router_rules:
- {type: cc, par1: 24, sequencer: loop}
MagicLoop:
1: FluidR3_GM.sf2:000:062
@albedozero
albedozero / cc_patches.yaml
Created April 5, 2022 05:10
bank file that routes CC messages to increment/decrement patches or select a specific patch
# a demo bank that shows how CCs can be used to select patches
router_rules:
- {type: cc, par1: 45, par2: 1-127=1, patch: select} # CC45 selects patch 1 (Piano)
- {type: cc, par1: 46, par2: 1-127=2, patch: select} # CC46 selects patch 2 (Rhodes)
- {type: cc, par1: 47, par2: 1-127=3, patch: select} # CC47 selects patch 3 (FM Piano)
- {type: cc, par1: 48, par2: 1-127=4, patch: select} # CC48 selects patch 4 (Vibes)
- {type: cc, par1: 49, par2: 1-127, patch: -1} # CC49 decrements patch
- {type: cc, par1: 50, par2: 1-127, patch: 1} # CC50 increments patch
@albedozero
albedozero / linreg.py
Created February 24, 2022 05:05
Quick script for calculating linear fit with uncertainty from x, y values
import sys
import numpy as np
class LinFit:
def __init__(self, x, y):
d = x.size * np.sum(x ** 2) - np.sum(x) ** 2
self.intercept = (np.sum(x ** 2) * np.sum(y) - np.sum(x) * np.sum(x * y)) / d
self.slope = (x.size * np.sum(x * y) - np.sum(x) * np.sum(y)) / d
self.s_y = np.sqrt(np.sum((y - self.intercept - self.slope * x) ** 2) / (x.size - 2))
self.s_intercept = self.s_y * np.sqrt(np.sum(x ** 2) / d)
@albedozero
albedozero / lesson4.yaml
Last active February 6, 2022 01:30
The example FluidPatcher (https://github.com/albedozero/fluidpatcher) bank file constructed in lesson 4 (https://youtu.be/K_TKv0kQubU)
# messages keyword and init block
init:
fluidsettings:
synth.reverb.level: 1.0
synth.reverb.room-size: 0.8
synth.reverb.damp: 0.8
synth.reverb.width: 5.0
messages: [cc:1:74:0, cc:1:91:60]
messages:
@albedozero
albedozero / fluid_gmbank.yaml
Last active December 30, 2023 20:45
A bank file for fluidpatcher that creates a patch for every preset in FluidR3_GM.sf2
patches:
Yamaha Grand Piano:
1: FluidR3_GM.sf2:000:000
Bright Yamaha Grand:
1: FluidR3_GM.sf2:000:001
Electric Piano:
1: FluidR3_GM.sf2:000:002
Honky Tonk:
1: FluidR3_GM.sf2:000:003
Rhodes EP: