Here’s a tutorial and some source code I put together for loading, caching, and streaming audio from Amazon Cloudfront into Unity and Unity iPhone. It lets you keep those gi-normous backing audio files out of your core game distribution, but then persists them to your players’ local systems after the first request; it also manages iPhone playback through a native player (but controlled from your Unity script) to work around some Unity AudioSource issues on the iPhone.
Although the iPhone audio playback mechanism is native, it doesn’t require a plugin from Unity, so it ought to work with Unity iPhone Basic (although I believe plugins are expected to be available for free once 3 is out of beta). Anyway, some of that code originally came from the awesome power that is Jeff Murray at Psychic Parrot Games (http://psychicparrotgames.com/) who in turn was inspired (I think) by a tutorial from the amazing guys at Blurst (http://blurst.com).
I updated the objective-c and added a bunch of things, so obviously anything that breaks is my fault, not theirs.
Here’s a zip archive containing the source files and documentation. After you extract it, open the index.html file in the docs directory for all the details.
It’s free for any kind of use you like, commercial or otherwise, and you can make any changes to it that you desire (standard BSD license, to be specific).
Lately I’ve received several emails from folks trying to break in as composers writing music for video games, mostly in the indie game market. I am not sure I’m at a point where I should give advice — but nevertheless, here are a few suggestions from my perspective: Continue Reading
When implementing a soundscape for games, it is not enough to attach audio clips to the correct game objects and hope the game engine handles the audio placement in 3D space correctly. Unless the engine includes a sound propagation engine and advanced audio occlusion and DSP API’s (and an audio engineer who can use them well), the result of merely tagging audio in space are usually weak, watered-down sounds, particularly for the local player in a multiplayer game.
It’s also subtly disconcerting to have a single sound — an explosion, for example — with the exact same waveform representing both local and remote audio, even though that is realistic; that is, it’s often more effective to diverge from realism in some cases, and employ different filters and even sometimes different waveforms altogether. I won’t argue for this statement intellectually, but we can trust our ears to tell us when it is true. Continue Reading
When a game studio requests gameplay underscore, it’s often best to provide several versions of the same loop so that they have the option have mixing in real time even if they don’t have the budget for a full adaptive/interactive score, so the game ends up with more music than the developer has actually commissioned. Here’s an example of how I did this on a recent project. Continue Reading
Unity creates a game engine for 3D game creation targeted at PC, Mac, Wii, web and iPhone. In scoring a couple of recent iPhone games in Unity, I needed a means of adding interactive music; usually I would employ fmod or wWise for this sort of thing in a console or standalone desktop game, but the footprint issues are such that it’s not workable for iPhone, and those features are overkill for what I’ve needed.
It is possible to integrate fmod with Unity, by the way; it’s just not very practical on the iPhone. The startup time alone appears to be increased by 6-10 seconds on a 3Gs (and Unity already has a 7-12 second startup time on the iPhone as it is). Cool interactive audio is not worth making an iPhone user wait 20 seconds or more for the game to start!
So I wrote a simple engine for managing interactive music in Unity specifically for iPhone game development. It’s below, along with a simple demo app that exercises some of its capabilities. I’m placing it under a Creative Commons license, so feel free to grab it if you deem it useful in your project. I will also continue to iterate over it and improve it with further Unity games. I’ve zipped this up in an example project, but you’ll find the example audio files are missing; just add your own if you want to run it.
Blurst has created some great addictive casual and quirky physics games, and they’re now opening up some of the technology and their marketing features to titles produced by other indy developers. Check it out if you think you might have a title that fits what they’ve done in the past: http://blurst.com/developers/. I also really enjoy their musical tastes within their games.
I’ve been refining some compositions for an upcoming disc of groovy ambient mostly electronic music, and the feedback was to make it more positive and happier. Part of the job is deciding what specific musical changes are needed in an arrangement, the instrumentation, key or mode, timbre, etc., in response to perfectly valid non-musical feedback. Turns out in this case it was a simple matter of removing the distorted guitar from the front end of the piece.
Pretty subtle, but those distorted guitars really stand out to some people, especially when there’s a voice-over using a male voice (same frequency range), so I get it. I’m glad the change was so simple (mute the guitar tracks and bump the EQ of the groove in the range that the guitars used to occupy, then re-bounce).
I’ve been a part of the closed beta for Record, Propellerheads’ new software audio recording system which essentially adds live recording and better mixing to Reason, and now that the beta is open I can share some of my experiences.
Firstly, I really do like Reason although I do not use it as often as I once did, and I do agree with the opinion that its default darker bump in the low and low-mid range is better suited to dance and electronic music than most of what I do. Record has the same default bump. This is not a bad thing, it’s just part of the PH character. It can also be changed, if you avoid the mastering suite and work the EQ in an external rewired DAW.
Secondly, I am still not really sure what the target audience is for Record. I like it and it is fun to use — most software is not so fun to use, but Reason has always been fun, stable, and relatively lightweight. Record fits along the same lines. But there are many things lacking that prevent it from being considered a full DAW for commercial scoring: lack of plugin support and lack of video support being chief among them.
These themes accompany the wooden toys crafted by one creepy toymaker as they slowly acquire life. This was for a short animated film. Beware the vengeance of spurned marionettes!
NOTE: I’ve since removed this app from iTunes — thanks for the support, but there are now several tuners which DO operate well, and there seemed to be no need for me to continue this one.
Frustrated that none of the tuners in the app store seem to be particularly accurate, especially at high and low frequencies, I ended up writing my own chromatic tuner app. It’s in the app store now: http://itunes.com/apps/chromatuner