AudioKit is an audio synthesis, processing, and analysis platform for iOS, macOS, and tvOS. This document serves as a one-page introduction to AudioKit, but we have much more information available on the AudioKit websites:
| Nodes | Operations | Taps |
| Nodes are interconnectable signal processing components. Each node has an output and usually some parameters. If the nodes processes another signal, the node will also have an
input. | Operations are similar to nodes, except that they are signal processing components that exist inside of a single node. Operations can be used as parameters to other operations to create very complex results. | Taps use nodes as their data source, but do not redirect the audio signal away from the source nodes output into other nodes. This allows a tap to be moved from node to node more freely and can be added after the audio signal path has started.
Installation can be achieved in the usual ways for a framework. More details are found in the Frameworks README file.
AudioKit is also available via CocoaPods and Carthage Package managers:
| Package Manager | Config File | Contents |
| Carthage |
github "audiokit/AudioKit" |
| Cocoapods |
pod 'AudioKit', '~> 4.0' |
There are three Hello World projects, one for each of the Apple platforms: iOS, macOS, and tvOS. They play oscillators and display the waveform. The examples rely on the frameworks being built so you can either download the precompiled frameworks or build them on your own .
For Hello World you only need to understand a few lines of code:
| Code | Description |
var oscillator = AKOscillator() | Create the sound generator |
AudioKit.output = oscillator | Tell AudioKit what to output |
AudioKit.start() | Start up AudioKit |
oscillator.start() | Start the oscillator |
oscillator.frequency = random(220,880) | Set oscillator parameters |
oscillator.stop() | Stop the oscillator |
Playgrounds contain bite-size examples of AudioKit and serve as tutorials for many of AudioKit's core concepts and capabilities. There are over one hundred playgrounds from the most basic tutorials, to synthesis, physical modeling, file playback, MIDI, effects, filters, and analysis.
We provide all playgrounds as a macOS project ready to run in Xcode. Just download the
We have made videos of most of the playgrounds in action, so you don't even need to run Xcode to check them out, just go to AudioKit Playground Videos.
Ray Wenderlich's AudioKit Tutorial
Check out the AudioKit tutorial on the Ray Wenderlich site. You’ll be taken on a fun and gentle journey through the framework via the history of sound synthesis and computer audio.
There are three methods for getting support, roughly listed in order of what you should try first:
Post your problem to StackOverflow with the #AudioKit hashtag.
If you don't have a problem that you can post to StackOverflow, you may post to our Google Group, but it is a moderated list and prepare to be rejected if the moderator believes your question is better suited for StackOverflow (most are).
If you are pretty sure the problem is not in your implementation, but in AudioKit itself, you can open a Github Issue.
AudioKit is always being improved by our core team and our users. This is a rough outline of what we're working on currently.
AudioKit was created by Aurelius Prochazka who is your life line if you need help! Matthew Fecher manages all of AudioKit's web sites and Stephane Peter is Aure's co-admin and manages AudioKit's releases.
But, there are many other important people in our family:
| Group | Description | |-------|-------------| |Core Team | The biggest contributors to AudioKit! | |Slack | Pro-level developer chat group, contact a core team member for an in invitation. | |Contributors| A list of all people who have submitted code to AudioKit.| |Google Group | App Announcements and mailing list for all users. |
Help us keep the lights on
v4.0.4 - Nov 19, 2017
Some highlights include:
- AudioKit.renderToFile - offline rendering done in the iOS11, macOS 10.13+ sort of way
- More Objective-C compatibility
- Added macOS AudioKit test suite
v4.0.3 - Nov 1, 2017
Mostly minor improvement includes more Objective-C functionality and we addressed some Github issues surrounding AudioKit startup.
v4.0.2 - Oct 16, 2017
This release fixes some bugs with operations and introduces microtonal pitch shifting via MIDI pitch bend.
v4.0.1 - Sep 25, 2017
- broken vibrato on most of the oscillator banks
- wrong base midi not on AKKeyboard
- more objective-c compatibility
- incorrect path referencing frameworks from playgrounds
- some broken playgrounds
v4.0 - Sep 20, 2017
Version 4.0 of AudioKit uses Swift 4 and is Xcode 9 ready. Version 4 is the culmination of many great new additions to AudioKit from a number of core team members, old and new. There were 929 files changed over 648 commits since V3.7.1.
- Awesome new (optional) syntax for connection nodes e.g. "mic >>> delay >>> reverb >>> mixer"
- New taps by Dave O'Neill: AKLazyTap, AKRenderTap, AKTimelineTap
- New sample accurate nodes from Audive, Inc.: AKClipPlayer, AKClipRecorder, AKClipMerger
- New sample player: AKSamplePlayer
- Sample accurate timing demonstrated in iOS example "MetronomeSamplerSync"
- Mike Gazzarusso's guitar processing nodes: AKDynaRageProcessor Tube Compressor and AKRhinoGuitarProcessor Amp Model
- Audio Unit hosting with Ryan Francesconi's AKAudioUnitManager class and examples for iOS and macOS
- All synthesizer bank nodes contain vibrato and pitch bend controls (instead of frequencyMultiplier and detuningOffset)
- Better handling of routes and backgrounding
- Offline rendering on latest operating systems (demonstrated in tests, more examples soon)
- Update MIDI Monitor example to send MIDI Sysex (example is now called "MIDIUtility")
- New iOS Drums example and two new drum playgrounds
- New macOS examples: RandomClips, Recorder
- AudioKitUI is now a separate framework and maybe omitted when you don't need audio plots
- New themes for playgrounds and playground widgets by Yaron Karasik
- New AKTableView UI element to display static waveforms or any single value plot, with an example playground demonstrating its use
- Many new tests (were up to 323 tests)
- Improved README and other Github niceties
And much more actually, its just a bit hard to remember everything.
PLUS: There is actually a lot more on the way. Instead of waiting on it all to be ready, we're going to be adding quite a few majorly cool enhancements over the next few releases.
Thank you to everyone who is involved with AudioKit. The core team is just amazing, and the users who create the new audio apps with our software, well, that's why we're doing this, so thank you as well.