Music Projects

FMidiAutomation


The idea behind this project is to provide a tool for automating MIDI commands. While some music programs provide automation for a few controller changes, such as volume and pan, I want this to handle any MIDI command and not be tied to a particular program. To this end, FMidiAutomation provides a sequencer of curves of MIDI command data. A user can record live data and easily adjust each recorded curve's position in the sequencer. As well, each data point of a curve can be manually edited. The end result is a fancy curve editor for MIDI data that can be sequenced.

This project is far from complete and has been a sandbox for experimenting with Gtk and C++11. The older UI branch is able to record and playback MIDI data, as well as manually edit curves and sequences. I have plans to add curve simplification into the mix, but haven't got there yet.

The Gtk2.4 branch is somewhat usable where the master branch needs the UI for the Jack connection stuff rewritten.

C++ / Gtk

BitBucket



Roland SonicCell Patch Browser


This is a tool I wrote to make browsing patches on the Roland SonicCell considerably easier. Selecting a different row will select the corresponding patch on the SonicCell. Alternately if no SonicCell is hooked up, pressing the replay key will play a short sample of the selected patch. Each patch can have up to four comments associated with them in the memo columns. It supports the built-in patch banks as well as SRX-08. Adding other banks would be trivial, I just don't own any others. As a bonus, the code contains a fairly complete data representation of the entire SonicCell. Also a bonus, there's fairly straight forward code to encode and decode FLAC files while reading/writing to jack audio buffers.

This is a linux jack audio application. The UI is using gtkmm with some pretty basic table formatting. Categories and patch banks are configurable, as well there is a general text search.

I've removed the sound samples and patch data, but they can be easily recreated. To generate the patch data, connect the application to your SonicCell and hit the "All" button, remembering to save it out. To start recoding any missing patch samples, press "^", and top stop recording after the current patch press "`".

C++ / Gtk

BitBucket



Yamaha PSR-E413 Patch Browser


This is a tool I wrote to make browsing patches on the Yamaha PSR-E413 considerably easier. Selecting a different row will select the corresponding patch on the PSR-E413. Alternately if no PSR-E413 is hooked up, pressing the replay key will play a short sample of the selected patch. Each patch can have up to four comments associated with them in the memo columns. As a bonus, there's fairly straight forward code to encode and decode FLAC files while reading/writing to jack audio buffers.

This is a linux jack audio application. The UI is using gtkmm with some pretty basic table formatting. Categories and patch banks are configurable, as well there is a general text search.

I've removed the sound samples and patch data, but they can be easily recreated. To generate the patch data, connect the application to your PSR-E413 and hit the "All" button, remembering to save it out. To start recoding any missing patch samples, press "^", and top stop recording after the current patch press "`".

C++ / Gtk

BitBucket



LADSPA Gate with Sidechain


I haven't found a LADSPA gate plugin that also had a sidechain, so I figured I'd write one. I used Steve Harris's gate (1410) as a starting point and tweaked it to use a sidechained input for the gate instead of the original signal. Nothing too fancy, but it works.