Archive for the ‘Personal’ Category

Retro tunes with Phonon

February 7th 2010

So, in The Beginning, when I was just a young padawan on the Internet, I had been let into a glorious secret: Emulation (not of IBM System/360 machines, but of more important things like the Super NES). Some branching from there led me to zophar.net, a popular emulation site, and their message boards, and also left me with a fascination with emulation.

The attributes of some of the older systems like the NES and Super NES made it fairly easy to capture their music-producing software, since those systems used separate co-processors to handle music effects. NES music would be stored in the NSF format, and SNES music was handled with the SPC format (named after the audio chip used, the Sony SPC700). There were (and still are) specialized plugins on many systems to play these formats (they emulated only the music chip, not the rest of the system).

I’ve been involved on the periphery of some of these things for the past couple of years. (For instance I had written a KFileMetaInfo plugin for KDE 3, and had helped Chris Lee with adding playback support to GStreamer.

One problem with the previous GStreamer solution (which I’ll call gst-spc) is that the underlying playback library, libopenspc, is written in x86 assembly, and has some crash bugs associated with it as well. As well the code has long been orphaned. I’m not really any good at writing emulation code and although I could learn, it would take far too much time for me to do anything useful.

Luckily for me the state of the art has advanced and last year I was pointed to a library called game-music-emu. This library included a very good SPC emulator written in C++, which had been merged into some popular SNES emulators already. Unfortunately it didn’t really have a great build system (using it involved simply copying it into your existing program) so my initial proposal to port GStreamer to use game-music-emu by simply including the source files with GStreamer was rejected. The GStreamer devs preferred to have an external library which could be used (or not) and I couldn’t blame them since in general good OSS projects avoid copying or forking external code.

So I contacted the game-music-emu author (Blargg) asking about the possibility of adding support for building a library, and ended up with commit access and an invitation to do it myself. Hmm.

So I did, and awhile ago I had made a release of “libgme” 0.5.5, working with Blargg has he got free time. My subsequent patch to GStreamer was accepted and since gst-plugins-bad-0.10.14 it has been possible to use libgme to playback many emulated music file types (not just SNES, but others as well).

With that solved I left the issue, but I recently came back to it since I figured out that even after upgrading to gst-plugins-bad-0.10.17 the other day, that gstreamer playback was not using libgme, but the older libopenspc.

At first I thought it was simply my fault, as I’d still had gst-spc installed from years and years ago. Removing gst-spc and libopenspc (just to be double-sure) left me with no SPC playback features. Running gst-inspect confirmed I did not have any gme decoder. WTF.

I then again thought it was my fault because I had installed libgme to /usr/local instead of /usr. So I dutifully wrapped up libgme in an ebuild and installed it. And still nothing. WTF.

I dug into the Gentoo ebuild for gst-plugins-bad and it seems that for whatever reason not all possible plugins are installed. It seems the new installation method is supposed to be that each individual plugin is supposed to have its own ebuild (i.e. gst-plugins-gme), like how Gentoo has split out other packages like KDE into individual ebuilds. Fair enough.

I write another ebuild, and finally hit paydirt:

Screenshot of music player playing SPC files
The Qt example music player playing SPC files

Obviously this does require that you are using the GStreamer backend for Phonon to have this work, otherwise you can just try it in some other GStreamer-using application. (I’d show it in JuK but I’d have to add SPC support to Taglib first)

If you’re interested in the ebuilds I used you can use this Portage overlay, (SHA-512 sum c0ff9aa5413b0c0b14f7c52d5b3ee887edc4e7bf47182e58c21e9c340d8ff7e9). The overlay may or may not work for you, and I don’t even know if overlays are still the “hip” way to do things in Gentoo, but It Works For Me. ;)

Posted by mpyne under Computing Troubles & KDE & Personal & Programming | 3 Comments »

So long 2009

December 31st 2009

So 2009 is expiring where I live.

The year was shaping up extravagantly 12 months ago. We were expecting our second baby soon. My ship had just come off a spectacular (for SSBNs) patrol, and had won the squadron Battle “E” and even the Omaha Trophy. I was due to rotate to a nice shore duty soon.

In my volunteer efforts, KDE 4.2 was shaping up to be a fantastic release of the KDE Plasma Desktop and associated platform software. I was even going to get to visit my family in the upcoming 2009 summer and reconnect with a lot of people I hadn’t had a chance to see in awhile.

As it stands though, 2009 has been a massive heartbreak. Good riddance to a horrible year. Here’s hoping 2010 can’t get any worse.

Posted by mpyne under KDE & Personal | 2 Comments »

kdesvn-build 1.11

December 23rd 2009

kdesvn-build 1.11 has been released. (Update 2009-12-26: Fixed broken link, thanks deabru)

Changelog is basically this:

  1. Documentation is improved.
  2. The script itself is less craptacular.

Happy Holidays, Merry Christmas, etc. etc. I’ll be on duty tomorrow :-(

Posted by mpyne under Personal | 2 Comments »

“Decontamination efforts continue at the Pyne residence…”

December 19th 2009

I don’t normally post about noteworthy disasters in diaper changing because, well, duh. Babies and toddlers in diapers will result in messes.

But this last one was so bad that it nearly should have resulted in news coverage, a Federal disaster area being declared, cleanup crews in the HAZMAT suits, etc. YUCK.

Token KDE reference for pk.o: I’m working on improving kdesvn-build docs, more on that later.

Posted by mpyne under KDE & Personal | No Comments »

GNOME + Slashdot

December 12th 2009

So our brothers/sisters at the GNOME Project managed to hit the front page of Slashdot.

There’s a lot one could say about the topic, but I’ll just leave it at this: I think it’s ironic that a project started essentially entirely due to the non-Free nature of Qt (at that time) would decide to separate from the Free Software Foundation and GNU based on Richard Stallman’s disapproval of proprietary software. I guess the times, they are a-changin’.

Posted by mpyne under Personal & Political | 16 Comments »

The November update

November 24th 2009

So it’s been a busy month for me:

At work I’ve qualified as an instructor, qualified as Command Duty Officer (basically the senior-most officer on duty when everyone else goes home for the day), and just today I’ve become the Division Director for my division. Basically it just means way more work (I spent 10 hours at work today…) but on the other hand I’ll eventually get my picture on the posted Chain of Command pictureboard at the entrance. Not sure that’s the best tradeoff ever but that’s the major job I was assigned here for in the first place so onward I’ll go.

My class has a sense of humor. I mentioned yesterday that we always ran out of a particular flavor of coffee creamer first while underway. When I walked into the class today there were two little individual-sized creamers waiting for me. :)

On the KDE front, I sent the KDE.news story about Sheldon’s T-shirt to a friend of mine who watches Big Bang Theory. I’ve switched kdesvn-build in trunk to not use any specific remote alias names for git repositories (since people who already had a repo clone couldn’t just use it with kdesvn-build). Finally I’ve been testing a patch to fix a JuK crash-on-shutdown bug. (My reproducer hasn’t gotten back to me though, so it may end up in trunk with me being the only tester :-/). Oh, Jeff Mitchell and Kubuntu conspired to get support for ASF and MP4 added to JuK (requires taglib 1.6, with support for MP4 and ASF specifically enabled). Still to do is to actually make a new kdesvn-build release, change the kdesvn-build name (I’m accepting reasonable suggestions!), and somehow, someway, eventually port JuK off of qt3support and kde3support.

Last (but certainly not least), on the personal level I’ve been super-busy learning LaTeX so that I could turn in two research papers (due on the same day, THANKS PROFESSORS! :P). Now I have to prepare related presentations (which I’m going to use LaTeX Beamer for).

The most somber assignment deserves its own paragraph: We received the death certificate for Emma in the mail recently. We know as much now as we did when she died; the cause of death is listed as undetermined. I need to find time during the working day to run to various Navy offices to handle the administrative mumbo-jumbo of updating my record of dependents to match. It’s still weird. Every day that I really focus my thoughts on Emma, I still don’t really accept that she’s dead. Not sure when it will finally hit me but I’m not looking forward to that day.

Posted by mpyne under KDE & Navy & Personal & kdesvn-build | 2 Comments »

Professional software development

October 18th 2009

Sadly the title doesn’t mean I’ve gotten a job developing software. No, in this case I’ve finally bitten the bullet and joined one of the two major software developer professional organizations here in the US. In my case, the IEEE Computer Society. I suppose I may join the ACM later though.

Anyways, I didn’t actually join because of professional fealty or anything, but more because as a graduate student it’s time to start digging into the resources available in the various published journals and conference proceedings.

On the other hand you in theory get access to other useful things as well. For instance there’s some Safari Books thing that lets you read different computer-related books online. I don’t really find it horribly useful myself since you have to read it through the browser (and I don’t feel like screen-scraping it just to convert to PDF). But at the same time it’s better than nothing at all.

Posted by mpyne under Personal & Programming | No Comments »

“When it rains, it pours”

September 28th 2009

So last month my daughter died. My grandfather has been in the hospital for a week but his condition has deteriorated and now he’s not expected to live longer than a day or two. :(

2009 started off so nice but it’s ending up a horribly rotten year for me. Of course my thoughts now are with my family, especially my Grandma. I’m glad that my Grandpa was at least able to hold Emma this year.

Posted by mpyne under Personal | 7 Comments »

Car batteries

September 28th 2009

I now hate side-post car batteries. My wife’s car battery died today and since she has appointments to take Ian to and I have work to go to I needed it fixed today. Since it’s just a car battery I opted to do it myself.

Anyways, it’s all fixed now. The estimate was 30 minutes for the trained car shop repairman who has replaced a million of these. It took me 45 minutes (and with crappy tools to boot) so I feel OK about it. I just wish my fingers would quit feeling sore…

Posted by mpyne under Personal | 3 Comments »

Keep moving

September 19th 2009

So, I’ve been trying to keep working and moving and generally being productive. It helps me feel a bit better and besides, it’s easier doing something than to do nothing.

Since the most distracting type of “doing something” for me is coding, I set myself the task of changing the system tray icon implementation for JuK to the newly-added KNotificationItem. This was involved enough in JuK’s case to be worth doing without being so involved that I’d get fed up. It was a nice distraction for a day.

I noticed that the KDE 4.3.1 release was dedicated to the memory of Emma, which is something Mary and I appreciated.

I went back to work last week, but it was too early as it turned out. I tried again yesterday and it seemed to go better so I think I’m on track to resume my qualification process for instructor duty. Obviously the support provided to me by my command has been invaluable in helping Mary and I get through the grieving process.

I had (finally) informed our bank/insurance company of Emma’s passing last week. I received a package in the mail from them yesterday, but with no forms or anything to fill out, just a short letter and a short pamphlet. Kind of a nice touch, I thought. The pamphlet mentions that the grieving process begins after the shock, numbness, and disbelief subside. In my case I know I’ve been grieving and I know that Emma is gone and yet depending on what I’m thinking it still doesn’t “register” sometimes that she is dead. It’s gotten to where it feels more eerie than painful but it is still disconcerting to simultaneously know that your baby is gone and feel that she is right there.

I also finally got around to moving some of our broken-down cardboard boxes to a recycling facility. I had thought it required showing up during business hours, which is difficult when those hours coincide with my working hours. And I didn’t feel like doing it when I was on emergency leave somehow. But it turned out there are collection facilities where you can just drop it off at your leisure, so now our garage has much less crap in it.

I am in graduate school now so although I will be trying to increase my programming-related activity if only for my own peace of mind, I’m not sure how much of that time I’ll be able to contribute to maintenance of my current KDE projects (as few as those already are). kdesvn-build will probably be my priority due to the shift (someday) to the Git source control system and because few KDE coders are familiar with Perl. (Even if kdesvn-build gets obsoleted I hear there is another possibility being worked on by a different Michael…)

I’ll probably try to blog more often as well. I usually feel better and I used to post entries quite frequently (when I was in college and had tons of time at least!)

Posted by mpyne under KDE & Personal | 1 Comment »

Next »