Invisible Cities

I’ve just finished working on a great iOS mobile project called Invisible Cities.
The app allows you to view locations of audio stories that have been recorded around the city of Melbourne.
Once you get close to the story you can unlock it and listen to the story in the place where that story happened.



This project involved writing a web backend and Rest API using Laravel and Angular JS plus native iOS development using core location and audio streaming capabilities.
You can checkout more details on the project here:

View Debugging in Xcode 6 causes Mac to crash

I feel like I always start new posts now with.. I’ve been busy… It’s been a while since I’ve posted.. I’ve had a lot on… etc and this post is no different. I’ve been working on a bunch of projects lately both sound and programming related that have been keeping me very busy.
Although it is probably quite specific issue I thought I would post this just incase anyone else was having the same troubles. I’ve started using Xcode 6 and was very excited about using the view debugging tools that let you view your view hierarchy of your app in 3d to inspect your view elements. This is great if your loading some or all of your view programmatically and using the layoutSubviews in your view classes and things are working the way that you expected.

The problem for me was that when ever I tried to use this feature my Mac would freeze for a second and then reboot which was a little frustrating. Turns out this was a fault with the geforce 330M graphics card in mid 2010 Mac pros. Since it’s now 2014 and Apple will only replace this 3 years after the issue was discovered I don’t think I’ll be able to it fixed. Luckily found a little app called gfxCardStatus while allows you to lock your system to using the integrated GPU. After doing this BAM it worked perfectly!

You can download gfxCardStatus here:


Little Learners iPad and iPhone apps

I’ve just released updated versions of my little learners iOS apps and realised that I hadn’t posted anything when I first released them. These were a pretty massive job for me as not only did I design and code the apps but recorded, edited and voiced all the audio as well.
The apps help children to learn to read using phonics. Children can have the books read to them with the words highlighted as they are spoken and can also touch the individual words and have the audio played to them.
Firstly I had to create a python script to convert all the landscape PDFs into single page png files. I created a separate iPad app which allowed me to create plist files that contained the x, y, width and height of all the words on the PNG images. I then use pro tools to edit and bounce out all the audio files and entered the start time of each word into the plist file as well.
I started working on the main app using a combination of storyboards and programmatically created views and view controllers.
The main app was also created as a static library so that all five apps use exactly the same code base and read all the data from plist files.
I’ll post some code examples in the next couple of weeks but if you would like any more information please feel free to leave a comment.
You can view more info about the app here:
Little Learners

Real Australian Slang with Audio for Android

Introducing “Real Australian Slang + Audio” for Android!

Icon 144

Real Aussie Slang

After many requests for an Android version of my Aussie Lingo app for iPhone and iPad I decided it was time to knuckle down, learn the Android SDK and put an app together. The “Real Australian Slang” android app contains over 440 audio examples of Australian phrases and sayings and the ability to search for the right phrase or word for the situation.

You for more info check out the page on google play here:

Any feedback or suggestions let me know?

Fighting Chance Sound Design

Just before I finished up working at Risk Sound I had the pleasure of working on the sound design for a fun short film called “Fighting Chance” with director Matt Mirams

Sound wise it was great fun to work on and I used a lot of low frequencies, thunder and lightning to create the sonic character of death. I spent a lot of time cleaning up the audio and fixing the dialog which was a little patchy but RX2 made a pretty good job of saving most of it. I also had a lot of fun working on the punch sounds and used a foley plug-in that I wrote along with some of guys from soundfirm to do all the footsteps. Enjoy

Afternoon Sunny MultiWii Flight

So things have been a little quiet on the website front as of late as I’ve not only got a bunch of projects on the boil but have started a new job working full time as a mobile developer for Yellowfin BI. It’s a bit of a change from splitting my time between sound production and I.T geekyness to full time geekyness but I’m really enjoying having the time to get my head fully into development and it’s great to be part of such an awesome company and team.
I’m not dropping my sound skills by any means and have been enjoying working on a bunch of sound projects for myself again.
Now that I’m a bit more settled I’m going to start posting my random mix of sound, code and now quadcopter randomness.
Starting with this FPV flight around a local park with my MultiWii Scarab armour.

Batch Convert WAV to a-law or u-law on a Mac

So I’ve been having to do a few conversions of WAV files for old phone systems that require either u-law or a-law encoded audio a bit lately. I’ve been using sox in terminal but decided I need to speed things up a little so decided to create a shell script to process the audio.

On a Mac with this simple script all you need to do is to dowload SoX and put the sox folder at the base level of your filesystem (on your mac HD) at /sox. You can change this in the script by altering the soxloc=”/sox/sox”; line

Then all you need to do is open the Terminal and first drag the script on to the window. Then just drag the folder that contains all the audio files and hit enter.

The script will start looping through the files and converting each one.

You can change any of the parameters like sample rate or encoding just by altering the “-r 8000 -c 1 -e u-law” part

#! /bin/sh

echo "WAV to u-law converter script by Sandy Milne V1" 

shopt -s nullglob
for f in "$1"/*.wav
	echo "Processing - $f"
	"$soxloc" "$f" -r 8000 -c 1 -e u-law "${f%.*}"-ulaw.wav

You can download the script here:

Hope it’s useful.

MultiWiiCopter Flights at the beach

I been getting down to the beach a bit to escape from the city and have been taking my Scarab quadcopter for a fly in a paddock I found that backs on to the beach.

I’m still sorting out a couple of vibration wobbles, which I now have a solution for, but finally feeling like I am getting the hang of flying with the on board camera and video transmitter.

Here are the results of a quick video edit with music by one of my favorite artists at the moment Pretty Lights.

Some Objective-C Handy Additions in iOS6

Here are a few small objective-c language additions that were added in iOS6 that I have found myself using a lot recently  and thought I would share them.

You can create a NSNumber easily now with the below line:

NSNumber *number = @3;

You can create a populated array using the below code.

NSArray *fruit = @[@”Apple”,@”Banana”,@”Orange”];

You can create a populated dictionary easily using this line:

NSDictionary *cats = @{ @”Fred” : @”Large”, @”Dave” : @”Small”};



R to the adio production and RSPCA Big Beg

The Big Beg is a fund raising initiative for RSPCA that asks people to record a video of their pet begging to raise awareness and donations for the RSPCA.

Myself and some of the other engineers at Risk Sound helped to create and mix the soundtracks for the web and television commercials.

Here is the end result.

I also thought I would add some more radio ads which add to my radio ad ads…

1. Foxtel-Business-Radio-1.mp3     

Foxtel Business radio radio

2. deakin-SRI-LANKA.mp3     

Deakin International Students Radio

3. FOX3060-Live-OPT-2.mp3     

Foxtel Footy Radio