A utility to control the volume of PulseAudio streams / sinks / sources with a midi device
This has been tested with a KORG nanoKontrol2 on ArchLinux. The nanoKontrol2 is an in-expensive USB midi device with 8 sliders, 8 knobs and 24 buttons, which is great for having more fine-grained control over your audio setup!
You will need the portmidi library installed. In Arch, install this with pacman -S portmidi under Debian Based systems, you will need to install libportmidi-dev
go get github.com/solarnz/pamidicontrol
pamidicontrol requires the use of a configuration file. Place the config file under $HOME/.config/pamidicontrol/config.yaml.
You can checkout the example configuration file to see how to configure pamidicontrol.
You must set a bare-minimum the Input and Output midi device names.
pamidicontrol will print to stderr all of the midi control messages it gets, so you can easily build up your configuration file iteratively.
Make sure that the names you have configured for InputMidiName / OutputMidiName actually exist.
On some distributions, PulseAudio is configured without D-Bus control by default. To enable D-Bus control for PulseAudio, add load-module module-dbus-protocol to your PulseAudio configuration file located at /etc/pulse/default.pa.