Feb
4
2009
I blogged about setting up my Radium keyboard in Ubuntu 8.04. Now in Ubuntu 8.10 the problem is the same but the solution is different (but easier).
Install the midisport-firmware package, and then add this line to /etc/fstab:
none /proc/bus/usb usbfs devgid=46,devmode=664 0 0
Mount it, or reboot. Once usbfs is mounted, then it will work as advertised for a midisport 2×2, at least. It doesn’t work for my Radium, I imagine because the udev rules aren’t sufficient. But since I have a midisport 2×2 sitting here, I’m not going to bother figuring it out. Sorry, but I bet you can figure it out with that head start.
no comments | tags: firmware, ibex, midi, midisport, radium, ubuntu, udev, usb
Mar
23
2008
I’m porting Aeolus to OS X. In the process I’m learning how CoreMIDI works. Naturally you get to hear my opinion on the matter.
CoreMIDI seems like a decent framework, actually. It is callback-based, which is good. It has a pretty reasonable design; physical devices and virtual devices alike communicate with eachother in the same way. They each have endpoints—source endpoints and destination endpoints.
It all looks well and good on the surface, but there’s some problems. The first problem is arguably a feature. You can create input/output ports and connect sources/destinations to those ports from within your application. This allows you to make a cute or complicated dialog box where the user can select the MIDI (virtual) device(s) she wants to use. Sounds reasonable right? And so it is, and I wouldn’t argue against this ability.
The badness comes in when you consider that every application has to duplicate this functionality. It would be much better to have an external patchbay for connecting applications together. This would be more powerful and flexible and free up application developers to not worry about it. They just have to create the endpoints and then they’re done.
Alas, OS X proper has no such patchbay. “Yes it does, silly. It’s called Audio MIDI Setup” you say. That’s the most infuriating thing—Audio MIDI Setup lets you route between devices in just the sort of way I’m talking about, but it only works for physical devices. Someone needs to be shot.
Luckily, some guy named Pete wrote a MIDI Patchbay. It’s serviceable, if quirky and ugly. He also wrote a simple software synthesizer called SimpleSynth (also quirky and ugly) that does what something in OS X (e.g. QuickTime Player) should already be doing: accept MIDI input and use the QuickTime music synthesizer to render it. Kudos to Pete for filling in the gaps, and I’m sorry for calling your children ugly.
While I’m complaining about patchbays, I’m still dumbfounded that JACK doesn’t seem to have a command-line application for patching things together. I’m thinking something akin to aconnect for ALSA MIDI, though of course for JACK it would be for audio and MIDI both. qjackctl is absolutely marvelous, and I wouldn’t use anything else given the choice, but sometimes you don’t have qjackctl handy and it might be quite difficult indeed to get it. This was the case for me the other day. I had the latest greatest JACK installed from source, but qjackctl (which I finally managed to figure out how to build using the QtMac binary, whose qmake refuses to output a real Makefile but instead an XCode project) was choking on it. So I had to downgrade to Jack OS X and rebuild qjackctl (it’s still an immense improvement over JackPilot). This is depressing because the newer version of JACK is much more friendly to the CLI user on OS X. The version in Jack OS X 0.76 still requires some ugly workarounds (which JackPilot helps you to do). The latest version of JACK (0.109.2) Just Works™ when you type jackd -R -d coreaudio. So I’m still starting JACK with JackPilot, which I then summarily quit in favor of qjackctl.
3 comments | tags: audio, coremidi, jack, jackpilot, mac, midi, patchbay, qjackctl
Aug
9
2006
I get the impression that most users of MIDI sequencers step record. At least,
the writers of the sequencers pay little attention to live recording. For
evidence, I cite the abundance of tracker sequencers available for Linux, and
the three major sequencers for Linux (IMHO) which all fall short in the
relatively simple task of accomodating people like me who prefer to record
things live: Rosegarden, Muse, and Seq24.
Live recording is not complicated. You need a few basic features, and you need
to make them accessible from the keyboard without touching the mouse. Here’s an excellent UI model (that makes me drool):
width="400" alt="Frontier Design Group's Tranzport" />
And here’s a list of those basic features:
- FF, REW, Stop, Play, Record
- Replace and overdub modes.
- Punch
- Loop
- Metronome
- Lead-in of 2, 1, or 0 measures. My old Roland JW-50 from 1992 did a great job with this. You had the option of no lead-in but you also had the option of key-triggered recording. That is, you press record, and the thing starts recording the moment you start playing. This is extremely useful.
- Track muting and solo
- 16 tracks
- Variable speed (percent of tempo) for slow and fast recording.
- Undo
That’s it. Most sequencers have some or perhaps even most of these features,
but leave out essential aspects such as no mousing, replace recording, no
lead-in, and not crashing. Rosegarden goes a step further and makes the simple
things that you take for granted difficult as well (but it does everything else
under the sun and it’s hard to justify not using it).
Seq24 is unique in its failure because it is oriented at realtime performance.
Note that word, “performance”. It could perhaps just as easily be good at
realtime recording if it tried, and then in spite of its loop and pattern-based
approach it would still be an excellent sequencer for us non-pattern junkies.
(Sequence a Bach organ fugue in a tracker, I dare you.)
If I have the honor of speaking to someone who is writing or improving a
sequencer, please consider the keyboardists and take my thoughts into
consideration. Believe it or not, the lack of these basics will drive a
keyboardist crazy just as fast as mousing will drive a CLI junkie crazy. Which
is quite ironic as most step-recording Linux sequencer developers are probably
CLI junkies.
1 comment | tags: audio, midi, music, sequencer, usability
May
22
2006
I love my little M-Audio Radium 61 MIDI
Controller (keyboard
for you uninitiated). I just (re)learned a disturbing truth about it though: it
has two MIDI outputs and zero MIDI inputs. This is just plain silly. One
MIDI out is the keyboard’s output, and the other passes through what’s coming
from the USB.
I suppose two MIDI outs is better than one, and it looks like no controllers in
this class ($100-$300) have MIDI in. This completely changes my ideas for
laying out my studio. Now I’m going to have to have the Yamaha
P-70
connect directly to the computer which means getting an adapter to go in
through the sound card or one of those MIDI channel boxes for multiplexing
MIDI.
Oh well, what’s another $20 when I need a $1000 pedalboard to complete The
Organ?
no comments | tags: audio, controller, keyboard, midi