QMidiRoute, and CPU Scaling In Ubuntu Studio

How many of you are aware of the program “QMidiRoute”? It lets you transform any kind of MIDI input into any other… it doesn’t have the power of something like Mididings, but it’s got a GUI and is very easy to use. What do I use it for?

On my live looping guitar setup, I wanted to be able to control three programs with one MIDI foot controller, an old ART X-15. The pedal isn’t programmable, so for me to split up messages, I use QMidiRoute. It goes something like this:

I’m using Rakarrak for guitar sounds (I also use Guitarix, which sounds better), and I’m pretty much using it in stompbox mode, i.e. just turning single effects on and off. The mapping uses a single CC# and different distinct values to turn individual fx on/off (which is dumb). I can put the pedal in CC mode, but I can’t make it do that… qmidiroute can do that for me. Also, any PC signals automatically change presets in Rakarrak, which I don’t want… so I have qmidiroute discard anything it doesn’t have a specific rule for.

For SooperLooper, I want to be able to use PC messages 1-10 to record, dub, change loops, and so on. It doesn’t need any translations, so I have my MIDI messages going straight to it. It only does what you map it to, so no other changes are needed for it.

For Hydrogen, I want to use my second bank of PC messages (11-20) to control it, but Hydrogen doesn’t recognize PC signals, only notes or CC values. Once again, qmidiroute to the rescue… I can make specific PC changes translate into an actual note, which I can then use to trigger controls or one-shots from Hydrogen.

You can also have multiple configurations, and make a shortcut that loads that particular file on startup, which makes it easy to use in a live performance setting! You just add it to your Jack patch panel, save it, and the next time you fire it up, it’s automatically configured and patched in.

Check it out! It can also route signals to two different output ports, which lets you split notes or note ranges (or PC and CC ranges) to two different outputs.

qmidiroute

This leads me to my next problem to tackle… I hadn’t been able to run guitar effects very well, due to random CPU spikes and latency issues. In my research to build my laptop into a live performance machine, I stumbled across some interesting information about CPU frequency scaling, and how in XFCE it is extremely wonky… I did some research, and discovered how to manually override the wonky settings with a program called “cpufreq-set” (in package “cpufrequtils”).

I also noticed how my laptop would go out of performance mode whenever I started Jack, which caused all kinds of problems with latency. So, I added a couple of scripts in the Jack configuration tab, which forces the CPUs into Performance Mode when Jack starts, and puts them back in economy mode when Jack stops. (I had to add superuser rights to the program cpufreq-set to do this).

Here’s the page with all the info on cpufrequtils, and a screenshot of my Jack startup/shutdown scripts.

http://www.pantz.org/software/cpufreq/usingcpufreqonlinux.html

Screenshot - 06222013PM

You can see the numbers, those are forcing the CPUs to run at a max of 2.2Ghz and a min of 800Mhz, respectively.

My Linux Rig

I got the idea to post up the computer setup I’m using from MyLinuxRig, which is itself a derivative of The Setup which outlines what successful people use to get things done. So without too much fuss, here’s my Linux Rig questionnaire! This is what I use to get stuff done.

1. Who are you and what do you do?

I’m Jeff Hendricks. During the day, I am a technical writer for the Manufacturing Engineering department of a major agricultural equipment manufacturer. By night, I’m a writer and musician. On the weekends, I organize and lead the music in our local church.

2. What Distro do you run on your main desktop/laptop?

I’m currently running Ubuntu Studio 12.04, probably will upgrade to 13.04 for testing/documentation purposes. I started off with Red Hat 7.3 years ago, migrated to SuSE for a few years, and then settled on Ubuntu somewhere around 2008. When I discovered Ubuntu Studio in 2010, I knew I had found what I was looking for.

3. What software do you depend upon with this distro?

Ubuntu Studio is geared towards audio, video, graphic, and creative production in general. For music, I use Ardour, Hydrogen, SooperLooper, and a bunch of other tools… LMMS is nice, Rakarrak, and so on. Ubuntu Studio comes with just about everything you’d need for music production already installed and configured.

For writing, I use the Linux Beta of Scrivener, from Literature and Latte. I also use WriteOrDie (with Adobe Air) for those stubborn days of writer’s block.

For productivity I use Dropbox, Evernote (running in Wine), Lastpass, XMarks, Thunderbird, and LibreOffice occasionally. I use a lot of Google Chrome plugins too, especially CloudPrint, XMarks and LastPass. I use Evernote Clearly on a daily basis to read news articles without all the garbage ads and sidebars.

4. What kind of hardware do you run it on?

I’ve got an inexpensive HP 625 laptop, I upgraded it to 8GB of RAM. It’s not that fast, and the touchpad on it is very iffy… otherwise, it’s rock solid, haven’t had a problem with it. Does everything I want it to. If I upgrade in the future, I’ll probably go with a higher-end HP with a better chipset. (I’m also HP repair tech certified, so fixing those laptops is a piece of cake)

5. What is your ideal Linux setup?

I think an HP Elitebook 2170p (I’ve used these, they’re very nice!) would be perfect with an SSD and 8+ GB of memory. It’s got ridiculous battery life (around 8 hours with the extended battery) and it’s very portable, yet packs full-size laptop performance. And everything is Linux-compatible. It’d be perfect with a docking station and dual 22″ monitors! The only downside is that is uses Intel graphics… not my first choice. It wouldn’t be for gaming, though, so it’s okay.

6. Will you share a screenshot of your desktop?

Here’s a shot of my desktop running Native Instrument’s Guitar Rig 5 under Wine using ASIO drivers.

GuitarRig 5

 

ADDENDUM:

What is a computer if you can’t have fun with it? Here’s some games I play on my Linux machine when I’m not working! Some I got from the Humble Indie Bundle, some from Steam, some I bought direct. All are native Linux versions.