RSS feed icon

Mar 07, 2008

Splash out!

Early this week I spent an hour or two adding a nice splash screen to Braun. I thought it would give the application a sense of polish and professionalism, and give the user something to look at whilst the app was loading. A day later I spent 10 minutes removing it!

Read more ...

Posted at 11:22 | Comments(0) | Permalink | Trackbacks(0) | Tags: , | add to del.icio.us


Dec 30, 2007

Dynamically generating object methods in Python

I have recently been working on an object-oriented wrapper for the Python bindings to my [libxtract][1] feature extraction library. I used SWIG to auto-generate the bindings, and SWIG generally does a great job. The problem is that the functions it generates follow the original C code quite precisely, and aren't very 'Pythonic'. I wanted to create a nice Python class to hide some of the nastiness of the auto-generated functions, but became slightly daunted by having to hand-code every method of the new Xtract class with 50 very similar methods! Instead I decided to take advantage of Python's support for [lexical closures][2] to auto-generate the methods from the libxtract function descriptors using a method factory. The concept works like this (I think this is a fairly common idiom in Python):

Read more ...

Posted at 13:36 | Comments(0) | Permalink | Trackbacks(0) | Tags: , | add to del.icio.us


Dec 20, 2007

Debugging Max/MSP externals on OS X

I've recently been developing a couple of externals for Max/MSP. Initially I became very frustrated with trying to run the application inside a debugger because the PACE protection kept terminating the process. It eventually occurred to me to use the Max/MSP 'runtime version', which is not copy protected. This worked fine, and I was able to debug externals in the usual way using gdb:

Read more ...

Posted at 09:54 | Comments(0) | Permalink | Trackbacks(0) | Tags: , | add to del.icio.us


Nov 27, 2007

Juce

I recently discovered the Juce C++ library whilst reading about the very promising Jost plugin host. The library focuses on creating a good looking set of widgets, tools and non-GUI classes for developing specialist audio and graphical applications. It has an impressive commercial user base including Cycling 74, who according to this thread will be using it as a basis for the new Max 5 GUI.

Read more ...

Posted at 09:00 | Comments(0) | Permalink | Trackbacks(0) | Tags: , | add to del.icio.us


Oct 08, 2007

What I learned from Python that makes me a better programmer when I use C

Here is my response to this call for posts on the raganwald blog. A response from Ryan Ginstrom can be found here

Read more ...

Posted at 10:49 | Comments(3) | Permalink | Trackbacks(0) | Tags: , , , | add to del.icio.us