I’ve started where I am collecting non-coding related information.


All of my coding projects are available on GitHub ( Some of my more popular repos are:

shUnit2 – A xUnit based Unix shell script unit test framework similar to JUnit.

tabulate – A script to tabulate textual content from STDIN or from a file.

log4sh – (inactive) A logging framework similar to log4j and log4cxx, but for Unix shell scripts.

shFlags – (inactive) Shell Flags (shFlags) is a library written to greatly simplify the handling of command-line flags in Bourne based Unix shell scripts.

Pro AV

Avid S3L-X and Third-party AVB – I’m working on getting my Avid S3L-X console working with my MOTU AVB devices. I have bi-directional connectivity working, but still have a few things to work on.

Accept signal from MOTU 16A into E3 EngineWorking
Output signal from E3 Engine to MOTU 16AWorking
Configure Stage 16 to announce itself on AVB, and read signals with macOSWorking
Figure out how to manually control the Stage 16Working
Configure Stage 16 for 100% standalone operationWorking
Create a basic controller written in Go to control Stage 16 operation via HTTPTODO
Figure out how to enable controller to start at boot on Stage 16TODO
Improve controller to work with OSC, and create TouchOSC control interface for Stage 16TODO

To better share information, I’ve started collecting data on rather than in Google docs. I plan for this to become a useful resource for the community!


Tracks – This is a tool to rename files written by Waves Tracks Live using the Avid VENUE channel names from a patch file export so that I can import them into ProTools. It means I don’t have to type all the track names in by hand, and it also means the tracks are numbered properly so they import in order.

Venue – (inactive) Older Avid audio consoles (e.g. the D-Show and Profile) can be controlled with VNC. I wrote a server that takes TouchOSC inputs from an iPad and translates them into VNC keyboard/mouse movements so that I could do a monitoring mix from the stage. I had the code working at one point, but it is currently in disrepair.


My musings of k8 YouTube channel.