Genome Studio A Collaborative Multiuser Music Sequencer

1Jun/090

iPhone app

Just wanted to drop a post to say that my iphone app is coming along pretty well. I've put in a ton of time on it the last few weeks and it's starting to come together. I should be close to finishing it in another week or two.

The first few days with libnui were a little frustrating since I didn't quite understand how the layout widgets were sizing themselves (specifically the grid based widgets). I've been used to juce's more explicit (typically fixed size) layouts. Now that I've been working with them a while, I find them to be a more welcome addition and there are some nice things you can do with them that do save time. I am still a bit confused about how some of the CSS stuff works (mainly I think I need some more examples and documentation about how the different widgets can be styled..), though it's perfectly acceptable to eschew css and set up your widgets styles via code (which is what I've been doing). I'll avoid getting into too deep of a comparison between juce and libnui here because I want to do a full post on it later.

Now that i know my way around the framework I am pretty productive and the good news is that writing your own components is a pretty simple affair (just as easy as it is in juce).

Currently I have all the major synthesis modules written. I have most of the major 'pages' in the app written (only one or two left to go). I've had to scale back my planned # of voices due to CPU constraints.  I'm still shooting for 10 voices, though i need to get each voice down to about 6.5% cpu in order to keep the GUI snappy and avoid audio breakups. Right now I think they are at 8% and I've already done a fair bit of optimization. Each voice is basically a 2-Osc synth + filter and several envelopes, so you can do some cool stuff with them. I always find it hard not to throw in the kitchen sink when it comes to making synthesizers. I like to have a lot of options. I also have some pretty cool 'live performance' oriented features (which make use of multitouch) that I think people are going to dig. I will post some screenshots soon. We will have a more finalized gui design soon. I also did some work on a logo. ;)

One good benefit of the whole thing, is that I basically re-wrote my audio framework from scratch (this same framework is what I'm using in Genome). In doing so, I identified a bunch of optimizations and design improvements that I should be able to carry over to Genome. Re-writing things almost always yields a better product. Many parts of genome have been re-written several times by now. There is a big tendency for programmers not to want to touch old code and to just 'leave it as is' even if it's flawed. I prefer to start from scratch every once in a while just to clean out the skeletons.

12May/090

Good article on designing iphone UI’s

http://www.the-soulmen.com/blog/2009/02/09/on-prototyping-iphone-ui/

The article talks about the challenges of designing a UI for such a small screen, and how you have to design elements to be bigger for a touch interface than you do for a mouse clicking interface - something I immediately noticed myself when I began designing my iphone app. Worth a read.