AudioKit V4.0

Build Status License Carthage compatible CocoaPods compatible Platform Twitter Follow

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:
Features, News, Blog, and Highlighted Apps Developer Documentation
Did you already build an app with AudioKit?
Let us know and we’ll highlight it!
If you need support, the best thing to do is to
join AudioKit’s google group.

Key Concepts

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 Cartfile github "audiokit/AudioKit"
Cocoapods Podfile pod 'AudioKit', '~> 3.7'

Example Code

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

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.

Contributing Code

AudioKit is always being improved by our core team and our users. This is a rough outline of what we’re working on currently.

When you want to modify AudioKit, check out the develop branch (as opposed to master), make your changes, and send us a pull request.

About Us

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 Support forum and mailing list for all users.