AudioKit Synth One: Open-Source iOS Synthesizer App

Overview

AudioKit Synth One

Build Status License Crowdin Twitter Follow

We've open-sourced the code for this synthesizer so that everyone is able to make changes to the code, introduce new features, fix bugs, improve efficiency, and keep the synthesizer up-to-date with all new capabilities of the base operating system. Synth One is now Universal for iPhone/iPad!

Screenshot

“AudioKit Synth One is a wonderful example of how iPad can change the way music is made.”
– Apple, App Store Editorial Team

If you're new to AudioKit, you can learn more: here. This code and app is made possible by all the contributors to AudioKit. Many of the features of Synth One are available as modules in AudioKit, allowing you easy access to oscillators, filters, reverbs, effects, and other DSP processing: code here.

Features & App Store Location

Master and Develop Branches

The two primary branches of this repository are intended to be used as follows:

  • Master branch will work with the current release version of AudioKit - ie. AudioKit's "master" branch. Changes should not be made on this branch so that it can be kept as stable as possible.
  • Develop branch is intended to be built with code from Develop branch of AudioKit. Pull requests should be made to this branch.

Installation

You must install the pods that we depend on before you can compile the project. To do so, run the following at the root of the project:

  • pod repo update
  • pod install

You may uncomment the line in Podfile to switch to our cutting-edge staging (unstable) releases of AudioKit, as opposed to the stable releases in the mainstream CocoaPods specs.

Link Installation

The repository builds and runs without modification, but the Link functionality will be missing.

Because of the way Ableton distributes their Link SDK, we can not simply include the Link files here. Instead, we include our Link wrapping files and expect you to do two things to get Link working on your machine:

  • Change ABLETON_ENABLED from 0 to 1 in the Build Settings
  • Sign up for the Ableton Link SDK and download the prebuilt binary LinkKit.zip. Uncompress it and find the include and lib directories and place the folders under our "Link" directory. There should be three files in include and one in lib.

Requirements

  • Mac or computer running Xcode (Free Download)
  • Knowledge of programming, specifically Swift, AudioKit, C/C++, & the iOS SDK

If you are new to iOS development, we recommend the Ray Wenderlich videos. There is also a great tutorial on basic synthesis with AudioKit here.

Beginner? We have two additional code examples. There is a simple Swift Synth and a Sample Player. A fun exercise might be replacing the sample player code engine with synthesis.

Ableton Link Support

We now include optional support for the Ableton Link SDK. Because files from this private SDK are required to compile this code, it is turned off by default.

You may enable this code by copying the SDK to your copy of Synth One and setting the ABLETON_ENABLED user setting to 1 in the project settings in Xcode.

Documentation

We intend to have every major section of the code placed within its own folder, with an included README.md file, like this one. This file should explain the contents of the folder and give developers any hints about what could be improved.

This folder's contents

  • AudioKitSynthOne/ - This folder contains most of the source code
  • AudioKitSynthOne.xcodeproj - This file is a part of the workspace, which you should open instead
  • AudioKitSynthOne.xcworkspace - This is the file you should open with Xcode, it contains reference to both the project files for the synth code and associated Pods
  • OneSignalNotificationServiceExtension/ - code for a third party extension we use
  • Podfile and Podfile.lock - Cocoapods configuration files
  • .swiftlint.yml - Swiftlint configuration

Localizations

Opportunities for Contributing

Here's a few ideas for you to contribute to this historic project:

  • Ability to search presets
  • Midi Learn Matrix. Create a view that will allow users to easily change the MIDI Learn assignments.
  • Make TouchPads assignable
  • Add an EQ Panel (8-band/16-band/etc)
  • Add the ability for Sequencer to modulate more parameters
  • Filter key tracking options & settings
  • Filter velocity settings
  • MIDI out
  • Sample & Hold

✓ DONE: Create an iPhone/Universal version. Thanks to Matthew Fecher for his contributions in creating the universal/iPhone version.

✓ DONE: Add accessibility functionality to AudioKit Synth One. Thanks to Stanley Rosenbaum for making Synth One accessible to all musicians.

If you have audio development experience and want to be involved with contributing to the app store version of Synth One, please email [email protected]

There are a few major updates we intend for this synth:

  • AUV3 Plugin support
  • MPE

Code Usage

You are free to:

(1) Use this code as a learning tool.
(2) Change the graphics, and include this as part of a bigger app you are building.
(3) Re-skin this app (change all the UI graphics/controls), and upload to the app store.
(4) Contribute code back to this project and improve the code for other people

If you use any code, it would be great if you gave this project some credit or a mention. The more love this code receives, the better we can make it for everyone. And, always give AudioKit a shout-out when you can! :)

If you make an app with this code, please let us know! We think you're awesome, and would love to hear from you and/or feature your app.

We have most of the cool stuff (Filters, Oscillators, Effects, etc) abstracted out into the main AudioKit library. Use those building blocks to create your own app!

SUPER IMPORTANT: You must change the Graphics & UI if you upload this to the app store. Apple has a rule (4.1) about copycat apps in the app store. One developer has had his Developer account banned by Apple for taking advantage of this code (copying & pasting to make a Synth One clone). Don't let it happen to you. Synth One is a really popular app in the app store, and Apple has featured it in Retail Stores across the United States. If you have questions, feel free to email us at [email protected], and we can give everyone a heads up that your app is okay (if it follows the rules). We don't want anyone to lose their developer account over this code. 🙏

IMPORTANT: You must fill in your own private API keys for AudioBus and others in the Private.swift file to match your own project. The default placeholder values are not suitable for distribution.

Contributors

Thanks to the countless sound designers and other volunteers. Plus, the developers listed below:

Legal Notices

This is an open-source project intended to bring joy and music to people, and enlighten people on how to build custom instruments and iOS apps. All product names and images, trademarks and artists names are the property of their respective owners, which are in no way associated or affiliated with the creators of this app, including AudioKit, AudioKit Pro, LLC, and the other contributors. Product names and images are used solely for the purpose of identifying the specific products related to synthesizers, iOS Music, sampling, sound design, and music making.

Comments
  • App immediately crashes when opening

    App immediately crashes when opening

    Running iOS 13.1.3 on an iPhone XS Max, the latest version of sync one, 1.2.1 , immediately crashes every single time I try to open it, here is the crash log. AudioKitSynthOne-2019-10-22-133726.zip

    opened by Baccount 14
  • Add LFO-style routing system to envelopes

    Add LFO-style routing system to envelopes

    We can route LFOs to all sorts of different things. It would be nice if we could do the same for envelopes, for example to make a gradual tremolo effect.

    (Also, I accidentally created the issue before I finished the title. Is there some way to remove the title change from the history?)

    opened by SilverWolf32 12
  • Code can't compile on Xcode 11.5

    Code can't compile on Xcode 11.5

    Hi I'm not expert on iOS develop so please bear me if I asked stupid question.

    I cloned the code, follow the readme and try to compile the project, and unfortunately it can't compile.

    The build failed with reason:

    module compiled with Swift 5.1.1 cannot be imported by the Swift 5.2.4 compiler: /Users/$USER/code/AudioKitSynthOne/Pods/AudioKit/iOS/AudioKit.framework/Modules/AudioKit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule
    

    Full error log:

    CompileSwift normal x86_64 /Users/$USER/code/AudioKitSynthOne/OneSignalNotificationServiceExtension/NotificationService.swift (in target 'OneSignalNotificationServiceExtension' from project 'AudioKitSynthOne') cd /Users/$USER/code/AudioKitSynthOne /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/$USER/code/AudioKitSynthOne/OneSignalNotificationServiceExtension/NotificationService.swift -emit-module-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/NotificationService~partial.swiftmodule -emit-module-doc-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/NotificationService~partial.swiftdoc -emit-module-source-info-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/NotificationService~partial.swiftsourceinfo -serialize-diagnostics-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/NotificationService.dia -emit-dependencies-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/NotificationService.d -emit-reference-dependencies-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/NotificationService.swiftdeps -target x86_64-apple-ios11.3-simulator -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.5.sdk -I /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Products/Debug-iphonesimulator -F /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Products/Debug-iphonesimulator -F /Users/$USER/code/AudioKitSynthOne/Pods/AudioKit/iOS -F /Users/$USER/code/AudioKitSynthOne/Pods/OneSignal/iOS_SDK/OneSignalSDK/Framework -application-extension -enable-testing -g -module-cache-path /Users/$USER/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity=checked -Onone -D DEBUG -D ABLETON_ENABLED_0 -serialize-debugging-options -Xcc -working-directory -Xcc /Users/$USER/code/AudioKitSynthOne -enable-anonymous-context-mangled-names -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-generated-files.hmap -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-own-target-headers.hmap -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-all-target-headers.hmap -Xcc -iquote -Xcc /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-project-headers.hmap -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/$USER/code/AudioKitSynthOne -Xcc -I/Users/$USER/code/AudioKitSynthOne -Xcc -I/Users/$USER/code/AudioKitSynthOne/Pods/Headers/Public -Xcc -I/Users/$USER/code/AudioKitSynthOne/Pods/Headers/Public/Audiobus -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/DerivedSources-normal/x86_64 -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/DerivedSources/x86_64 -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -DABLETON_ENABLED=0 -Xcc -DCOCOAPODS=1 -import-objc-header /Users/$USER/code/AudioKitSynthOne/AudioKitSynthOne/DSP/AudioKitSynthOne-Bridging-Header.h -pch-output-dir /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/PrecompiledHeaders -pch-disable-validation -parse-as-library -module-name OneSignalNotificationServiceExtension -o /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/NotificationService.o -index-store-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Index/DataStore -index-system-modules

    After some googling, one answer told me we should set BUILD_LIBRARY_FOR_DISTRIBUTION = YES; so I did so, but I started to get another build error:

    error: using bridging headers with module interfaces is unsupported
    

    Full error log:

    CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler (in target 'OneSignalNotificationServiceExtension' from project 'AudioKitSynthOne') cd /Users/$USER/code/AudioKitSynthOne export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.5.sdk /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc -incremental -module-name OneSignalNotificationServiceExtension -Onone -enable-batch-mode -enforce-exclusivity=checked @/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension.SwiftFileList -DDEBUG -DABLETON_ENABLED_0 -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator13.5.sdk -target x86_64-apple-ios11.3-simulator -g -module-cache-path /Users/$USER/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -application-extension -enable-testing -index-store-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Index/DataStore -enable-library-evolution -swift-version 5 -I /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Products/Debug-iphonesimulator -F /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Products/Debug-iphonesimulator -F /Users/$USER/code/AudioKitSynthOne/Pods/AudioKit/iOS -F /Users/$USER/code/AudioKitSynthOne/Pods/OneSignal/iOS_SDK/OneSignalSDK/Framework -parse-as-library -c -j8 -output-file-map /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension-OutputFileMap.json -parseable-output -serialize-diagnostics -emit-dependencies -emit-module -emit-module-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension.swiftmodule -emit-module-interface-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension.swiftinterface -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-generated-files.hmap -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-own-target-headers.hmap -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-all-target-headers.hmap -Xcc -iquote -Xcc /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension-project-headers.hmap -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Products/Debug-iphonesimulator/include -Xcc -I/Users/$USER/code/AudioKitSynthOne -Xcc -I/Users/$USER/code/AudioKitSynthOne -Xcc -I/Users/$USER/code/AudioKitSynthOne/Pods/Headers/Public -Xcc -I/Users/$USER/code/AudioKitSynthOne/Pods/Headers/Public/Audiobus -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/DerivedSources-normal/x86_64 -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/DerivedSources/x86_64 -Xcc -I/Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/DerivedSources -Xcc -DDEBUG=1 -Xcc -DABLETON_ENABLED=0 -Xcc -DCOCOAPODS=1 -emit-objc-header -emit-objc-header-path /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension-Swift.h -import-objc-header /Users/$USER/code/AudioKitSynthOne/AudioKitSynthOne/DSP/AudioKitSynthOne-Bridging-Header.h -pch-output-dir /Users/$USER/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-fwbpfaeosrpufkeapdpxwwfrfyha/Build/Intermediates.noindex/PrecompiledHeaders -working-directory /Users/$USER/code/AudioKitSynthOne

    My environment:

    macOS: 10.15.5 (19F101)
    Xcode: 11.5 (11E608c)
    commit: 86f3e1d6296c9008f6a5cc101fd8749916d30c2e
    
    opened by Zieng 9
  • "Headless" version of SynthOne crashes in manual render mode

    We're using a "headless" (UI-less) version of SynthOne in our app, just drawing on presets. We built an offline render mode, which renders into a tap and then writes to a file. We had it working on an earlier version, but some recent changes caused an error where now, as soon as we pass the first event after switching to manual render mode, the app crashes in void S1NoteState::startNoteHelper(int noteNumber, int velocity, float frequency) with an EXC_BAD_ACCESS.

    * thread #18, queue = 'renderQueue', stop reason = EXC_BAD_ACCESS (code=1, address=0x4028000000000000)
      * frame #0: 0x00000001023a1e2c Spliqs`S1NoteState::startNoteHelper(this=0x0000000109561140, noteNumber=48, velocity=55, frequency=130.812775) at S1NoteState.mm:105:21
        frame #1: 0x00000001023b2818 Spliqs`S1DSPKernel::turnOnKey(this=0x000000010a06eb90, noteNumber=48, velocity=55, frequency=130.812775) at S1DSPKernel+toggleKeys.mm:85:14
        frame #2: 0x00000001023a6c84 Spliqs`S1DSPKernel::startNote(this=0x000000010a06eb90, noteNumber=48, velocity=55, frequency=130.812775) at S1DSPKernel+startStopNotes.mm:45:9
        frame #3: 0x000000010239d34c Spliqs`::-[S1AudioUnit startNote:velocity:frequency:](self=0x000000010a06ea00, _cmd="startNote:velocity:frequency:", note='0', velocity='7', frequency=130.812775) at S1AudioUnit.mm:98:13
        frame #4: 0x00000001027eb040 Spliqs`AKSynthOne.play(noteNumber=48, velocity=55, frequency=130.81277465820313, channel=0, self=0x00000002832c47d0) at AKSynthOne.swift:223:21
        frame #5: 0x00000001029ead8c Spliqs`AudioKit.AKPolyphonicNode.play(noteNumber: Swift.UInt8, velocity: Swift.UInt8, channel: Swift.UInt8) -> () + 328
        frame #6: 0x00000001026aca64 Spliqs`Conductor.handleMIDI(data1=144, data2=48, data3=55, self=0x000000010940f400) at Conductor.swift:392:23
        frame #7: 0x00000001026abb48 Spliqs`Conductor.handle(noteEvent=AudioKit.AKMIDINoteData @ 0x000000016e36a248, self=0x000000010940f400) at Conductor.swift:350:22
        frame #8: 0x0000000102823d28 Spliqs`SQRenderManager.createBufferArrayForFile(audioFile=0x0000000281394600, maximumFrameCount=512, duration=21.279160997732426, tail=1.5, self=0x0000000287a44070) at SQRenderManager.swift:286:31
        frame #9: 0x0000000102821e34 Spliqs`SQRenderManager.offlineRender(spliq=0x00000001094a6e00, completion=0x000000010282f488 Spliqs`closure #1 () -> () in closure #1 () -> () in closure #1 (RxSwift.Event<Spliqs.TimedWatchableEvent>) -> () in Spliqs.SQRenderManager.init(withModule: Spliqs.SequencerModule) -> Spliqs.SQRenderManager at SQRenderManager.swift:652, self=0x0000000287a44070) at SQRenderManager.swift:106:38
        frame #10: 0x000000010282f470 Spliqs`closure #1 in closure #1 in SQRenderManager.init(self=0x0000000287a44070, spliq=0x00000001094a6e00) at SQRenderManager.swift:652:76
        frame #11: 0x00000001023c37c0 Spliqs`thunk for @escaping @callee_guaranteed () -> () at <compiler-generated>:0
        frame #12: 0x000000010902b1fc libdispatch.dylib`_dispatch_call_block_and_release + 32
        frame #13: 0x000000010902c77c libdispatch.dylib`_dispatch_client_callout + 20
        frame #14: 0x0000000109034a34 libdispatch.dylib`_dispatch_lane_serial_drain + 716
        frame #15: 0x000000010903573c libdispatch.dylib`_dispatch_lane_invoke + 412
        frame #16: 0x000000010903f474 libdispatch.dylib`_dispatch_workloop_worker_thread + 1172
        frame #17: 0x00000001f43c9a98 libsystem_pthread.dylib`_pthread_wqthread + 308
        frame #18: 0x00000001f43cfdc4 libsystem_pthread.dylib`start_wqthread + `4`
    

    I've tried completely reconnecting my node graph, but I can't seem to find a way around it. Can anyone shed any light on why it's crashing?

    Is there a recommended process for tearing down and rebuilding SynthOne, after stopping and restarting audio? Or is it possible that this is just something to do with manual rendering mode?

    One possibility for the change in behaviour is that one of our developers upgraded to Xcode 10.3, which I believe forced an upgrade of AudioKit (i.e., to Swift 4.2). Is it possible that there's an incompatibility between AudioKit and the version of SynthOne we're using (it is not the most recent version).

    opened by jbmaxwell 8
  • Feature/header and keyboard accessibility

    Feature/header and keyboard accessibility

    A first take on adding accessibility to just the Header and Keyboard. Not complete functionality for the Header and Keyboard them but I would say about 95%. Just something people can get to know things with. IE you can select a Preset, and play some notes.

    I had to clarify some of the descriptions of controls in the Storyboard for future reference, so I hope that isn't a problem. There are also a couple custom controls you guys have created, I have to figure out a way to interact with.

    This post can provide a guide how to set up VoiceOver.

    opened by ForeverTangent 8
  • Add iPhone App

    Add iPhone App

    How feasible would this be? Synth One looks amazing, but there are plenty of us (dozens, I say!) who use our iPhones for music and don't have iPads for varying reasons.

    opened by BenKesselring 8
  • High CPU load

    High CPU load

    Tested on iPad Pro 13 inch - CPU usage is about 30-45% in idle. And a lot more in the old iPads Sound of AUv3 in 90% cases is late and goes crazy (I used code for auv3 from brokenV3) If I add two or more plugins, then CPU load 100% and sound is hang

    opened by Wiksnet 6
  • Refactor Sequencer

    Refactor Sequencer

    ping @analogcode @marcussatellite

    This is my first iteration of the Sequencer Refactor.

    In the first commit I'm extracting the sequencer code from the Kernel into a separate class. The second commit cleans up and extracts the Arpegiator code into separate static functions. I also consolidate the Down and DownMinusTail ones into one function.

    Tested on my end, but I'd feel way more comfortable if you all would give this a spin too before merging :)

    opened by sieren 5
  • ld: framework not found Pods_OneSignalNotificationServiceExtension

    ld: framework not found Pods_OneSignalNotificationServiceExtension

    Wanted to run synth in an emulator, ABLink error is now resolved, but im getting another one:

    Ld /Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Products/Debug-iphonesimulator/OneSignalNotificationServiceExtension.appex/OneSignalNotificationServiceExtension normal x86_64
        cd /Users/krzyh/code/AudioKitSynthOne
        export IPHONEOS_DEPLOYMENT_TARGET=11.3
        export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
        /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.4.sdk -L/Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Products/Debug-iphonesimulator -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -F/Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Products/Debug-iphonesimulator -F/Users/krzyh/code/AudioKitSynthOne/Pods/AudioKit/iOS -F/Users/krzyh/code/AudioKitSynthOne/Pods/OneSignal/iOS_SDK/OneSignalSDK/Framework -filelist /Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -Xlinker -rpath -Xlinker @executable_path/../../Frameworks -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @executable_path/../../Frameworks -mios-simulator-version-min=11.3 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension_lto.o -Xlinker -export_dynamic -Xlinker -no_deduplicate -Xlinker -objc_abi_version -Xlinker 2 -fapplication-extension -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension.swiftmodule -lstdc++ -ObjC -lstdc++ -framework AVFoundation -framework AudioKit -framework AudioKitUI -framework OneSignal -framework SystemConfiguration -framework UIKit -framework UserNotifications -e _NSExtensionMain -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/OneSignalNotificationServiceExtension.appex-Simulated.xcent -framework Pods_OneSignalNotificationServiceExtension -Xlinker -dependency_info -Xlinker /Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Intermediates.noindex/AudioKitSynthOne.build/Debug-iphonesimulator/OneSignalNotificationServiceExtension.build/Objects-normal/x86_64/OneSignalNotificationServiceExtension_dependency_info.dat -o /Users/krzyh/Library/Developer/Xcode/DerivedData/AudioKitSynthOne-bzbrlkwdxzubzhaurxngoqdckeyl/Build/Products/Debug-iphonesimulator/OneSignalNotificationServiceExtension.appex/OneSignalNotificationServiceExtension
    
    
    ld: framework not found Pods_OneSignalNotificationServiceExtension
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    

    My steps:

    1. Change branch to develop
    2. Update repo (git pull)
    3. pod repo update
    4. pod install
    5. Run xcode
    6. Hit Build and run
    7. Get build error
    opened by krzysztofwolski 5
  • Build Failure

    Build Failure

    Looks like the most recent commit of adding in ABLink is failing. It's currently included in the AudioKitSynthOne-Bridging-Header.h but doesn't look to be included in the project. This is resulting in build errors.

    It looks like the files have been added to the .gitignore so they weren't checked into the project. https://github.com/AudioKit/AudioKitSynthOne/blob/master/.gitignore#L70-L71

    You should also look into updating the TravisCI build to fail if the project doesn't build. Looks like xcbuild always returns an exit code of 0 no matter if the project fails to build or not. Here's a quick stack overflow answer on a simple remedy! https://stackoverflow.com/questions/7363459/how-to-get-the-return-value-of-xcodebuild

    Thanks again for this project and let me know of anything I can do to help get this resolved!

    opened by bmeverett 5
  • libc++abi.dylib: terminating with uncaught exception of type NSException

    libc++abi.dylib: terminating with uncaught exception of type NSException

    Master & also auv3(once I added your AB3 key) Conductor.swift:start():118:Logging is ON Conductor.swift:start():145:AudioKit Started libc++abi.dylib: terminating with uncaught exception of type NSException

    this is in AppDelegate.swift.

    app runs up, I can see the main UI, but I get the above issue after a few seconds...

    Using your bundle name & AB key. Copied the Pods.xcodeproj into project(seems to be the best way to get it linked). I've turned off cloud & notifications in the app.

    opened by manowargoblin 5
  • Would be amazing to use it on M1/M2 Macs

    Would be amazing to use it on M1/M2 Macs

    Description

    The AudioKit Synth X is running (fine) on M1 Macs. Actually I am not sure if its running really fine, but its working. Is there a reason why the synth one has not been released for macs so far? It should run fine as it is. Maybe the midi system needs to be done somehow, but maybe this is also kind of the same as on the ipads/iphones. Would be amazing to get it released for mac.

    Proposed Solution

    Just allow it to be used on M1 Macs.

    Describe Alternatives You've Considered

    No alternative

    Additional Context

    No response

    opened by dmuiX 0
  • Build Failed

    Build Failed

    <unknown>:0: error: module compiled with Swift 5.1.1 cannot be imported by the Swift 5.6.1 compiler: /Users/yoogle/ddrive/audio-kit/AudioKitSynthOne/Pods/AudioKit/iOS/AudioKit.framework/Modules/AudioKit.swiftmodule/arm64.swiftmodule

    <unknown>:0: error: module compiled with Swift 5.1.1 cannot be imported by the Swift 5.6.1 compiler: /Users/yoogle/ddrive/audio-kit/AudioKitSynthOne/Pods/AudioKit/iOS/AudioKit.framework/Modules/AudioKit.swiftmodule/arm64.swiftmodule

    error: using bridging headers with module interfaces is unsupported Command CompileSwiftSources failed with a nonzero exit code

    opened by theyoogle 1
  • BPM gets reset after saving present

    BPM gets reset after saving present

    Hello guys, I've made a sound with the sequencer active and I wanted to reduce the tempo of its playback. But after trying to change BPM and then saving the preset, the tempo gets immediately reset to 120 bpm. Reloading the preset doesn't restore the bpm that I tried to save; it restores the sound but with 120bpm.

    Is this intended or is a bug to report?

    opened by Pictor13 1
  • Guidance for porting as a headless application to Linux

    Guidance for porting as a headless application to Linux

    The goal would be to create a headless application able to load a JSON preset file and play with incoming midi notes. No UI. Is it correct that I would need to port only parts of the DSP module? I guess I would not need to port any swift code if I rewrite the JSON parsing of the preset. Could you give me some advice to speed up my analysis?

    opened by lbovet 0
  • Cutoff Frequency Percentage

    Cutoff Frequency Percentage

    The Ultimate Guide says "To experiment with the filter envelope, it’s best to set the cutoff frequency to 50%” but the app gives frequency in Hz rather than %.

    If percentage frequency scales with fundamental frequency, it would be wonderful if there was a way to set the cutoff to percentage value, but I can't find that option anywhere.

    opened by Aqueum 0
  • Sequencer Division incorrect

    Sequencer Division incorrect

    The Synth One "Ultimate Guide" says that the sequencer Division control sets the note length of each step, which seems intuitive. This does not match what happens though:

    • Open patch 0:init from Starter bank
    • Tempo should be 120 bpm
    • Set sequencer to "Seq" and switch on
    • Set Division to 1/4 note.
    • Play a note - each step is 4x too fast (i.e. 16th note).
    opened by imprompt 2
AudioKit is an audio synthesis, processing, and analysis platform for iOS, macOS, and tvOS.

AudioKit is an audio synthesis, processing, and analysis platform for iOS, macOS (including Catalyst), and tvOS. Installation To add AudioKit

AudioKit 9.5k Dec 31, 2022
🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.

Made by Applikey Solutions Find this project on Dribbble Table of Contents Purpose Features Supported OS & SDK Versions Installation Usage Demo Releas

Applikey Solutions 1.1k Dec 26, 2022
Microtonal Tuning Tables for AudioKit

Microtonal Tuning Tables for AudioKit These tuning tables were developed by Marcus Hobbs and used in the AudioKit Synth One iOS app. Installation via

AudioKit 11 Nov 23, 2022
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player

AudioKit ROM / Sample Player Welcome to the official AudioKit example of a sample-based music instrument written in Swift. It can be modified to play

AudioKit 500 Dec 27, 2022
Swift Xcode Project that demonstrates how to set up a microphone input via AudioKit verions 5.

AudioKit Mic Input Swift Xcode Project that demonstrates how to set up a microphone input via AudioKit verions 5. Be sure to plug in headphones in ord

Mark Jeschke 0 Oct 23, 2021
C-backed AudioKit DSP

AudioKitEX This extension to AudioKit contains all of the AudioKit features that rely on C/C++ DSP. Documentation The documentation appears in the Wik

AudioKit 27 Jan 1, 2023
A minimal AUv3 instrument example using AudioKit 5

AUv3 Instrument (AudioKit 5) A minimal AUv3 instrument example using AudioKit 5. Download the project, customize it however you like, and share your w

Nick Culbertson 24 Jan 4, 2023
Website for AudioKit documentation.

AudioKit.io audiokit.io hosts DocC documentation for all AudioKit packages. Running the Website The first and only thing we need to do is add a workin

AudioKit 3 Sep 5, 2022
Swift Radio is an open source radio station app with robust and professional features.

Swift Radio Swift Radio is an open source radio station app with robust and professional features. This is a fully realized Radio App built entirely i

Ahmed AlOtaibi 0 Oct 13, 2021
Nobetci Eczacim is open-source App Store Application which users can get pharmacy information and location easily and safely.

Pharmacy-On-Duty Nobetci Eczacim Project Description This project designed for make it easier for people to search for a pharmacy on duty. App Store A

Mert Demirtas 5 Sep 19, 2022
A note source and a rhythm source to create a new virtual MIDI instrument

MidiCombiner for Mac Combines inputs from 2 different MIDI sources: A note source and a rhythm source to create a new virtual MIDI instrument. The not

null 2 Jul 6, 2022
Fast Campus iOS App Development All-in-one Package Online Clone Coding

애플뮤직 클론 코딩 패스트캠퍼스 iOS 앱 개발 올인원 패키지 Online 클론코딩 사용요소 UICollectionReusableView , c

JungMin 1 Dec 21, 2021
SleepingBaby - Track your kids activity and allow them sleep soundly with relaxing music in ONE app

Sleeping Baby Скачать в AppStore. Ключевые используемые технологии: UIKit, MVVM,

Egor Kostyukhin 0 Jan 7, 2022
Radio Streams from all over the world. Free and Open.

RadioBrowserKit - The Swift SDK for Radio Browser Radio Streams from all over the world. Free and Open. RadioBrowserKit is a Swift package which lets

Frank Gregor 5 Oct 17, 2022
An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and more.

SpotifyClone An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and

null 104 Jan 7, 2023
AIB indicates for your app users which audio is playing. Just like the Podcasts app.

Audio Indicator Bars for iOS and tvOS Indicates for your app users which audio is playing. Just like the Podcasts app. Index Requirements and Details

Leonardo Cardoso 285 Nov 23, 2022
Classical music front-end for Apple Music: iOS app

concertino_ios Concertino is a classical music front-end for Apple Music. It's splitted in several projects. This one provides only the iOS app. (Ther

Open Opus 107 Dec 22, 2022
Voice Memos is an audio recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Swift.

VoiceMemos Voice Memos is a voice recorder App for iPhone and iPad that covers some of the new technologies and APIs introduced in iOS 8 written in Sw

Zhouqi Mo 322 Aug 4, 2022
iOS music player app that downloads music from the internet, even YouTube

About YouTag is an iOS music player app that downloads music from the internet, even YouTube, and manages it in a local library. Music videos can also

null 263 Jan 8, 2023