Many Jokosher users have been inquiring about support for JACK for some time. Since 0.9 we have had support for using a custom playback pipeline, but you could only use ALSA for recording. After removing the DBus code which we used to retrieve device information from ALSA we can now use whatever recording backend is supported by Gstreamer.

Since we removed our ALSA specific code, we now use the GstPropertyProbe interface on the “device” property to retrieve the list of devices. Currently this only works with ALSA, but if you are using Gstreamer from CVS the patches of mine that were recently committed make it work with PulseAudio as well. JACK does not support the “device” property at all, since the JACK control panel is used to select devices.

As an added bonus, removing the ALSA specific code will make it substantially easier to make Jokosher work on Windows. None of our developers are doing a Windows port, but if you are interested you are certainly welcome to try it out and see if it works.

This code is not yet merged into the main branch, but you can get it from the custom-audio-src branch in Launchpad and give JACK a try.

Posted in FOSS, Gstreamer on August 13th, 2008 by admin – Comments Off

After all these years of using it, learning about it, raving about it, and complaining about it, I can finally say I have contributed to Gstreamer. Specifically my contribution was four patches improving the ability to retrieve device information from the PulseAudio elements.

For the first year of my involvement with the Jokosher project, one of the questions which came up often was: “Is Jokosher a Gnome application?”. This needed to be decided if we were going to include hard dependencies for Gnome libraries. On the other hand, we heard from a few users who didn’t run Gnome, and liked the fact that Jokosher didn’t drag in loads of dependencies. Of course the disadvantage here is less integration with the desktop. As far as I know, all the developers for the project run Gnome, so integration would be nice.

Eventually we decided that we are a Gnome application, but so far we have yet to add any hard dependencies. I have wanted to integrate Gconf for a while now, but I never find the time. Even though we don’t have the Gconf or GnomeVFS (now GIO) dependencies, we always felt as if we were part of the Gnome community. I mean our mailing list is at gnome.org.

I am a little late on this one, but everyone is talking about the awesomeness that is the Linux Hater’s blog. Last month the Linux Hater wrote a very nice article about how to write a Gnome application. This was a follow up to the very popular article: How to write a KDE application. Since I have never written a KDE application, I have no comment there. But I would like to see if Jokosher followed all the steps, so here’s my analysis:

Find some reasonable app from another platform (Windows, Mac, KDE, whatever, but preferably, Mac). Bonus points if there are already 3 other gtk-based alternatives who don’t want to integrate with Gnome.

We don’t really like to compare Jokosher to Apple’s Garage Band, but it does make it easier to explain the concept to people so I guess we are guilty of that. But I am glad to say the reason we started Jokosher is because there is no GTK+ multi-track audio editor (single track audio editors are totally different and don’t count).

You MUST have a g somewhere in the gname. Extra credit if you can make it a “gn”. If you can use “gnu” or “gno” or “gna” you’re are gnawesome, and your app is already worth using. Make sure the name of your app bears no relevance to what it actually does. Also, NEVER document if the g is pronounced with the hard-g sound.

People have told us that Jokosher is a ridiculously stupid sounding name, and yes it does not have any relevance to what the program does, but still there is no g.

Use at least two object frameworks. Three is even better. I mean the “O” in Gnome stands for object, after all. Take your pick from Corba/Orbit/Bonobo/D-bus. Make sure at least one of them works over the network, but make sure your app never actually uses it over the network.

Nope sorry. I really want to give Jokosher a DBus API, but I haven’t got around to it.

Remind yourself that OO in C is not so bad. assert(gtk_no_really_its_not_so_bad). Also, remind yourself that GTK+ is way better than Qt because it has no commercial company writing code for it. So, you know, it’s more free, or something, and it’s got a + in the name.

Phew, we escaped this one. We don’t have to use C because the entire program is written in Python. And we don’t use Qt because at least at the time PyQt and PyKDE were poorly maintained and lacked any community or documentation.

Generate wrappers for every conceivable language, but make sure none of them work exactly how you want. Inisist that your distros package each wrapper in a separate package.

Since we decided to write Jokosher in Python, we weren’t intending to write bindings for any other languages – especially C. This is more of a library thing anyway, not a desktop application thing.

Explain to at least three other programmers how glib doesn’t really have much to do with gnome. Because they care.

What is glib? All the types and data structures I use are the Python ones.

Don’t forget a Tango Icon!

This one is dead on. We had Tango icons before we had audio support, and we’re an audio application! But there’s no way you can argue this is a bad thing. Tango is great.

Make sure your app builds on windows, but looks like ASS.

We’ve been meaning to try this, but we have some ALSA specific code right now and no one wants to take on the challenge of compiling Gstreamer on Windows. I disagree with the ass part. If there’s one thing Jokosher does well it is look good!

Enumerate all the features you want your app to have.

Cut 90% of them. Because they’re hard to do. But tell everyone that they don’t actually need that feature.

Implement 2% of them. Hide the other 8% in gconf. Hide them well.

There are a lot of features we would like to do, but are very difficult both from an implementation perspective and a usability perspective. But given enough time we will get to them as long as we can find away to do it without crowding the interface. Despite what the Linux Hater says, it is sometimes better to leave a feature out than wreck the interface with it. Also I have been meaning to hide features in Gconf, but like I said I never got around to it.

Your interface must not have more than 4 buttons.

Each instrument in Jokosher has at least four button on it. Plus three more that appear in the selection context. Despite all the yelling there is a balance there between too many and too few buttons.

Make sure it depends on at least four other libraries with g’s in their name. That raises your apps’ gnomyness

Gstreamer, GObject (doesn’t really count cause its part of GTK+), Glade. That’s only two. Three if you count Gnonlin.

Don’t use Mono, because you are spreading your STD’s to everyone. No, wait, use Mono, because it will make you way insanely more productive. Wait, no, don’t use Mono, because if you do, some freetard distro that nobody uses won’t distribute your app.

No Mono, got it.

Depend on a module that is “heading toward planned deprecation” so that it will now be “at the end of the Obama presidency we will almost have consensus of heading toward a planned deprecation over 20 years.”

I don’t think we’ve ever done this. We started using Tango icons and Cairo graphics pretty early on so I think we are far enough past deprecation.

Ressure yourself that even if your app sucks, at least it follows the HIG.

Wow. What a perfect one to end with. I don’t think you could sum up Jokosher in a more controversial way than that. It’s true Jokosher sucks at what it is supposed to be good at, namely recording and mixing. Yes most of these are problems with Gstreamer that we haven’t managed to fix yet. And yes it sometimes doesn’t like your hardware and sends crazy opaque error messages. But many people have told us how much they like the interface, and we love giving it a lot of attention and polishing it up. We follow the HIG almost religiously. 100% guilty here. Damn.

Four or five out of fourteen depending on how you count it. Either way that’s a fail. So according to the Linux Hater, Jokosher is not a Gnome application. Let’s assume that’s a good thing.

I recently moved out of my old house and into my new one, which is much closer to downtown. Of course this meant I had to change my address on all my credit cards, my bank account, bills and of course I had to get my new internet connection setup.

I dread moving my internet because the last time I moved into a new house I was originally planning on getting a Rogers high speed cable, but the guy who was supposed to install it never showed up. It turned out they called me the next week to confirm my appointment — they had scheduled it a week to late. But by that time I had already booked an appointment for another ISP called 3Web to install the almost identical cable high speed internet.

Finally after 21 days, my internet connection was active and I could get back to IRC, MSN and all surfing when I am bored. I lived in that house for two years and I kept 3Web service the entire time. The connection went out for about a day one time, but otherwise I had no problems with it. It was decent, but it wasn’t spectacular or impressive. Nothing to blog about.

Now two weeks before I moved, I called 3Web to let them know. They asked me what day I would like the service at the new house to be working. I said the first of May and they said okay. I thought, “That was too easy”. But on the day I moved, by the time I had a chance to open up the laptop and try it out, it was already working.

Contast this wonderful example of flawless service with my phone line. Bell recommends that you use the moving form on their site. So I did. However I got no response, no call to confirm from them or anything. When I got to my new house, the phone line was dead and I was still paying for the phone at my old house. As punishment I have decided I will no longer have a home phone. Right now I’m doing perfectly fine using Skype for outbound calls, but I still haven’t found a good provider of incoming VoIP lines for a 613 Ottawa number. I would be nice if SkypeIn was available in Canada. Maybe in the future I will get a cellphone, but it won’t be one from Bell.

There are certain companies which have such terrible service you dread dealing with them, and try anything to avoid it. Unfortunetly in Canada many of the monopolies are these kinds of companies, and these monopolies are so pervasive that everyone forgets what good service is like, or at least assumed there was no possible business model that would allow good support and cheap prices at the same company. My experience with 3Web, and flying with WestJet reminded me that is possible, so now I am voting with my wallet.

I lot of people don’t care about MSN Messenger. Especially those Americans who mostly use AOL Instant Messenger. But here in Canada, everyone uses MSN. I need it to contact all my friends, and maybe even more importantly my coworkers.

At work we have a corporate firewall which only allows outgoing traffic on HTTP port 80. This is okay because MSN has an HTTP method, which allows you to connect from anywhere. Recently the HTTP method stopped working with Pidgin. You could connect and see all your friends that are online, but if you tried to send a message it would report a connection error. A lot of people use Pidgin, but not all of those people use MSN with Pidgin, and out of those people most use the non-HTTP method, so they are fine too. But for the rest of us, this sucks. You can’t talk to anyone, and apparently a lot of people were very affected by this as you can see in the Pidgin bug tracker, and on the Ubuntu Forums.

This morning I was finally fed up. So I spent a few hours researching the MSN protocol, reading the Pidgin source code and capturing packets from the official Microsoft Windows Live Messenger client using Wireshark. After about four hours of insanely fun network reverse engineering, I had a fix.

I thought this as gonna be difficult, I would have to learn all the Pidgin code, and it might take days to figure out the newest changes in the proprietary MSN protocol. But it only took a few hours. Usually I would just sit back and wait for the Pidgin developers to fix it, because it’s their domain. Luckily this time I didn’t. I took a shot and it paid off big time!

I encourage all of you to dive head first into something you know nothing about and see if you can make a difference (especially those people who keep asking me about Jokosher bugs ). That’s what free software is all about.

I now own http://laszlopandy.com, and my old blogspot blog redirects to here. All the old posts and comments have been imported. Everything should be exactly the same with the exception of the much nicer WordPress theme which I stole from http://jokosher.org/. Hopefully redirecting my old page to this one will not cause my new XML feed to mess up the planet.

It is nice to finally have a server to put my own programs on and have it accessible from anywhere through my domain name. I originally thought that I would be using Python for all my web stuff, but do far I have found PHP to be really simple to use. This is mostly because in Python you have to put all your HTML in doc-strings, which prevents you from having syntax highlighting, and breaking up the string when you need to insert a variable is not elegant. I find PHP method of allowing you to jump in and out of HTML mode to be a much nicer solution.

Right now I’m only playing with WordPress and few PHP web apps that I wrote myself. Maybe one day I’ll get around to trying out Django and all that jazz, but currently I like 99% of what WordPress does and I therefore only have to spent time tweaking the remaining 1%.

Speaking of time, because of work and generally being lazy, I haven’t put a lot towards Jokosher lately. Summer is almost over and I will soon be revving everyone to get ready for our unit testing and our beta releases in the fall. Otherwise everything is gonna slip past Christmas. Let us hope it doesn’t come to that.

My hard drive at work got corrupted, and I needed to do a quick reinstall. Luckily everything was backed up on the network, so I asked around the office if anyone had an Ubuntu disk. The only thing I could find was a copy of Xubuntu Feisty Fawn, so I thought I would just apt-get install ubuntu-desktop afterwards.

The installation took a total of 10 minutes including partitioning, etc. But even more impressive is that fact that it takes less then 4 seconds from login to full loaded desktop. I haven’t put GNOME back on here yet, but that might change because I’m missing my deskbar. Anyway kudos to those Xfce and Xubuntu guys.

Despite the fact that I live approximately six thousand kilometers away from the venue, I will once again be making the trek to Wolverhampton, UK for LugRadio Live. I was lucky enough to be able to attend LugRadio Live last year and host the Jokosher BOF session, but this year I have been invited to give a lightning talk about Jokosher.

What the organizers refer to as a “lightning talk” is actually a 25 minute presentation in a decent sized room. It isn’t as big as being on a real stage but its big enough for me. This will be the first time I’ve done public speaking outside of my high school. Let alone that it is in a foreign country and in the presence of people who are much smarter than myself.

My talk will be entitled “Inside Jokosher” which doesn’t really give you an idea of what it is about, because to be honest when I made up the title I didn’t know what it was going to be about either. Now that I have the details of my presentation ready to go, an appropriate subtitle would be “A power user’s guide to the most open and flexible audio editor available.” Now I an making the assumption that Jokosher is more open than much of the competition and that using Python and Gstreamer makes it much more flexible. But to know for sure if I am right you’ll have to come to my talk and find out for yourself.

For those of you who can’t justify flying across the entire ocean for just one weekend, or can’t make it for some other reason, I believe there will be a video recording of most of the presentations, and I will probably end up turning my talk into an official power user’s guide for Jokosher.

Of course LugRadio Live will be on the 7th and 8th of July in Wolverhampton, UK. You can find out all about it at the official site.

I saw this article on slashdot. Here is a quote of Microsoft platform strategy manager Bill Hilf:

“They are full-time employees, with 401K stock options. Some work for IBM or Oracle. What does that mean? It means that Linux doesn’t exist any more in 2007. There is no free software movement. If someone says Linux is about Love, Peace and Harmony, I would tell them to do their research. There is no free software movement any more. There is big commercial [firms] like IBM and there is small commercial [firms] like Ubuntu,” he said.

Wow. I though this guy did a pretty good job when he came on LugRadio a year and a half ago, but he obviously doesn’t get it. Free software has nothing to do with money — it’s about liberty. Since the software I run and create still retains liberty then obviously the free software movement still exists. Geez maybe we need to get RMS to pay him a visit and explain this concept.