Blog

Tag Archives: iPhone

Another, more complete, Loopy 2 demo, with singing and everything

Bear with me here – I’m a software developer, not a looper!

This is an early preview of Loopy 2 for iPhone (and soon iPad). Six tracks, simple touch controls. Tap a track to start recording, tap it again to stop. Tap in the middle to overdub, or elsewhere to mute the track. Drag one track onto another to merge instantly (not shown in this demo – another time!).

Inbuilt tempo settings (including live audio scaling, if you change the tempo mid-session), full stereo audio, volume and pan settings.

There’s plenty more, and I’ll demo them all in the weeks to come. Subscribe here, or over at loopyapp.com to stay tuned!

Also tagged , | Comments closed

Loopy 2’s drum sequencer early preview

I’ve been busy over the past few days!

No percussion type icons yet, but the rest is basically there:

  • Full zoom/pan interface for use on an iPhone screen (although this was the simulator, operated with a mouse cursor).
  • Two velocity levels available for each cell (127 volume levels supported in the back end, but not in the interface yet)
  • 12 instruments
  • Custom sound set support, so you can built your own kit from your own sample set and import it into Loopy

This is unlikely to be in Loopy 2.0, but expect it around version 2.1.

Also tagged , | Comments closed

A new Loopy 2 feature: Track twisting

A new feature of my upcoming looper app Loopy 2 that I just implemented in the last 15 minutes: Grab a track and twist it to offset it in the timeline, and hear the results, live. Great for adjusting minor timing problems, or mucking about with the sound.

Also tagged , | Comments closed

What I’ve been up to: Loopy 2 (track importing)

Here’s the result of the last few days’ work: Loopy 2 now has track importing. Drag audio files into Loopy’s documents folder in iTunes, then import into tracks. Loops are automatically time-fitted for perfect synchronisation, using the frankly awesome Dirac audio processing library.

Also tagged , , | Comments closed

Oh, Cocoa: Why I love my job

XCode as a beatnik (You heard me) There are some with a passion for paint and canvas; others, for playing musical instruments, or writing stories. For me, as I’ve discovered, it’s striving to create beautiful and functional user interfaces, or constructing in code the perfect representation of a workflow. It’s creating a piece of software that works like an extension of yourself, with the charm and elegance that makes you want to pick it up, and not put it down again.

Developing software for me is an expression of my creativity, and an outlet for my compulsion to find order in the world — not to put things in boxes, but to shape the boxes around the things.

And if ever there’s an apt medium: If French is the language of love, Cocoa is the software development environment of it, too.

Also tagged , | Comments closed

This made my day: An App Store review

App Store reviews often seem to be an odd mix of bile and vitriol, misplaced support requests, and glowing praise, making my routine App Store review-sweep somewhat of a rollercoaster!

This time around, though, this review of The Cartographer made my day (this is the kind of person I write apps for!), and I had to post it here: Read More »

Also tagged , | Comments closed

A quick-and-dirty audio sample mixing technique to avoid clipping

In the real world, when you hear two sounds at once, what you’re hearing is the combination (in the “+” sense) of the two noises. If you put five hundred drummers in the same room and, avoiding the obvious drummer jokes for now, told them all to play, you’d get drummer 1 + drummer 2 + … + drummer 500 (also bleeding ears).

With digital audio though, the volume doesn’t go up to oh-god-please-make-them-stop – it’s limited to a small dynamic range.

Naïve mixing, with overflow

So, digital mixing actually requires a little thought in order to avoid overflowing these bounds and clipping. I recently came across this when writing some mixing routines for my upcoming app Loopy 2, and found a very useful discussion on mixing digital audio by software developer and author Viktor Toth.

The basic concept is to mix in such a way that we stay within the dynamic range of the target audio format, while representing the dynamics of the mixed signals as faithfully as possible. Read More »

Also tagged , | Comments closed

Pushing MultiChannelMixer to the limit

A friend made an interesting suggestion to an issue I’m facing in the upcoming Loopy 2, and I thought I’d do some investigation: How many tracks can the MultiChannelMixer (kAudioUnitSubType_MultiChannelMixer) manage at once?

He was quite optimistic, and as it turns out, he was right: It’s rather capable.

I modified the iPhoneMultichannelMixerTest sample project to add a bunch of channels, and measured how my iPhone 4 performed. It looks pretty linear: there’s pretty much a 1:1 relationship between number of channels, and the CPU usage, actually.

Number of Inputs to MultiChannelMixer versus CPU usage

Of course, this is on the newest-most powerful iPhone, but there was no stuttering, and the interface (admittedly simple as it is) was fully responsive, including setting output volume, even with 100 channels. You’d probably want to stick with a maximum number of channels around the 75-100 mark, less for targeting lesser devices, but that’s a pretty generous limit.

Not bad.

Update: Not such great news for the iPhone 3G I just tested this on, though — it freaks at anything more than 20 channels, and isn’t too responsive with 20. The 3Gs seems to behave almost as well as the iPhone 4, but the CPU:channels relationship is more like 2:1.

Also tagged , | Comments closed