Saturday, June 6, 2026

sfizz apt repo for raspberry pi

echo 'deb http://download.opensuse.org/repositories/home:/sfztools:/sfizz/Raspbian_12/ /' | sudo tee /etc/apt/sources.list.d/home:sfztools:sfizz.list
curl -fsSL https://download.opensuse.org/repositories/home:sfztools:sfizz/Raspbian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_sfztools_sfizz.gpg > /dev/null
sudo apt update
sudo apt install sfizz

link to sfizz repo incase it gets updated

Friday, June 5, 2026

pi 3 hifi hat i3 config auto assigned workspaces for fluidsynth and renoise


exec --no-startup-id i3-msg 'workspace1; exec renoise'
exec --no-startup-id i3-msg 'workspace2; exec lxterminal -e ~Documents/sf2/fluid.sh'

set cadence to start jack on login so fluidsynth can run properly
jack bridges have alsa to pulse to jack


  # Update software sources
sudo apt-get update

# Install required dependencies if needed
sudo apt-get install gpgv wget

# Download package file
wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.2.0_all.deb

# Install it
sudo dpkg -i kxstudio-repos_11.2.0_all.deb
  

Thursday, June 4, 2026

spotpear pcm5122 i2s dac install instructions

spotpears website

my fluidsynth alsa setup with m-vave bt and pico


gnome-terminal -- bash -c '
fluidsynth -C0 -R0 -l -a alsa -m alsa_seq -is -p "FluidSynth-GS" \
-o synth.polyphony=64 \
~/Documents/sf2/GeneralUser-GS.sf2 &

until aconnect -l | grep -q "FluidSynth-GS"; do sleep 0.5; done

aconnect "SINCO" "FluidSynth-GS" 2>/dev/null
aconnect "Pico"  "FluidSynth-GS" 2>/dev/null

wait
exec bash
'

my pico sends msb lsb program changes to switch sounds. the m-vave bt im using with my microkorg to play soundfonts.
this script lets me auto connect everything

wx midi

fluidsynth with rtp midi for raspberry pi

Sunday, May 31, 2026

clarinova hex midi messages

yamaha clavinova clp-820 functions

  • f7 3 is the function for
    local control disabling

  • f7 1 and 2 are midi send/ receive channels

  • f2 1 sets temperament
    1 is Equal
    2 maj
    3 min
    4 pythagorean
    5 meantone
    6 werkmeister
    7 kirnberger

Friday, May 29, 2026

midi hex channel message for drums

in loopy pro ndercustom midi messages
to pull up the drums:
B0 00 78 B0 20 00 C0 00

i forgot the last 00 at the end which is why it didn't work before.

Instrument MIDI Command

piano B0 00 00 B0 20 00 C0 01
bass B0 00 00 B0 20 00 C0 21
jazz-gt B0 00 00 B0 20 00 C0 1A

brass B0 00 00 B0 20 00 C0 3d
strings B0 00 00 B0 20 00 C0 30
tonewheelorg B0 00 00 B0 20 00 C0 10
clav B0 00 00 B0 20 00 C0 07

trombone B0 00 00 B0 20 00 C0 39
mute gt B0 00 00 B0 20 00 C0 1c
choir B0 00 00 B0 20 00 C0 34
barisax B0 00 00 B0 20 00 C0 43

Thursday, May 28, 2026

yamaha cbx-k1 stuck notes fix

press shift + tempo + 0 + enter to disable the external midi clock
had a similar problem with microkorg giving errors when trying to send patches over midi cable. I think it just sends too much data at once and gets garbled so this reduces that significantly.

Wednesday, May 27, 2026

Monday, May 25, 2026

digiwaves decent sampler

decent sampler inst on dropbox

made an insturment for the decentsampler vst that can also run on ios. Its 64 digital waves you can swap between using the modwheel. If you rename the .dslibrary file to zip and extract there is a .sfz mapping which uses the same samples but maps them differently. The soundfont has no UI but its got a lowpass filter and amp and filter egs that correspond to the mk. The sfz is monophonic while the decentsampler patch is polyhonic.

regex to get the sample name only from sfz


^.*/

this simple regex works in mousepad

Friday, May 22, 2026

Microkorg Lua Synth Definition For Renoise Guru Plugin

Guru lets you load presaved mappings for controlling hardware synths
so you dont need to reinvent the wheel and map everything out each time
on linux the scripts go in somewhere in /.config/renoise/scripts/tools
The Renoise Tool Guru


return SynthDefinition {
    id = "korg_microkorg",
    name = "Microkorg",
    author = "Bweew",

    Section {

        Group {
            name = "Filter",

            Parameter { id="filter_type", name="Type", type="cc", number=83 },
            Parameter { id="cutoff", name="Cutoff", type="cc", number=74 },
            Parameter { id="resonance", name="Resonance", type="cc", number=71 },
            Parameter { id="filter_eg_int", name="Filt EG", type="cc", number=79 },
            Parameter { id="kbd_track", name="KBD Track", type="cc", number=85 }
        },

        Group {
            name = "Filter EG",

            Parameter { id="feg_attack", name="Attack", type="cc", number=23 },
            Parameter { id="feg_decay", name="Decay", type="cc", number=24 },
            Parameter { id="feg_sustain", name="Sustain", type="cc", number=25 },
            Parameter { id="feg_release", name="Release", type="cc", number=26 }
        },

        Group {
            name = "Amp EG",

            Parameter { id="aeg_attack", name="Attack", type="cc", number=73 },
            Parameter { id="aeg_decay", name="Decay", type="cc", number=75 },
            Parameter { id="aeg_sustain", name="Sustain", type="cc", number=70 },
            Parameter { id="aeg_release", name="Release", type="cc", number=72 }
        },

        Group {
            name = "Delay",

            Parameter { id="delay_time", name="Time", type="cc", number=13 },
            Parameter { id="delay_depth", name="Depth", type="cc", number=94 }
        },

        Group {
            name = "Mod FX",

            Parameter { id="mod_speed", name="Speed", type="cc", number=12 },
            Parameter { id="mod_depth", name="Depth", type="cc", number=93 }
        },

        Group {
            name = "Mixer",

            Parameter { id="osc1_level", name="Osc1 Level", type="cc", number=20 },
            Parameter { id="osc2_level", name="Osc2 Level", type="cc", number=21 },
            Parameter { id="noise_level", name="Noise Level", type="cc", number=22 }
        },

        Group {
            name = "Osc 1",

            Parameter { id="osc1_wave", name="Wave", type="cc", number=77 },
            Parameter { id="osc1_ctrl1", name="Ctrl 1", type="cc", number=77 },
            Parameter { id="osc1_ctrl2", name="Ctrl 2", type="cc", number=15 }
        },

        Group {
            name = "Osc 2",

            Parameter { id="osc2_wave", name="Wave", type="cc", number=78 },
            Parameter { id="osc2_mod", name="Osc Mod", type="cc", number=82 },
            Parameter { id="osc2_semi", name="Semitone", type="cc", number=18 },
            Parameter { id="osc2_tune", name="Tune", type="cc", number=19 }
        },

        Group {
            name = "LFO 1",

            Parameter { id="lfo1_wave", name="Wave", type="cc", number=87 },
            Parameter { id="lfo1_freq", name="Frequency", type="cc", number=27 }
        },

        Group {
            name = "LFO 2",

            Parameter { id="lfo2_wave", name="Wave", type="cc", number=88 },
            Parameter { id="lfo2_freq", name="Frequency", type="cc", number=76 }
        },

        Group {
            name = "V Patch",

            Parameter { id="vpatch1", name="P1 Int", type="cc", number=28 },
            Parameter { id="vpatch2", name="P2 Int", type="cc", number=29 },
            Parameter { id="vpatch3", name="P3 Int", type="cc", number=30 },
            Parameter { id="vpatch4", name="P4 Int", type="cc", number=31 }
        }

    }
}

Saturday, May 16, 2026

Renoise Midi Hardware Sampler Tool

Midi Hardware Sampler Tool

been using this to sample the microkorg into renoise

Thursday, May 14, 2026

Microkorg Dashboard

Using the Dashboard Plugin In FL studio 10 I made a control surface for the Microkorg that has everything on a single page unlike the fruity midi out plugin that splits everything across several pages. I like it all on one because I find it easier to see everything and map them to hardware controllers or automate. Dropbox link

Thursday, April 9, 2026

Giant Steps

Key Giant Steps
G B D7 | G Bb7 | Eb | Am7 D7 | G Bb7 | Eb F#7 | B | Fm7 Bb7 | Eb | Am7 D7 | G | C#m7 F#7 | B | Fm7 Bb7 | Eb | C#m7 F#7
Ab C Eb7 | Ab B7 | E | Bbm7 Eb7 | Ab B7 | E G7 | C | F#m7 B7 | E | Bbm7 Eb7 | Ab | Dm7 G7 | C | F#m7 B7 | E | Dm7 G7
A C# E7 | A C7 | F | Bm7 E7 | A C7 | F G#7 | C# | Gm7 C7 | F | Bm7 E7 | A | D#m7 G#7 | C# | Gm7 C7 | F | D#m7 G#7
Bb D F7 | Bb Db7 | Gb | Cm7 F7 | Bb Db7 | Gb A7 | D | Abm7 Db7 | Gb | Cm7 F7 | Bb | Em7 A7 | D | Abm7 Db7 | Gb | Em7 A7
B D# F#7 | B D7 | G | C#m7 F#7 | B D7 | G A#7 | D# | Am7 D7 | G | C#m7 F#7 | B | Fm7 A#7 | D# | Am7 D7 | G | Fm7 A#7
C E G7 | C Eb7 | Ab | Dm7 G7 | C Eb7 | Ab B7 | E | Bbm7 Eb7 | Ab | Dm7 G7 | C | F#m7 B7 | E | Bbm7 Eb7 | Ab | F#m7 B7
Db F Ab7 | Db E7 | A | Ebm7 Ab7 | Db E7 | A C7 | F | Bm7 E7 | A | Ebm7 Ab7 | Db | Gm7 C7 | F | Bm7 E7 | A | Gm7 C7
D F# A7 | D F7 | Bb | Em7 A7 | D F7 | Bb C#7 | F# | Cm7 F7 | Bb | Em7 A7 | D | G#m7 C#7 | F# | Cm7 F7 | Bb | G#m7 C#7
Eb G Bb7 | Eb Gb7 | Bbm | Fm7 Bb7 | Eb Gb7 | Bbm D7 | G | C#m7 F#7 | Bbm | Fm7 Bb7 | Eb | Am7 D7 | G | C#m7 F#7 | Bbm | Am7 D7
E G# B7 | E G7 | C | F#m7 B7 | E G7 | C D#7 | G# | Dm7 G7 | C | F#m7 B7 | E | A#m7 D#7 | G# | Dm7 G7 | C | A#m7 D#7
F A C7 | F Ab7 | Db | Gm7 C7 | F Ab7 | Db E7 | A | Ebm7 Ab7 | Db | Gm7 C7 | F | Bm7 E7 | A | Ebm7 Ab7 | Db | Bm7 E7
F# A# C#7 | F# A7 | D | G#m7 C#7 | F# A7 | D F7 | A# | Em7 A7 | D | G#m7 C#7 | F# | Cm7 F7 | A# | Em7 A7 | D | Cm7 F7

some dx7 banks I put together

dx7 sysex patches dropbox link

Monday, March 9, 2026

deflemask triplets in 12 lines instead of 8

with a pattern length of 48 with each beat being 4 lines
set the speeds both to 2: 09-02, and 0F-02 to align with 8th note quarter notes

deflemask triplets using speed commands

in 2 columns set 09 01 and 0f 01
then to reset back 09 03 0f 03
that lets you sequence like regular quarter notes across 8 lines