Tag: mobile

Tips on how to setup, configure, initialize, and START/STOP Audio Units for iPhone

As part of Apple’s poorly documented information on Audio Units and Remote I/O, there are some subtle issues that cause RENDER CALLBACKS to not work properly.

Make sure not to set any “callbacks” until after Remote I/O unit is fully initialized (i.e. after calling AudioUnitInitialize)

An audio unit’s general opeartions are:
Open an audio unit (AudioComponentInstanceNew)
Configure it based on the context – AudioUnitSetProperty
Initialise the audio unit (AudioUnitInitialize)
– at this point the audio unit is in a state where it can render audio
Render audio (AudioUnitRender)

An important part of a render operation for an audio unit is to manipulate the various controls that the unit provides
to change the render effects; for instance to change the decay time of a reverb, the cut off frequency of a filter, etc.
These are called parameters, and AudioUnitGetParameter and AudioUnitSetParameter are used to interact with these.

If any reconfiguration of the audio unit is required, then:
uninitialise (AudioUnitUninitialise)
Configure it based on the context – AudioUnitSetProperty
Initialise the audio unit (AudioUnitInitialize)

Once the host is finished with an audio unit, it closes it:
Dispose audio unit (AudioComponentInstanceDispose)

Audio units can be used programmatically (for instance a mixers could be used to render audio for a game, a generator
to play audio files, etc), or they can be hosted in Digital Audio Workstation (DAW) applications such as Logic, Garage Band.
In the DAW case, it is common for an audio unit to provide a custom view to allow the user to interact with what can be
complex DSP opearations that the audio unit performs. The view is retrieved from an audio unit through AudioUnitGetProperty
and then the host instantiates it (see <AudioUnit/AUCocoaUIView.h>)

iPhone & iPod OS usage statistics (as of Dec 2009) & Android OS (as of June 2010)

Referenced from http://metrics.admob.com/2009/12/updated-iphone-os-stats/

Updated iPhone OS Stats

December 22nd, 2009

We received a couple requests recently for the distribution of the iPhone Operating System versions we see throughout our network.  The data below represents the percentage of worldwide traffic we saw from the iPhone and iPod touch from December 14-21st.

It shows that iPod touch users lag iPhone users in upgrading their OS; 97% of our iPhone traffic comes from 3.0 or higher, compared to only 68% of iPod touch traffic.



For developers working on Android applications, platform version might become even more important than it is for iPhone given the wide variety of handsets and capabilities already available.  Fortunately, the Android team has announced a device dashboard based on devices that visit the Android Market.  Visit the Android developer blog for details or the actual dashbaord for the most recent data.

Platform Versions

This page provides data about the relative number of active devices running a given version of the Android platform. This can help you understand the landscape of device distribution and decide how to prioritize the development of your application features for the devices currently in the hands of users. For information about how to target your application to devices based on platform version, see API Levels.

Note: This data is based on the number of Android devices that have accessed Android Market within a 14-day period ending on the data collection date noted below.

Android Platform Percent of Devices
Android 1.1 0.1%
Android 1.5 24.6%
Android 1.6 25.0%
Android 2.0 0.1%
Android 2.0.1 0.3%
Android 2.1 50.0%

Data collected during two weeks ending on June 16, 2010

Starting to develop iPhone apps

Building iPhone apps is no small feat.  You have to be a good C/C++ programmer, you have to learn the Objective-C programming method, then learn the Cocoa frameworks.

But it’s great that a lot of people have created sample code and examples that showcase functionality.

Copyright 2009-2010 ZeroInverse.com