Interview Revisited

A year and a half ago I first tried out Interview and noted my thoughts on it. In the last few days I've revisited it and have to say that the API is still pretty quirky.

As kind of some explorative hacking I've been working on what will likely be a demo-ish Qt 4 based tagger. The immediate application is of course reworking the central widgets in JuK, but that's not really the main goal. More what I'm working on is getting a feel for the API so that I can have some idea what and how should be wrapped in a set of KDE libs classes and from there how that will be applied in list-centric applications such as JuK, amaroK and KMail.

The first ugly hackup is here. On the surface it's boring; more will follow in the next few days, but it's doing some semi-interesting things like reading information in a background thread and populating the list asynchronously.

Many of the quirks are design based and some of them are just that the docs aren't up to Trolltech's normal quality. I spent a couple of hours trying to figure out how to have new items from my data model show up in the list before breaking down to read one of the models shipped with Qt (QDirModel) to realize that I needed to call beginInsertRows() before making any changes and then endInsertRows() afterwards. The API docs don't really make that clear. Still without sorting, filtering and whatnot it's already at several hundred lines of code.

There are some good things that I can see at this point; it seems that asynchronous updates are much smoother and it seems like also filtering should be faster (in theory). It should also be possible to do smarter caching of sorting (using sorted inserts rather than iterating over the entire list) so that switching sort columns should be fast as will inserting of new items. More on that will follow.

Where I've been frustrated with Interview, I must say that Qt's thread safety features in 4.x are much nicer. The fact that the basic toolkit classes are reentrant and that signals and slots are now thread safe (and potentially asynchronous) is nice. That's much easier than working with QDeepCopy and having to wrap things into passing things around via QEvents as was the case in Qt 3.

Meanwhile, in other regions of my brain...

I got a bit of time to work on some music this weekend. Coming from a fairly formal informal background in music (I've studied theory a fair bit, taught bass for a couple of years, etc., though I've never had much in the way of formal training.) as I've gotten into electronic music I struggle some with structure of compositions. Traditional classical music tends to be set along some relatively straight-forward classical forms; jazz and rock are usually dead-simple formally. While often the interesting compositions veer quite far from the predefined forms, getting a handle on the genres entails familiarizing oneself with them. In electronic music I've yet to come up with that "handle". "This is the way a basic house / techno / trip-hop track works." (Of course in more academic electronic music it tends to fall formally closer to classical structure.)

So, basically I've decided that I'm going to take a set of tracks that I tend to like and do some formal analysis on them and see if any notable generalities emerge. If they end up being worthwhile I'll put them up online somewhere...

The reason I'm writing this here is that after some searching I've yet to stumble across anything similar -- anyone giving semi-serious treatment to popular electronic music styles (and me being a music nerd as well, that's kind of how I approach things). Since comparing to other stuff would of course be nice, on the off chance that someone reading this is familiar with such, kindly leave a comment. (Books, links, etc. are all fine.)


You should take a look on Ishkurs guide.
Is a simple user oriented flash connection about all "styles, genres and subgenres".
Ishkur's comments are fun and their point of view is very good, so you can reach some start point about all the crap.. err .. electronic music.

Anything you need in this topic, please drop a mail and we can exchange ideas :-)

By Helio Chissini de Castro at Mon, 03/06/2006 - 17:43

Hi Helio --

The site looks pretty good in terms of history and influences, but isn't really what I'm looking for. At this point I've gotten pretty familiar with some of the background and technique and read Thom Holmes's "Electronic and Experimental Music" last year for a lot of the history, but still not much that touches on structure.

For example, the majority of jazz follows a very basic form. You have a "head" which is usually orchestrated and presents a melody and a basic harmonic structure for the piece. Following that you have rounds of soloists that improvise over and manipulate that melody and then there's a "tail", which is usually also orchestrated and usually very similar to the "head".

There are some very standard modulation techniques, like II-V-I progressions and suspended cadences that lead build toward key modulations.

That's of course a very small version of what has filled up many books, but you get the idea. What I've been thinking about is sitting down with some tracks that I like and breaking them down like:

- Drum beat starts (140 BPM, 4/4). We'll call that "Pattern A"
- After 8 measures there's a two bar breaks where a melody enters ("Pattern B")
- After the two bar break, Pattern A and Pattern B are played simultaneously
- At measure 22 Pattern A is modulated up a 5th
- ...

In pitched stuff I might do a little analysis using Pitch Class Sets (which are pretty easy to grasp, but I don't expect a lot of consistancy here). For non-pitched samples or synthesized sounds it would be interesting to note the effects that are being applied and when those transitions occur in time and what they accomplish musically.

After doing that for a few dozen tracks then it might be possible to see if some patterns have emerged and to be able to say some things about the structure of the music types that I'm looking at.

I know this all sounds terribly academic, but being a music nerd actually understanding the structures used within a certain genre can help me either work with or against those patterns in a compositional context. It kind of helps me understand what I'm doing with a piece of music and how to achieve that.

By Scott Wheeler at Mon, 03/06/2006 - 18:31