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 nodes 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 to be added after the audio signal path has started.
Installation details are found in the Frameworks README file.
AudioKit is also available via CocoaPods. Place the following in your
pod 'AudioKit', '~> 4.0'
If you do not need the UI components, you can select just the Core pod, like so:
There are three Hello World projects, one for each of the Apple platforms: iOS, macOS, and tvOS. They play oscillators and display waveforms. The examples rely on AudioKit's frameworks so you can either download precompiled frameworks or build them yourself .
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(in: 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 100 playgrounds which cover basic tutorials, synthesis, physical modeling, file playback, MIDI, effects, filters, and analysis.
We provide all playgrounds as a macOS project that is ready to run in Xcode. Just download the
We have videos of most of the playgrounds in action, so you don't 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.
Here are three methods for getting support which are 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. |
This project exists thanks to all the people who contribute. [Contribute].
Help us keep the lights on
v4.6.1 - Feb 15, 2019
Bugfix: MIDI input not working with AKAudioUnitInstrument https://github.com/AudioKit/AudioKit/pull/1681
And other smaller things
v4.6 - Feb 13, 2019
Lots of changes, long list of unrelated changes, some of which are API Breaking:
- AKMIDIStatus is now AKMIDIStatusType and AKMIDIStatus has a type and other MIDI fixes all by Jeff Cooper
- MIDI Clock implementation by Kurt Arnlund
- Microphone fixes for iPhone 6 (by VAndrJ)
- Code refactoring by Adam Nemecek
- Many other bug fixes and enhancements
v4.5.6 - Jan 2, 2019
The main reason for this version is to get out a version with the flurry of fixes by @ryanfrancesconi to AKPlayer issues.
There has also been considerable clean up of AudioKit internals, but that shouldn't affect anything.
v4.5.5 - Dec 8, 2018
- AKSampler key tracking and filter envelope scaling
- Added AudioEngineUnit stuff, groundwork for further development
- Added tests
v4.5.4 - Nov 8, 2018
This is a minor upgrade, but if you are using AKCallbackInstrument, take care for some of the updates.