This Week’s 10 Minutes of Hate: Linux Midi

Midi- oh, how do I loathe thee? Let me count the ways…

I’ve never liked midi, it’s fabricated, boring, hollow existence bothers me whenever I hear it, yet I am currently at it’s mercy. Linux may be ahead of other operating systems in many respects, but for some reason, midi support seems to have been completely passed over.

One of my side projects right now is writing a CD. a useful tool for writing a CD is a Piano. Since I do not own/have room for a piano, I decided to purchase a midi controller to attach to my computer. After careful research, went down to Guitar Center and picked up the second cheapest one I could find- the M-Audio Oxygen. It only has 25 keys, but I figure, hey I only got 10 digits. Even if I was to get my toes into the act, I’d have 5 keys to spare!

So anyways, I honestly have been planning on getting one for almost a year. I got it home and found the joy of trying to get it to work with Linux. Since my onboard soundcard was a piece of crap, I had problems getting midi to work in general. I got fed up and went and spent ANOTHER $80 to pick up a new sound card- another purchase i’ve been planning on. I got an Creative Soundblaster Audigy 4, which I was told had reasonable recording capabilities, hardware midi sequencer and reasonable linux support…

“Reasonable” is a funny word- it’s completely subjective. If a dung beetle came up and offered you a plate and said “hey man, eat up, this is good shit,” You’d probably realize he meant well, but still decline the plate full of feces. Taste, much like beauty, is in the eye of the beholder. So back to my reasonable support. After a bit of battling, I was able to get regular playback working- as an added bonus, I can now turn down the bass on my subwoofer so the neighbors don’t hate me. Midi, however, is still out of my grasp.

“They” were partially right. There’s lots of documentation. on all the various versions of the audigy (except of course mine), on different distributions, some using alsa, some using oss, finding different problems, using different versions of everything. No one person has anything remotely close to my setup from what I can tell- Audigy 4 + Gentoo + M-Audio Oxygen midi controller + ALSA. In other words, hundreds of pages of crap to sort through and very little of it useful by itself. I don’t blame the linux community for this, I blame the lazy manufacturers who refuse to help and make us end up doing it for them. It sucks and it pisses me off.

So anyways, I have three goals-

  1. get midi playback working, so I can listen to ff2.mid
  2. get my keyboard working so can input into the program called “noteedit”
  3. figure out what part, if any, this remote and IR tower have in this.

Getting Midi to Work

Here’s an idea of where I’m at now.

draccus ~ # aconnect -o
client 64: 'Audigy MPU-401 (UART)' [type=kernel]
    0 'Audigy MPU-401 (UART)'
   32 'Audigy MPU-401 #2'
client 65: 'Emu10k1 WaveTable' [type=kernel]
    0 'Emu10k1 Port 0  '
    1 'Emu10k1 Port 1  '
    2 'Emu10k1 Port 2  '
    3 'Emu10k1 Port 3  '

draccus ~ # aconnect -i
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 64: 'Audigy MPU-401 (UART)' [type=kernel]
    0 'Audigy MPU-401 (UART)'
   32 'Audigy MPU-401 #2'

draccus ~ # lsmod
Module                  Size  Used by
snd_seq_midi            6752  0
snd_emu10k1_synth       6912  0
snd_emux_synth         35840  1 snd_emu10k1_synth
snd_seq_virmidi         5952  1 snd_emux_synth
snd_seq_midi_emul       6592  1 snd_emux_synth
snd_pcm_oss            47264  0
snd_mixer_oss          16832  1 snd_pcm_oss
snd_seq_oss            33920  0
snd_seq_midi_event      5888  3 snd_seq_midi,snd_seq_virmidi,snd_seq_oss
snd_seq                49936  8 snd_seq_midi,snd_emux_synth,snd_seq_virmidi,snd_seq_midi_emul,snd_seq_oss,snd_seq_midi_event
snd_emu10k1           118500  1 snd_emu10k1_synth
snd_rawmidi            20704  3 snd_seq_midi,snd_seq_virmidi,snd_emu10k1
snd_seq_device          7244  7 snd_seq_midi,snd_emu10k1_synth,snd_emux_synth,snd_seq_oss,snd_seq,snd_emu10k1,snd_rawmidi
snd_ac97_codec         92320  1 snd_emu10k1
snd_pcm                80904  3 snd_pcm_oss,snd_emu10k1,snd_ac97_codec
snd_timer              21444  3 snd_seq,snd_emu10k1,snd_pcm
snd_ac97_bus            1792  1 snd_ac97_codec
snd_page_alloc          8456  2 snd_emu10k1,snd_pcm
snd_util_mem            3328  2 snd_emux_synth,snd_emu10k1
snd_hwdep               7328  2 snd_emux_synth,snd_emu10k1
snd                    50596  16 snd_seq_midi,snd_emux_synth,snd_seq_virmidi,snd_pcm_oss,snd_mixer_oss,snd_seq_oss,snd_seq_midi_event,snd_seq,snd_emu10k1,snd_rawmidi,snd_seq_device,snd_ac97_codec,snd_pcm,snd_timer,snd_util_mem,snd_hwdep
audio                  44608  0
quickcam               73316  0
videodev                7360  1 quickcam
wacom                  13632  0
nvidia               4084560  12
usb_midi               22148  0
soundcore               7648  3 snd,audio,usb_midi
usbhid                 31648  0

I’ve used afxload to load my sf2 soundbank. I believe this has worked correctly.

I can open kmid and play ff2.mid, but no sound comes out. the little virtual keyboards flicker and play, but no sound. I’ve doublechecked and the “synth” slider in kmix/alsamixer/etc is at full volume.

Getting the midi Keyboard to Work

I figure this can wait till we get the rest of midi working, but I’ve found when it’s hooked up via usb, /dev/midi and /dev/midi00 will both output characters when catted and the keyboard is pressed. This means usb-linux is working, but it’s still not recognized by alsa. I believe I also have to load some type of firmware into it, but I’m a little fuzzy on that part.

draccus ~ # cat /dev/midi

IR Tower and Remote

The soundcard came with a remote and USB IR tower. the remote is a Creative RM-1500.
One of the posts on this page about ALSA, audigy and emu10k1 seemed to imply midi wouldn’t work until the IR tower was fixed. Check out the ” Sunday, 29 February 2004″ post for more info.

If anyone has any questions/comments/help/ explicit directions, I’d be very greatful. I just checked my history in firefox and I have over 100 articles that I’ve read and 34 google searches. I’m running out of steam.

BTW, big thanks to the guys of #alsa and K_F for helping me get as far as I got- if I seem frustrated, it’s because I am 🙂

Update 1

Alright, so after letting my subconcious work on the problem last night, I’ve come up with a plan of attack. what’s really hurting me on this is a lack of knowledge revolving around my hardware and alsa, so I’m going to do a bit of reading up about alsa today. I’ve come up with the following troubleshooting goals:

Identify a path that I can troubleshoot- how can I make sure asfxload is working? How can I verify Synth volume is up? what comes next? what needs to be there?

I should note that Timidity is up and running, and I can use it to verify that yes, synth volume is reasonable.

I guess the next step is to verify that soundfonts are being loaded.

Kiss my Ass, Linksys (pt. 2)

I’ve apparently become either very brave, or very stupid in my old age. Last night at 10pm I reset my router and flashed it’s firmware with an open source alternative.

A few years back, some Linksys tech realized the usefulness of some open source components and implemented them in the firmware of their routers- they just forgot to follow the license agreement of the software they used and didn’t tell anyone or release the source code and the changes they made. Along comes some hacker and recognizes the code, and a shitstorm of controversy hit Linksys, which ended up with them agreeing to release their changes (as they should).

From this, a lot of open source projects popped up with re-implementations of the firmware. One of them was DD-WRT, which added a lot of new functionality to the linksys router. This is what I’m using now.

Among the many new features, I have access to the following: WPA2, pptp service on the router, syslog, MRTG, more than 10 port groupings that can forward, and SSH access. By the way- this is all running on a linux kernel, so the regular linux stuff applies.

Everything was running smoothly by 2am- would have had it done by midnight, had I been using the proper password. But that’s over and done with. Oh, remember how I got pissed at linksys for their visually impaired-unfriendly text interface?

Works fine now, so I don’t want to hear the bullshit that they couldn’t do it. Here’s what the new interface looks like:

A bit prettier, if you’ve ever seen the original linksys interface. So it’s prettier AND more functional.

The sad part here is I’d consider buying another linksys router for no other reason than to run dd-wrt. If it holds up with no problems for a month, I’m gonna be sending the author some “good job, keep it up” money. I’m impressed, so far.

Review: iAudio M5 (day 5)

So Today is the last day that I get to play with Jackie’s M5. I’m gonna miss it 🙁

on the bright sid,e I did find out something cool- the battery almost died on the way to work- that’s because it hasn’t been charged since monday. The long ass battery life this thing has is very nice. I thought when I connected it to a USB cable it would trickle charge, but it turns out, as I just found out a few moments ago, you have to slide the power charge on, then the “charge button” I mentioned on day one glows bright red- it’s a light, not a button! The screen says charging and has a little “battery filling” animated icon. I’m gonna let it sit for a while and see how long it takes to charge.

I definitely want one though, and that’s what matters.

Kiss my ass, linksys

I remember, back in the day when Quality was more important than looking pretty… well, not really- marketing droids and slack-jawed fools always choose shiny and useless over plain and useful.

take, for example, the links WRT54G router. When I first got it, the firmware was buggy and ugly, but I could use it in lynx, a text browser. no pretty colors or images, just straight text. Using lynx meant I could edit my router config remotely to add/remove ports as I needed them.

well, that day is gone. it’s been gone for a while, but I recent had my hopes dashed again. The last revision of the firmware made the linksys router interface unusable in lynx (and elinks). I was messing with it yesterday when I got fed up and went in search of newer firmware for it- just my luck, I found it. Unfortunately, linksys took this oppertunity to make their interface even MORE useless.
It’s so bad, that I thought I’d include a few screenshots.

screencap of the linksys text interface
Here you can see the base interface I see when I log in- nothing special, but useful.
Below you see what happens when you dig past this pretty facade. this is what happens when I go to the security page.
screencap of the linksys text interface showing only underscores and brackets- no text or labels

This is an EMBARASSMENT in my eyes. Linksys, you should be ashamed. I know this is an embedded device and all, but for crying out loud, could you at least get some competent developers in there? Keep in mind, you’re seeing what a Blind person would hear when they tried to access this with a text reader.

So who do we have to blame for this crappy code?
screencap of the linksys text interface source code showing it's property of another company and not for production use

And I quote, for the visually impaired: “This software should be used as a reference only, and it not intended for production use!”

Someone should tell Linksys that.

so I guess I could either load up an open source firmware binary and hope for the best, or just get a new router. whatever I get, it probably won’t be a linksys. I’m tired of this shit.

UPDATE: as mentioned in the comment below, the firmware version was showing what it was like BEFORE this latest update. this is what it looks like aver reloading the page:

screencap of the linksys text interface showing only underscores and brackets- no text or labels
It makes me want to vomit, seriously.

Review: iAudio M5 (day 4)

So I’ve been using the M5 for the last few days and have been pretty impressed. I missed a few days due to a long holiday weekend, but the last few days I’ve been on it.

I still haven’t read the manual- I need to check the CD tonight. It’s still broken on their site… Actually, I could just check google’s cache of the iAudio M5 mamual. I think I’ll do that now.

As it stands now, I’m 90% sure I’m going to buy one for myself. I haven’t used a portable music player since my CD player my freshman year of college, and a cassette player in high school before that.

Something else I’ve noticed- it’s more masculine than the ipod. It’s metal and shiny, where as the ipod looks like a femine hygene product. That amuses me on some level.

Review: iAudio M5 (day 1)

Since my music collection is 100% legitimate and ripped in Ogg Vorbis, finding a portable audio place that can play my music is a bit tough. There are 3 major players and a bunch of minor ones- the Neuros, the Rio Karma and the iAudio series are the leaders however.

The Rio Karma is very difficult to find these days since it went out of production. I purchased a Neuros about a year ago and it was such utter crap I returned it (which broke my heart since I was looking forward to it). I got Jackie the iAudio M5 for her birthday hoping it would be better than the neuros. She’s had it for a week and now it’s my turn to figure out all the features she hasn’t yet. I figured, “while I’m at it, I’ll do a little review.” Here’s one iAudio M5 review I’ve found for it which includes pretty pictures.

Disclaimer: This is my first real mp3 player (other than the neuros), so I am not spoiled by the features of other players.

First thing I notice was how small it was- it is also very sleek. It’s a nice neutral silver color with a polished control joystick. At first I had doubts about the joystick- I was afraid it was easily breakable. That is not the case. it’s very study, and as an added bonus I can adjust the volume while its in my shirt pocket without removing it. It’s just sensitive enough to make operating it in this fashion easy, but not easy enough to accident switch songs if it gets bumped.

it has a USB 2.0 socket on the side under a protective cover. The cover is connected in an odd way that makes it “dangley”, and I have doubts as to how long it will last. That’s just a minor complaint though- I honestly think it’ll last longer than the rubber booties on my digital camera did.

As for oddities, there’s a button on the top of it labelled “charge”. I don’t know what it does, and it doesn’t appear to have much to do with charging. I’m guessing it’s tied into the windows software that came with it. I’d read the Manual but it appears to have gone missing.

The actual onboard software is a bit confusing at first- it took me a minute or two to get the hang of it. Jackie had a hard time trying to figure out how to get it to shuffle, but I found the setting in “settings->playmode->shuffle” in about 30 seconds.

One nice feature I found was fade-in. I set it to 3 seconds, and I’m guessing that it’ll take the last 3 sconds of the current song and fade into the next, which is much nicer than the half-second gap that was there beforehand. I’ve had it set like this for the last 30 minutes, but I haven’t actually heard it do it- the transition is too smooth for me to notice despite the range of music I’m listening to.

As I write this, I’m listening to “Hittin’ the Note by the Allman Brothers. I’m using my own set of headphones, and the sound quality is pretty good. This is one of the CDs I’m currently favoring

It also has a voice-record feature for taking verbal notes- it’s a good idea and nice feature, but the mic placement is a little crappy- if you hold it like you’d expect to hold an oldschool micro-tape voice recorder( with your thumb on the record button), the mic hole sits between your thumb tip and the fleshy part at the base of the thumb.
I haven’t tested the quality yet, I just know that it exists.

Probably the best feature of the entire system is the fact that it’s a USB storage device, meaning I can directly copy files/playlists voice records, etc back and forth in linux as if it were an external harddrive. This also makes it easy for me to script up playlists in bash and write it to a file.

Overall I’m impressed with the unit, and have no problem recommending it, especially if you’re a linux user or have a collection in FLAC or Ogg Vorbis.


Hrm… I think I’ll try something new this year. As some of you know, 12/31 is my birthday, and I’m 26 now. That makes it twice as good to look back on my life and reflect. So what’s changed? Quite a bit. I always had a goal growing up, that when I was 25, it would be the one of the best years of my life. Looking back, I think that it very well could be.


This was my first full year in Virginia. Went with jackie back to visit friends in Michigan a couple times and realized how much I dislike Virginia. Growing up, I couldn’t wait to get out of michigan… now that I’m here I want to go back. That was quite a shock.

I worked at SPX(I still don’t use their full name here) for a full year, and went from junior developer to developer to webmaster to system admin to lead developer, which those last 3 all happening at the same time. I left the company over money issues and ended up with CSX(again, no full name), where I’m a full time Linux System Administrator. The job is great. I’ve been with them for 3 months as of christmas eve. It also allowed us to afford a new bed- the original move down here did a number on my back, and has been messed up for the last year. I went and saw a doctor and got some anti-inflammitories about the same time as we got the bed, and for the first time in a year, I was able to sleep 8 hours straight. I just ran out of the naproxin, but my back is in much better shape than it was.

We’ve been at our apartment complex for over a year now- This is the first time I’ve stayed at a single apartment this long since I started college. It’s not a huge apartment but it is quite expensive. We’ve also been digging ourself slowly out of debt. We did end up taking on a new debt- my Ford Tempo finally died, and we bought a new Toyota Corolla (my first foreign car; has a lot more meaning to someone from MI). The car is great, but we added a whole lot more debt to our lives.


Family has been good and bad, lots of interesting things going on. Jackie spent a good chunk of the year working 70 hours/week in New Jersey working on a case that her lawfirm ended up being disqualified for. The big bonus she was promised? well, she got 1/3 of it. She’s the 3rd person I’ve talked to this year who got screwed on a year end project based bonus through no fault of her own. From now on she ONLY works 40 hours a week. If they don’t like that, she can go elsewhere and make 50% more.

And to round things up:

  • Chaos, the cat who lives up to her name, turned 1 and has calmed down. She isn’t quite… “domesticated,” but she’s calm enough now that I don’t want to throw her off the balcony.
  • Toby still hides under the bed.
  • My brother Jamie broke his hand punching a guy, then got his ass kicked a few months later by a mob.
  • My brother Brian is still playing trumpet at UofM- his second year there I think.
  • My mom has been bowling a lot
  • My dad shot Bambi in the spine. He says Bambi is delicious.
  • My good friend Jeff got married to his girlfriend Corrie
  • my Mother in law Rhonda got married to her boyfriend jerry


It’s been a Good year for hobbies- or bad, depending on how you look at it. I’ve been hitting the guitar with a renewed passion after finding the Guitar Grimoire series of books and Rockhouse “Learn to Play Guitar” DVDs. Before this year I could only play chords and single notes- I was a rhythm guitarist essentially. Now I can play all 5 modes of the pentatonic scale and the first mode of the F major scale. I still got a ways to go, but this was a big hurdle for me; one I thought I’d never get past. Now I’m to the point of being able to understand music a whole lot better.

I’ve gotten back into art with the purchase of a Wacom graphic tablet. I’ve started working on several drawings, mainly pictures of old DnD characters I’ve played. lots of fun and interesting stuff.

For writing, I finally decided to write a story about the DnD world I created- Willis. since I can’t play DnD, I figured I could at least write about it. I got about 10k words in and realized that my outline had stopped being an outline. went back through and started writing a first draft, got about 1500 words in and got sidetracked with other projects.

One thing I’ve wanted to get into since I was 10 was electronics- never got the chance though. Well, the last 2-3 months I’ve decided it would be cool to make my own guitar pedals, so I picked up “Demystifying Electronics” and started learning. It’s a slow process, but I’m getting there. Right now I have a 130 in 1 electronics kit, and I plan on getting a real breadboard in another month or two (to make sure this isn’t another failed hobby).

And of course there’s my programming. I’ve been working on a bot named Ziggy who is based on one of my favorite DnD characters. He’s become quite a source of amusement to me, though I think he’s wearing a little thin on others. I’ve also started working on a Streaming Radio interface to allow me to tag and catagorize songs and create shows. It’s called Ridllr. If I can get this up to a certain level, I’d like to place it under a GPL license and sell support for it (though I doubt there’d be many takers). The hardest part was coming up with enough music to stress test it with large loads. Fortunately there was a used CD store down the block from me at SPXwith cheap CDs.

Linux is of course my bread and butter now, so I’m continually learning about new services and such. at CSX, I’m using Redhat, which I’ve honestly not had much experience with- I’m relieved to learn that it’s reall not much different, it just has some minor annoyances. the updates and security issue is really the most annoying. I’ve done a lot of work with apache, subversion and bind this year, and quite a bit with perl.

Lets see, hobbies that are going into stasis… Jow Gar is obviously since 1) there’s no place to practice and 2) my teacher is still in MI. Chainmailing is as well because I’ve always got my hands full with my other hobbies….


As I mentioned in the section above, Jeff got married. Shabbs got his wife pregnant and she popped out little zsolt …”skullteddy”.. ugh I’m horrible with spelling that, so phonetic will have to do for now. Made some new friends- Pete(dendrite) who I actually met in 2004 but we’ve kept in touch after both leaving SPX. There’s also Tony, who’s well on his way to a bright music career. Worked with him at SPX as well. Met William(shaldannon) and Ben(ben) who we hired at SPX right before I left- I keep in touch with them to help them when I can.

Of course there’s my new coworkers, but I differenciate between coworkers and friends to keep the lines unmuddied.

I also spoke to porter for the first time in over 5 years. I’ve come to the conclusion that being pissed off at people, no matter what crime (real or imagined) isn’t worth keeping up the hate. I doubt we’ll ever be close friends again, but at least it’s less thing I have to deal with. being mad at someone is entirely too much work. That said, he hasn’t continually annoyed me like other people I’ve put on a mental banlist. He’s never claimed to own my friends; he’s never threw temper tantrums and forced me to remove him; etc. Perhaps next year I’ll bury another hatchet.

I’ve spend a lot of time back in the #asp channel, so now I have a place to focus and vent my anger and hate. Met VP in real life, and he’s just as scary in person as he is to a clueless noob who wanders into #asp. But they’re all good guys generally and a very valuable information source.

All in all, it’s been a very good year. I have a pretty good idea how I’m gonna top it next year, but that’s my secret… for now.

Enjoy 2006 and happy birthday to ME, MUAHAHAHA.

a new trick: Electronics

One thing I’ve been putting off for years was learning electronics. Like everything else, I’m not immediately good at it, but I think with persistence I’ll learn the basics and hopefully become competent.

I picked up an Electronics Demystified book about 3 months ago and read the first chapter; I decided to put off reading more until I had a chance to get my 130 in one electronics kit that I got when I was younger. Now that I’ve got the kit, I’ve started reading again- I’m almost halfway through, although the retention rate is about 5%. Once I’m done I’m going to go back through the book and take a lot of notes.

The end goal to all of this is I want to make my own guitar pedals.

in a month or so I plan on picking up a nice bread board and some components and putting together a simple Fuzz pedal. I’ve started collecting interesting simple schematics- finding things that will be easy to make.

Finding good programs for linux has been interesting as well. I found a schema creator called gschem which seems to be the leader of the pack so far- it’s still a bit clunky, but it’s usable. As I make breakthroughs in my studies I’ll post them to the blog.

Go to Top