updates to audioGraph for iOS 7

Submitted an update (1.2) to Apple for audioGraph today.

Mostly bug fixes:

  • screen size issues in iPod touch 5g
  • missing icon files for retina
  • fixed crash on load
  • made play buttons more visible for triggering samples
  • solved no root view controller error
  • new splash screen for iPod touch 5g
  • etc.,
  • fixed sync issues with github and Xcode

The upgrade to App store is 1.2 but the github version is at 1.3 – as there were a few incidental issues that didn’t get in the submission.

Next release should deal with these issues:

Version 2 should have automatic reference counting and make use of new NSNotification method of handing delegates.

I would like to leave the current version alone and start a new project from scratch – because the iOS dev process has changed greatly in 3 years.

Note: current local source code is in tkzic/coreaudio/audioGraph1.3

github is: https://github.com/tkzic/audiograph

 

Use gen~ to build iOS AU effects

Summary:

  1. In Max, write a gen~ patch and export as c++ to xcode
  2. Compile AU effect in xcode (code-signing with Audiobus API key) and launch on iPad
  3. Any app which recognizes Audiobus protocol can find and use your effect.

Details…

There are instructions at http://cycling74.com/wiki/index.php?title=Gen_Code_Export_iOS – which are expanded upon here.

Preliminaries to Preliminaries…

  1. Download the gen~ tremelo effect patch which runs ‘as is’ – and is set up to work as an AU effect with controls – from here: http://designingsound.org/2013/04/a-tremolo-au-plugin-with-max – the download button is near the end of the blog post.
  2. Download the c74 sample project  Media:iOSGenFilter.zip and copy it somewhere. This will be your project folder. It contains an xcode project file  and source code for the audiobus AU wrapper thing.
[annotations to c74 wiki notes follow:]

Preliminaries

  • Download the AudioBus SDK [1] – You will need to register as a developer. (alternatively, you can clone the github archive)
  • Download The Amazing Audio Engine SDK [2] (alternatively, you can clone the github archive)
  • Download the AudioBus iOS app in order to test [3] – It costs $4.99. Install it on your iPad or iPhone/iPod
  • Obtain a temporary Audiobus API key – You can’t do this until after you finish step 9 below.

 

Building an Audiobus iOS project

  1. Duplicate the provided Xcode project – (not necessary unless you want to change the project name – you already copied it into your project folder). If you want to duplicate it – check out this stackOverflow post: http://stackoverflow.com/questions/6428247/duplicating-an-xcode-4-project
  2. Copy The Amazing Audio Engine SDK to the project folder. – Here are specifics:
    1. Launch TheAmazingAudioEngine.xcodeproj
    2. In xcode, build it
    3. In ‘products’ group  in xcode navigator, <ctrl>-click on the libTheAmazingAudioEngine.a file and open in finder.
    4. Copy this file into iosGenFilter folder inside your project folder
    5. You can close the AmazingAudioEngine project in Xcode now.
    6. Now, in finder, copy the AmazingAudioEngine folder (the one that contains .h and .m files) into the iosGenFilter folder
  3. From Audiobus SDK, copy the Audiobus folder and libAudiobus.a file to the  iosGenFilter folder
  4. Open the tremelo Max patch which you downloaded.
  5. In Max, Send gen~ the exportcode message in order to export the genpatcher as C++ code – actually do this…
    1. Using inspector on the gen~ object Choose the GenFilter folder (inside iosGenFilter folder) to save the exported code to.
    2. Lock patch and click on the exportcode message box to export the code.
  6. Launch GenFilter.xcodeproj in the iosGenFilter folder.
  7. In xcode, Change the namespace used in GenFilter.mm to match that of the exported code
    1. This means, find the statement near top of file starting with “using namespace” and make it look like this: using namespace gen_exported;
    2. (if you get a bunch of errors – then you need to find out what your exported code is called. It will be the most recent .cpp file in the GenFilter folder.)
  8. Copy your Audiobus API key to the appropriate location in AppDelegate.mm – can’t do this just yet – so skip.
  9. Connect your iPad to the computer. Build the project for iPad
  10. In ‘products’ group  in xcode navigator, <ctrl>-click on the libThe GenFilter.app file and select ‘open in finder’.
    1. <ctrl>-click GenFilter.app in finder and select ‘open package contents’. – leave this finder window open
    2. in a broswer go to http://developer.audiob.us/temporary-registration – you’ll probably need to login with your user/password set up earlier.
    3. drag the info.plist file from the finder window (step A) into the dropbox in the browser.  You should get a screen with your temporary API key. I had to do this twice to get it to work.
    4. Now copy the API key into the AppDelegate.mm file replacing the one in the following statement – it was around line 50. – re-build project to make sure you have no errors
   // Create an Audiobus instance
    self.audiobusController = [[[ABAudiobusController alloc] initWithAppLaunchURL:[NSURL URLWithString:@"genfilter.audiobus://"] apiKey:@"MTM4MDY1ODQzNSoqKkdlbkZpbHRlcioqKmdlbmZpbHRlci5hdWRpb2J1czovLw==:caS8WT1r4OmYz6t89pDq37qNi29hwFba+7+7bP8WubzyKN7Xj+tnU31/Wcaw580zQg8Jz+vC6Ha0H+qDM9JhdBxfQZ7w/R0VHrvsbZYQEJkj1bNpg2h2DfsF1mvFr6jb"] autorelease];
Now do the following steps (with iPad still connected to your computer)
  1. Launch audiobus on your iPad
  2. click the run button in xcode to launch GenFilter on your iPad
  3. In audiobus, select mic input, headphone output, and GenFilter for effect.