This is a typical workflow when making music with only a monome and a computer, no piano. I use a mix of software and hardware controllers. Most of the former is native Linux, though there may also be a Windows Max/MSP application running in Wine, which I can control via MIDI or OSC. The audio generated is then sent to a variety of places for effects, processing, and recording.
This picture was originally inspired by a recent creative one-a-day by Jared Smyth, signalpath.
This drawing represents today’s audio sketch, which was an improvisation with polygome. I finally got polygome to connect with serialosc and griddle, a Linux-native OSC spanner/splitter/router application. My Gentoo Linux desktop looked like this while I was recording:
The monome was connected to serialosc, which converts the raw USB serial data into OSC messages, which are then passed to griddle. Griddle acts as an intermediary; it can combine multiple physical monomes into one unit, or it can split a single monome into two or more “virtual” devices. This would allow me to divide my 128 into two 64s, with each half being used for a completely different application.
Griddle exchanges OSC messages with polygome, a Max/MSP application running within Wine. Polygome doesn’t produce any sounds of its own, but sends MIDI output to a suitable source that does produce sound. In this case, fluidsynth. The audio from fluidsynth is sent to a software effects rack, and that processed audio is sent to an audio recorder and the system audio device‘s stereo output, so that I can monitor the mix.
The audio is tweaked in realtime by using a Korg NanoKontrol USB-MIDI device, which has some of the software effects rack parameters mapped to physical sliders. All the audio and MIDI input/output is tied together by QJackCtl. On the OSC/monome side, the input/output all goes through griddle, although for this recording session it was not strictly necessary, as I was running a single application on only one monome.
Config and process notes
I had to make a few config file changes to make serialosc, griddle, and polygome to cooperate. I also worked with griddle’s upstream to address a couple of bugs, which were solved within seconds. Collaborating on #monome is a good way to gain solutions and inspiration.
1. Start qjackctl, the synths, and effects.
2. Start griddle, serialosc, and Max/MSP in Wine, using the File -> Open dialog to select the polygome Max patch.
These are the configuration files to get all the software layers talking with each other. The ports change dynamically each time, except for serialosc.maxpat. Since serialosc and griddle will auto-negotiate new ports each time they’re run, the key thing is to make sure that the ports in serialosc.maxpat match the ports in griddle. Additionally, I had to specify the same application port in serialosc’s config. Normally, when serialosc and the Max patch are directly connected, you just have to make those ports match in your monome’s serialosc config and serialosc.maxpat
~/.config/serialosc/m128-000.conf:
server {
port = 17165
}
application {
osc_prefix = "/monome"
host = "127.0.0.1"
port = 8000
}
device {
rotation = 180
}
~/griddle.conf:
[test] port = 49730 size = 16, 8 offset = 0, 0 # attached physical devices m128-000 = 0,0
serialosc.maxpat:
line 24> "text" : "loadmess set port 49730", line 38> "text" : "port 49730", line 78> "text" : "udpreceive 8000", line 92> "text" : "udpsend localhost 49730",
polygome: Once running, click the “/sys/prefix /gome” button to send the application prefix to griddle, and then it’s possible to interact with polygome on the monome. Requires my special static version of serialosc.maxpat on github to work with serialosc, which has to be copied into the same folder as _polygome.maxpat.


Pingback: music videos made with gentoo | Josh Saddler
nice job dere joshy boy.
also i’m thinking about giving gentoo a try
excellent!