Blog

Tag Archives: iPhone

Hey Just J reviews and demos Loopy

Here’s a review and great little demo of Loopy version 2 by looper Hey Just J:

Also tagged , | Comments closed

Dub FX and Loopy 2

Check it out:

Also tagged , | Comments closed

Improvements coming to Loopy 2.0.1

Loopy 2.0.1 improvementsI’m hard at work on Loopy 2.0.1, which will include a few improvements:

  • A much bigger bottom display, with paged clock manipulation controls for easier access to the most-used functions
  • A play/restart button on the main loops screen
  • Clearer distinction between muted and unmuted tracks
  • The option to automatically begin overdubbing after first record
  • Import loops from Mail and other applications straight into a Loopy 2 session
  • Single sign-on for SoundCloud, including Facebook link support

Look out for it soon.

Also tagged , | Comments closed

Loopy 2 launch – now with real fruit pieces

Loopy 2 I’m very pleased to announce the launch of our new app, Loopy 2! It’s a pretty, easy-to-use but feature-packed looper for making music by layering looped recordings of singing, beatboxing or playing an instrument (or banging cutlery together).

It’s currently on sale for launch, so take a look! We’re very proud of it.

Also tagged , | Comments closed

The Cartographer 1.4, Now With Routes and Shapes

The Cartographer version 1.4, now with routes and shapesI’m very happy to announce The Cartographer version 1.4!

This version brings new features from Google Maps to the iPhone: Routes and shapes. Now you can plot hiking routes, cycle paths or road trips on your computer using Google Maps, then sync them to your iPhone and take them with you.

Combined with The Cartographer’s existing offline mapping features, we think this is a really exciting feature for outdoorsy types and travellers.

So, we hope you enjoy 1.4! It’s available right now from the App Store.

Also tagged , , | Comments closed

A drop-in universal solution for moving text fields out of the way of the keyboard

There are a hundred and one proposed solutions out there for how to move UITextField and UITextView out of the way of the keyboard during editing — usually, it comes down to observing UIKeyboardWillShowNotification and UIKeyboardWillHideNotification, or implementing UITextFieldDelegate delegate methods, and adjusting the frame of the superview, or using UITableView‘s scrollToRowAtIndexPath:atScrollPosition:animated:, but all the proposed solutions I’ve found tend to be quite DIY, and have to be implemented for each view controller that needs it.

I thought I’d put together a relatively universal, drop-in solution: UIScrollView and UITableView subclasses that handle everything.

When the keyboard is about to appear, the subclass will find the subview that’s about to be edited, and adjust its frame and content offset to make sure that view is visible, with an animation to match the keyboard pop-up. When the keyboard disappears, it restores its prior size.

It should work with basically any setup, either a UITableView-based interface, or one consisting of views placed manually.

Read More »

Also tagged , , | Comments closed

Easy AAC compressed audio conversion on iOS

From the iPhone 3Gs up, it’s possible to encode compressed AAC audio from PCM audio data. That means great things for apps that deal with audio sharing and transmission, as the audio can be sent in compressed form, rather than sending huge PCM audio files over the network.

Apple’s produced some sample code (iPhoneExtAudioFileConvertTest), which demonstrates how it’s done, but their implementation isn’t particularly easy to use in existing projects, as it requires some wrapping to make it play nice.

For my upcoming looper app Loopy, I’ve put together a simple Objective-C class that performs the conversion of any audio file to an AAC-encoded m4a, asynchronously with a delegate, or converts any audio provided by a data source class (which provides for recording straight to AAC) and I thought I’d share it. Read More »

Also tagged , , | Comments closed

A simple, fast circular buffer implementation for audio processing

Circular buffers are pretty much what they sound like – arrays that wrap around. They’re fantastically useful as scratch space for audio processing, and generally passing audio around efficiently.

They’re designed for FIFO (first-in-first-out) use, like storing audio coming in the microphone for later playback or processing.

Consider a naive alternative: You copy the incoming audio into an NSData you allocate, and then pass that NSData off. This means you’re allocating memory each time, and deallocating the memory later once you’re done processing. That allocation incurs a penalty, which can be a show-stopper when part of an audio pipeline – The Core Audio documentation advises against any allocations when within a render callback, for example.

Alternatively, you can allocate space in advance, and write to that, but that has problems too: Either you have a synchronisation nightmare, or you spend lots of time moving bytes around so that the unprocessed audio is always at the beginning of the array.

A better solution is to use a circular buffer, where data goes in at the head, and is read from the tail. When you produce data at the head, the head moves up the array, and wraps around at the end. When you consume at the tail, the tail moves up too, so the tail chases the head around the circle.

Here’s a simple C implementation I recently put together for my app Loopy: TPCircularBuffer Read More »

Also tagged , , , | Comments closed