├── AudioKitSynthOne
├── en.lproj
│ ├── Main.strings
│ ├── Localizable.strings
│ └── InfoPlist.strings
├── fr.lproj
│ ├── Main.strings
│ └── InfoPlist.strings
├── ja.lproj
│ ├── Main.strings
│ └── InfoPlist.strings
├── tr.lproj
│ ├── Main.strings
│ └── InfoPlist.strings
├── pt-BR.lproj
│ ├── Main.strings
│ └── InfoPlist.strings
├── zh-Hans.lproj
│ ├── Main.strings
│ └── InfoPlist.strings
├── zh-Hant.lproj
│ ├── Main.strings
│ └── InfoPlist.strings
├── About
│ ├── en.lproj
│ │ └── About.strings
│ ├── Mailing List
│ │ ├── zh-Hans.lproj
│ │ │ └── MailingList.strings
│ │ ├── zh-Hant.lproj
│ │ │ └── MailingList.strings
│ │ ├── ja.lproj
│ │ │ └── MailingList.strings
│ │ ├── en.lproj
│ │ │ └── MailingList.strings
│ │ ├── zh-Hant-TW.lproj
│ │ │ └── MailingList.strings
│ │ ├── tr.lproj
│ │ │ └── MailingList.strings
│ │ ├── pt-BR.lproj
│ │ │ └── MailingList.strings
│ │ ├── Manager+MailingListDelegate.swift
│ │ ├── de.lproj
│ │ │ └── MailingList.strings
│ │ └── fr.lproj
│ │ │ └── MailingList.strings
│ ├── InfoViewController.swift
│ └── MoreAppsController.swift
├── Header
│ ├── en.lproj
│ │ └── Header.strings
│ ├── fr.lproj
│ │ └── Header.strings
│ ├── tr.lproj
│ │ └── Header.strings
│ ├── ja.lproj
│ │ └── Header.strings
│ ├── pt-BR.lproj
│ │ └── Header.strings
│ ├── zh-Hans.lproj
│ │ └── Header.strings
│ ├── zh-Hant.lproj
│ │ └── Header.strings
│ └── zh-Hant-TW.lproj
│ │ └── Header.strings
├── Effects
│ ├── en.lproj
│ │ └── Effects.strings
│ ├── fr.lproj
│ │ └── Effects.strings
│ ├── ja.lproj
│ │ └── Effects.strings
│ ├── pt-BR.lproj
│ │ └── Effects.strings
│ ├── tr.lproj
│ │ └── Effects.strings
│ ├── zh-Hans.lproj
│ │ └── Effects.strings
│ ├── zh-Hant.lproj
│ │ └── Effects.strings
│ └── README.md
├── Envelopes
│ ├── en.lproj
│ │ └── Envelopes.strings
│ ├── fr.lproj
│ │ └── Envelopes.strings
│ ├── ja.lproj
│ │ └── Envelopes.strings
│ ├── tr.lproj
│ │ └── Envelopes.strings
│ ├── pt-BR.lproj
│ │ └── Envelopes.strings
│ ├── zh-Hans.lproj
│ │ └── Envelopes.strings
│ ├── zh-Hant.lproj
│ │ └── Envelopes.strings
│ ├── README.md
│ └── zh-Hant-TW.lproj
│ │ └── Envelopes.strings
├── Presets
│ ├── fr.lproj
│ │ └── Presets.strings
│ ├── ja.lproj
│ │ └── Presets.strings
│ ├── pt-BR.lproj
│ │ └── Presets.strings
│ ├── tr.lproj
│ │ └── Presets.strings
│ ├── en.lproj
│ │ └── Presets.strings
│ ├── zh-Hans.lproj
│ │ └── Presets.strings
│ ├── zh-Hant.lproj
│ │ └── Presets.strings
│ ├── UI Components
│ │ ├── String+CapitalizeFirst.swift
│ │ └── PresetUIButton.swift
│ ├── Bank.swift
│ ├── PresetsViewController
│ │ ├── Presets+SearchDelegate.swift
│ │ ├── Presets+PresetPopOverDelegate.swift
│ │ ├── Presets+UITextViewDelegate.swift
│ │ └── Presets+UITableViewDataSource.swift
│ ├── BankEditorViewController.swift
│ └── Manager+PresetsDelegate.swift
├── Sequencer
│ ├── fr.lproj
│ │ └── Sequencer.strings
│ ├── ja.lproj
│ │ └── Sequencer.strings
│ ├── tr.lproj
│ │ └── Sequencer.strings
│ ├── pt-BR.lproj
│ │ └── Sequencer.strings
│ ├── zh-Hans.lproj
│ │ └── Sequencer.strings
│ ├── zh-Hant.lproj
│ │ └── Sequencer.strings
│ ├── README.md
│ └── UI Components
│ │ └── RateKnob.swift
├── TouchPad
│ ├── fr.lproj
│ │ └── TouchPad.strings
│ ├── ja.lproj
│ │ └── TouchPad.strings
│ ├── tr.lproj
│ │ └── TouchPad.strings
│ ├── pt-BR.lproj
│ │ └── TouchPad.strings
│ ├── zh-Hans.lproj
│ │ └── TouchPad.strings
│ ├── zh-Hant.lproj
│ │ └── TouchPad.strings
│ ├── README.md
│ ├── UI Components
│ │ ├── spark.png
│ │ └── TouchPoint.swift
│ ├── en.lproj
│ │ └── TouchPad.strings
│ └── zh-Hant-TW.lproj
│ │ └── TouchPad.strings
├── Tunings
│ ├── en.lproj
│ │ └── Tunings.strings
│ ├── fr.lproj
│ │ └── Tunings.strings
│ ├── ja.lproj
│ │ └── Tunings.strings
│ ├── pt-BR.lproj
│ │ └── Tunings.strings
│ ├── tr.lproj
│ │ └── Tunings.strings
│ ├── zh-Hans.lproj
│ │ └── Tunings.strings
│ ├── zh-Hant.lproj
│ │ └── Tunings.strings
│ ├── zh-Hant-TW.lproj
│ │ └── Tunings.strings
│ ├── TuningsPanelController
│ │ ├── TuningsPanel+TuneUpDelegate.swift
│ │ └── TuningsViewController.swift
│ ├── Model
│ │ ├── TuningBank.swift
│ │ └── Tunings+LaunchD1.swift
│ ├── UI Components
│ │ └── TuningCell.swift
│ └── TuneUpPopUp.swift
├── Developer
│ ├── Base.lproj
│ │ ├── en.lproj
│ │ │ └── Dev.strings
│ │ ├── fr.lproj
│ │ │ └── Dev.strings
│ │ ├── ja.lproj
│ │ │ └── Dev.strings
│ │ ├── tr.lproj
│ │ │ └── Dev.strings
│ │ ├── pt-BR.lproj
│ │ │ └── Dev.strings
│ │ ├── zh-Hans.lproj
│ │ │ └── Dev.strings
│ │ └── zh-Hant.lproj
│ │ │ └── Dev.strings
│ ├── zh-Hans.lproj
│ │ └── zh-Hans.lproj
│ │ │ └── Dev.strings
│ └── zh-Hant.lproj
│ │ └── zh-Hant.lproj
│ │ └── Dev.strings
├── Generators
│ ├── en.lproj
│ │ └── Generators.strings
│ ├── fr.lproj
│ │ └── Generators.strings
│ ├── ja.lproj
│ │ └── Generators.strings
│ ├── pt-BR.lproj
│ │ └── Generators.strings
│ ├── tr.lproj
│ │ └── Generators.strings
│ ├── zh-Hans.lproj
│ │ └── Generators.strings
│ ├── zh-Hant.lproj
│ │ └── Generators.strings
│ ├── README.md
│ └── UI Components
│ │ └── FlatToggleButton.swift
├── Translations
│ ├── Metadata
│ │ ├── subtitle-ja-JP.txt
│ │ ├── subtitle-zh-CN.txt
│ │ ├── subtitle-zh-TW.txt
│ │ ├── subtitle-ko-KR.txt
│ │ ├── subtitle-en.txt
│ │ ├── subtitle-lol-US.txt
│ │ ├── subtitle-tr-TR.txt
│ │ ├── subtitle-ar-SA.txt
│ │ ├── subtitle-hi-IN.txt
│ │ ├── subtitle-it-IT.txt
│ │ ├── subtitle-pt-BR.txt
│ │ ├── subtitle-sr-CS.txt
│ │ ├── subtitle-es-ES.txt
│ │ ├── subtitle-nl-NL.txt
│ │ ├── subtitle-ro-RO.txt
│ │ ├── subtitle-cs-CZ.txt
│ │ ├── subtitle-de-DE.txt
│ │ ├── subtitle-ru-RU.txt
│ │ ├── subtitle-fr-FR.txt
│ │ ├── keywords-ko-KR.txt
│ │ ├── keywords-ja-JP.txt
│ │ ├── keywords-zh-CN.txt
│ │ ├── keywords-zh-TW.txt
│ │ ├── keywords-ar-SA.txt
│ │ ├── keywords-hi-IN.txt
│ │ ├── keywords-cs-CZ.txt
│ │ ├── keywords-en.txt
│ │ ├── keywords-lol-US.txt
│ │ ├── keywords-nl-NL.txt
│ │ ├── keywords-ru-RU.txt
│ │ ├── keywords-sr-CS.txt
│ │ ├── keywords-tr-TR.txt
│ │ ├── keywords-pt-BR.txt
│ │ ├── keywords-ro-RO.txt
│ │ ├── keywords-de-DE.txt
│ │ ├── keywords-fr-FR.txt
│ │ ├── keywords-es-ES.txt
│ │ ├── keywords-it-IT.txt
│ │ ├── changelog-zh-CN.txt
│ │ ├── changelog-zh-TW.txt
│ │ ├── changelog-ko-KR.txt
│ │ ├── changelog-ja-JP.txt
│ │ ├── changelog-ar-SA.txt
│ │ ├── changelog-en.txt
│ │ ├── changelog-lol-US.txt
│ │ ├── changelog-sr-CS.txt
│ │ ├── changelog-hi-IN.txt
│ │ ├── changelog-cs-CZ.txt
│ │ ├── changelog-it-IT.txt
│ │ ├── changelog-tr-TR.txt
│ │ ├── changelog-nl-NL.txt
│ │ ├── changelog-ru-RU.txt
│ │ ├── changelog-de-DE.txt
│ │ ├── changelog-pt-BR.txt
│ │ ├── changelog-fr-FR.txt
│ │ ├── changelog-ro-RO.txt
│ │ ├── changelog-es-ES.txt
│ │ ├── description-zh-TW.txt
│ │ └── description-zh-CN.txt
│ ├── images
│ │ ├── crowdin.jpg
│ │ ├── export.jpg
│ │ └── scheme.jpg
│ └── AudioKitSynthOne
│ │ ├── fr.xcloc
│ │ ├── Source Contents
│ │ │ ├── OneSignalNotificationServiceExtension
│ │ │ │ └── en.lproj
│ │ │ │ │ └── InfoPlist.strings
│ │ │ └── AudioKitSynthOne
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Localizable.strings
│ │ │ │ └── en.lproj
│ │ │ │ └── InfoPlist.strings
│ │ └── contents.json
│ │ ├── ja.xcloc
│ │ ├── Source Contents
│ │ │ ├── OneSignalNotificationServiceExtension
│ │ │ │ └── en.lproj
│ │ │ │ │ └── InfoPlist.strings
│ │ │ └── AudioKitSynthOne
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Localizable.strings
│ │ │ │ └── en.lproj
│ │ │ │ └── InfoPlist.strings
│ │ └── contents.json
│ │ ├── tr.xcloc
│ │ ├── Source Contents
│ │ │ ├── OneSignalNotificationServiceExtension
│ │ │ │ └── en.lproj
│ │ │ │ │ └── InfoPlist.strings
│ │ │ └── AudioKitSynthOne
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Localizable.strings
│ │ │ │ └── en.lproj
│ │ │ │ └── InfoPlist.strings
│ │ └── contents.json
│ │ ├── pt-BR.xcloc
│ │ ├── Source Contents
│ │ │ ├── OneSignalNotificationServiceExtension
│ │ │ │ └── en.lproj
│ │ │ │ │ └── InfoPlist.strings
│ │ │ └── AudioKitSynthOne
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Localizable.strings
│ │ │ │ └── en.lproj
│ │ │ │ └── InfoPlist.strings
│ │ └── contents.json
│ │ ├── zh-Hans.xcloc
│ │ ├── Source Contents
│ │ │ ├── OneSignalNotificationServiceExtension
│ │ │ │ └── en.lproj
│ │ │ │ │ └── InfoPlist.strings
│ │ │ └── AudioKitSynthOne
│ │ │ │ ├── Base.lproj
│ │ │ │ └── Localizable.strings
│ │ │ │ └── en.lproj
│ │ │ │ └── InfoPlist.strings
│ │ └── contents.json
│ │ └── zh-Hant.xcloc
│ │ ├── Source Contents
│ │ ├── OneSignalNotificationServiceExtension
│ │ │ └── en.lproj
│ │ │ │ └── InfoPlist.strings
│ │ └── AudioKitSynthOne
│ │ │ ├── Base.lproj
│ │ │ └── Localizable.strings
│ │ │ └── en.lproj
│ │ │ └── InfoPlist.strings
│ │ └── contents.json
├── Assets
│ ├── D1_icon.png
│ ├── icon_320.png
│ ├── icon_64.png
│ └── Assets.xcassets
│ │ ├── Contents.json
│ │ ├── .DS_Store
│ │ ├── d1.imageset
│ │ ├── d1.jpg
│ │ └── Contents.json
│ │ ├── back.imageset
│ │ ├── close@2x.png
│ │ └── Contents.json
│ │ ├── dice.imageset
│ │ ├── dice@2x.png
│ │ └── Contents.json
│ │ ├── info.imageset
│ │ ├── info@2x.png
│ │ └── Contents.json
│ │ ├── spark.imageset
│ │ ├── spark.png
│ │ └── Contents.json
│ │ ├── D1_icon.imageset
│ │ ├── D1_icon.png
│ │ └── Contents.json
│ │ ├── s1_logo.imageset
│ │ ├── s1_logo.png
│ │ └── Contents.json
│ │ ├── AppIcon.appiconset
│ │ ├── Icon 512.png
│ │ ├── icon_20pt.png
│ │ ├── icon_29pt.png
│ │ ├── icon_40pt.png
│ │ ├── icon_76pt.png
│ │ ├── icon_20pt@2x.png
│ │ ├── icon_20pt@3x.png
│ │ ├── icon_29pt@2x.png
│ │ ├── icon_29pt@3x.png
│ │ ├── icon_40pt@2x.png
│ │ ├── icon_40pt@3x.png
│ │ ├── icon_60pt@2x.png
│ │ ├── icon_60pt@3x.png
│ │ ├── icon_76pt@2x.png
│ │ ├── icon_83.5@2x.png
│ │ ├── icon_20pt@2x-1.png
│ │ ├── icon_29pt@2x-1.png
│ │ └── icon_40pt@2x-1.png
│ │ ├── ak_copy.imageset
│ │ ├── ak_copy@2x.png
│ │ └── Contents.json
│ │ ├── ak_edit.imageset
│ │ ├── ak_edit@2x.png
│ │ └── Contents.json
│ │ ├── ak_fav.imageset
│ │ ├── ak_fav@2x.png
│ │ └── Contents.json
│ │ ├── au_adsr.imageset
│ │ ├── au_adsr@2x.png
│ │ └── Contents.json
│ │ ├── au_arp.imageset
│ │ ├── au_arp@2x.png
│ │ └── Contents.json
│ │ ├── au_efx.imageset
│ │ ├── au_efx@2x.png
│ │ └── Contents.json
│ │ ├── au_main.imageset
│ │ ├── au_main@2x.png
│ │ └── Contents.json
│ │ ├── circuit.imageset
│ │ ├── circuit@2x.jpg
│ │ └── Contents.json
│ │ ├── saveDisk.imageset
│ │ ├── saveDisk.png
│ │ ├── saveDisk@2x.png
│ │ └── Contents.json
│ │ ├── ak_share.imageset
│ │ ├── ak_share@2x.png
│ │ └── Contents.json
│ │ ├── app-store.imageset
│ │ ├── app-store.png
│ │ └── Contents.json
│ │ ├── fmplayer.imageset
│ │ ├── fmplayer@2x.jpg
│ │ └── Contents.json
│ │ ├── iPhone_FX.imageset
│ │ ├── iPhone_FX.png
│ │ └── Contents.json
│ │ ├── rack-left.imageset
│ │ ├── rack-left.png
│ │ ├── rack-leftbw.png
│ │ └── Contents.json
│ │ ├── ak1-logo.imageset
│ │ ├── ak1-logo2@2x.png
│ │ └── Contents.json
│ │ ├── au_tuning.imageset
│ │ ├── au_tuning@2x.png
│ │ └── Contents.json
│ │ ├── bluetooth.imageset
│ │ ├── bluetooth@2x.png
│ │ └── Contents.json
│ │ ├── iPhone_Arp.imageset
│ │ ├── iPhone_Arp.png
│ │ └── Contents.json
│ │ ├── iPhone_adsr.imageset
│ │ ├── iPhone_adsr.png
│ │ └── Contents.json
│ │ ├── smile-icon.imageset
│ │ ├── smile-icon.png
│ │ └── Contents.json
│ │ ├── LaunchImage.launchimage
│ │ ├── launch@2x.png
│ │ ├── iPhone8Plus.jpg
│ │ ├── iPhone8launch.jpg
│ │ ├── iphoneXlaunch.jpg
│ │ ├── iphone5Launch-1.jpg
│ │ └── iPhoneXSMaxlaunch-1.jpg
│ │ ├── au_presets.imageset
│ │ ├── au_presets@2x.png
│ │ └── Contents.json
│ │ ├── background.imageset
│ │ ├── background@2x.png
│ │ └── Contents.json
│ │ ├── headerback.imageset
│ │ ├── headerback@2x.png
│ │ └── Contents.json
│ │ ├── left-arrow.imageset
│ │ ├── left-arrow@2x.png
│ │ └── Contents.json
│ │ ├── Wilsonic_icon.imageset
│ │ ├── Wilsonic_icon.png
│ │ └── Contents.json
│ │ ├── ak_favfilled.imageset
│ │ ├── ak_favfilled@2x.png
│ │ └── Contents.json
│ │ ├── au_touchpad.imageset
│ │ ├── au_touchpad@2x.png
│ │ └── Contents.json
│ │ ├── iPhone_Preset.imageset
│ │ ├── iPhone_Preset.png
│ │ └── Contents.json
│ │ ├── iPhone_Tuning.imageset
│ │ ├── iPhone_Tuning.png
│ │ └── Contents.json
│ │ ├── keyboard_top.imageset
│ │ ├── keyboard_top@2x.png
│ │ └── Contents.json
│ │ ├── right-arrow.imageset
│ │ ├── right-arrow@2x.png
│ │ └── Contents.json
│ │ ├── touchViewBack.imageset
│ │ ├── touchViewBack@2x.png
│ │ └── Contents.json
│ │ ├── iPhone_Generator.imageset
│ │ ├── iPhone_Generator.png
│ │ └── Contents.json
│ │ ├── iPhone_TouchPad.imageset
│ │ ├── iPhone_TouchPad.png
│ │ └── Contents.json
│ │ ├── iPhone_TouchPad_bg.imageset
│ │ ├── iPhone_TouchPad_bg.png
│ │ └── Contents.json
│ │ └── iPhoneheaderback.imageset
│ │ ├── iPhoneheaderback@2x.png
│ │ └── Contents.json
├── Base.lproj
│ ├── Localizable.strings
│ └── InfoPlist.strings
├── zh-Hant-TW.lproj
│ ├── Localizable.strings
│ └── InfoPlist.strings
├── DSP
│ ├── BandlimitedWavetables
│ │ ├── bandlimitedWaveformFrequencies.json
│ │ └── bandlimitedWaveforms.json
│ ├── Sequencer
│ │ ├── S1ArpModes.hpp
│ │ └── S1SeqNoteNumber.hpp
│ ├── S1TuningTable.swift
│ ├── S1Control.swift
│ ├── AudioKitSynthOne-Bridging-Header.h
│ ├── Rate
│ │ └── AKSynthOneRate.h
│ ├── Kernel
│ │ ├── S1DSPKernel+MIDI.mm
│ │ ├── S1DSPKernel+reset.mm
│ │ └── S1DSPKernel+destroy.mm
│ ├── Conductor+Platform.swift
│ ├── TAAE
│ │ ├── AEWeakRetainingProxy.h
│ │ ├── AEWeakRetainingProxy.m
│ │ └── AETypes.m
│ └── README.md
├── Audiobus
│ ├── README.md
│ └── Manager+Audiobus.swift
├── Controls
│ ├── README.md
│ └── Buttons
│ │ ├── iPhoneToggleButton.swift
│ │ ├── CallbackButton.swift
│ │ ├── ToggleSwitch.swift
│ │ ├── ToggleButton.swift
│ │ └── SynthButton.swift
├── MIDI
│ ├── MIDIInput.swift
│ ├── ChannelStepper.swift
│ ├── MIDILearnable.swift
│ ├── MIDICell.swift
│ └── Manager+MIDISettingsPopOverDelegate.swift
├── Keyboard
│ ├── UI Components
│ │ ├── KeyboardShowButton.swift
│ │ └── KeyboardView+Drawing.swift
│ ├── Manager+ModWheelDelegate.swift
│ └── Manager+Keyboard.swift
├── AudioKitSynthOne.entitlements
├── Manager
│ ├── UpdatableViewController.swift
│ └── Manager+PushNotification.swift
├── Private.swift
├── AppDelegate+PlatformServices.swift
├── README.md
└── Navigation
│ └── NavButton.swift
├── OneSignalNotificationServiceExtension
├── tr.lproj
│ └── InfoPlist.strings
├── Base.lproj
│ └── InfoPlist.strings
├── en.lproj
│ └── InfoPlist.strings
├── fr.lproj
│ └── InfoPlist.strings
├── ja.lproj
│ └── InfoPlist.strings
├── pt-BR.lproj
│ └── InfoPlist.strings
├── zh-Hans.lproj
│ └── InfoPlist.strings
├── zh-Hant-TW.lproj
│ └── InfoPlist.strings
├── zh-Hant.lproj
│ └── InfoPlist.strings
├── Info.plist
└── NotificationService.swift
├── travis.sh
├── AudioKitSynthOne.xcodeproj
└── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── AudioKitSynthOne.xcworkspace
├── contents.xcworkspacedata
└── xcshareddata
│ └── IDEWorkspaceChecks.plist
├── crowdin.yml
├── .travis.yml
├── LICENSE
├── Podfile
├── Podfile.lock
└── .gitignore
/AudioKitSynthOne/en.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/fr.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/ja.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/tr.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/pt-BR.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/zh-Hans.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/zh-Hant.lproj/Main.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/en.lproj/About.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/en.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/fr.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/tr.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/en.lproj/Effects.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/fr.lproj/Effects.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/ja.lproj/Effects.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/pt-BR.lproj/Effects.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/tr.lproj/Effects.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/en.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/fr.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/ja.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/tr.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/ja.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/pt-BR.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/zh-Hans.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/zh-Hant.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/fr.lproj/Presets.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/ja.lproj/Presets.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/pt-BR.lproj/Presets.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/tr.lproj/Presets.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/fr.lproj/Sequencer.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/ja.lproj/Sequencer.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/tr.lproj/Sequencer.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/fr.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/ja.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/tr.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/en.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/fr.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/ja.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/pt-BR.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/tr.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/Base.lproj/en.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/Base.lproj/fr.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/Base.lproj/ja.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/Base.lproj/tr.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/zh-Hans.lproj/Effects.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/zh-Hant.lproj/Effects.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/pt-BR.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/zh-Hans.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/zh-Hant.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/en.lproj/Generators.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/fr.lproj/Generators.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/ja.lproj/Generators.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/pt-BR.lproj/Generators.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/tr.lproj/Generators.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/en.lproj/Presets.strings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/zh-Hans.lproj/Presets.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/zh-Hant.lproj/Presets.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/pt-BR.lproj/Sequencer.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/zh-Hans.lproj/Sequencer.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/zh-Hant.lproj/Sequencer.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/pt-BR.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/zh-Hans.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/zh-Hant.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/zh-Hans.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/zh-Hant.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/Base.lproj/pt-BR.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/Base.lproj/zh-Hans.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/Base.lproj/zh-Hant.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/zh-Hans.lproj/Generators.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/zh-Hant.lproj/Generators.strings:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-ja-JP.txt:
--------------------------------------------------------------------------------
1 | 新しい音楽の作成と再生
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-zh-CN.txt:
--------------------------------------------------------------------------------
1 | 播放和创建新音乐
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-zh-TW.txt:
--------------------------------------------------------------------------------
1 | 播放和創建新音樂
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-ko-KR.txt:
--------------------------------------------------------------------------------
1 | 새로운 음악 재생 및 생성
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-en.txt:
--------------------------------------------------------------------------------
1 | Play & Create New Music
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-lol-US.txt:
--------------------------------------------------------------------------------
1 | I can has new music
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-tr-TR.txt:
--------------------------------------------------------------------------------
1 | Yeni Müzik Çal ve Çal
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-ar-SA.txt:
--------------------------------------------------------------------------------
1 | العب & أنشئ موسيقى جديدة
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-hi-IN.txt:
--------------------------------------------------------------------------------
1 | नया संगीत चलाएं और बनाएं
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-it-IT.txt:
--------------------------------------------------------------------------------
1 | Gioca e crea nuova musica
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-pt-BR.txt:
--------------------------------------------------------------------------------
1 | Toque e crie músicas novas
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-sr-CS.txt:
--------------------------------------------------------------------------------
1 | Play & Create New Music
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-es-ES.txt:
--------------------------------------------------------------------------------
1 | Reproducir y crear nueva música
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-nl-NL.txt:
--------------------------------------------------------------------------------
1 | Speel en maak nieuwe muziek
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-ro-RO.txt:
--------------------------------------------------------------------------------
1 | Redați și creați muzică nouă
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-cs-CZ.txt:
--------------------------------------------------------------------------------
1 | Přehrávání a vytváření nové hudby
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-de-DE.txt:
--------------------------------------------------------------------------------
1 | Spielen und neue Musik erstellen
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-ru-RU.txt:
--------------------------------------------------------------------------------
1 | Играйте и создавайте новую музыку
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/subtitle-fr-FR.txt:
--------------------------------------------------------------------------------
1 | Jouer et créer de la nouvelle musique
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Effects/README.md:
--------------------------------------------------------------------------------
1 | # Effects Panel
2 |
3 | 
4 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/D1_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/D1_icon.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/icon_320.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/icon_320.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/icon_64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/icon_64.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-ko-KR.txt:
--------------------------------------------------------------------------------
1 | 오디오 버스, 프로, 아날로그 신디사이저, 신디사이저, 아날로그, 신디사이저, 신스 원, 오디오 키트, 코르그, 무그, 피아노
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/README.md:
--------------------------------------------------------------------------------
1 | # Envelopes Panel
2 |
3 | 
4 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/README.md:
--------------------------------------------------------------------------------
1 | # Generators Panel
2 |
3 | 
4 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/README.md:
--------------------------------------------------------------------------------
1 | # Touch Pad Panel
2 |
3 | 
4 |
5 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-ja-JP.txt:
--------------------------------------------------------------------------------
1 | Audiobus、Pro、プロ、アナログ・シンセ、シンセサイザー、アナログ、シンセ、SynthOne、オーディオ・キット、Korg、ムーグ、ピアノ
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-zh-CN.txt:
--------------------------------------------------------------------------------
1 | Audiobus,Pro,Analog Synth,Synthesizer,Analog,Synth,SynthOne,Audio Kit,Korg,Moog,Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-zh-TW.txt:
--------------------------------------------------------------------------------
1 | Audiobus,Pro,Analog Synth,Synthesizer,Analog,Synth,SynthOne,Audio Kit,Korg,Moog,Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-ar-SA.txt:
--------------------------------------------------------------------------------
1 | Audiobus، Pro، Analog Synthesizer، Analog، Synth، SynthOne، Audio Kit، Korg، Moog، Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-hi-IN.txt:
--------------------------------------------------------------------------------
1 | ऑडीबस, प्रो, एनालॉग सिंथ, सिंथेसाइज़र, एनालॉग, सिंथ, सिंथोन, ऑडियो किट, कॉर्ग, मूग, पियानो
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/en.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/en.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/Base.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Base.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-cs-CZ.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Synthesizer, Analog, Synth, SynthOne, Audio Kit, Korg, Moog, Klavír
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-en.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Synthesizer, Analog, Synth, SynthOne, Audio Kit, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-lol-US.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Synthesizer, Analog, Synth, SynthOne, Audio Kit, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-nl-NL.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Synthesizer, Analoog, Synth, SynthOne, Audioset, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-ru-RU.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Synthesizer, Analog, Synth, SynthOne, Audio Kit, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-sr-CS.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Synthesizer, Analog, Synth, SynthOne, Audio Kit, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-tr-TR.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Synthesizer, Analog, Synth, SynthOne, Ses Seti, Korg, Moog, Piyano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/images/crowdin.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/images/crowdin.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/images/export.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/images/export.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/images/scheme.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/images/scheme.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/.DS_Store:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/.DS_Store
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/UI Components/spark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/TouchPad/UI Components/spark.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-pt-BR.txt:
--------------------------------------------------------------------------------
1 | Audiobus,Sintetizador Analógico,Sintetizador,Analógico,Sintetizador,SynthOne,AudioKit,Korg,Moog,Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-ro-RO.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analog Synth, Sintetizator, Analogic, Synth, SynthOne, Audio Kit, Korg, Moog, Pian
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-de-DE.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Analogsynth, Synthesizer, Analog, Synthesizer, Synthesizer, Audiokit, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-fr-FR.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Synthé analogique, Synthétiseur, Analogique, Synthé, SynthOne, Kit audio, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/zh-Hant-TW.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/zh-Hant-TW.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/d1.imageset/d1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/d1.imageset/d1.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-es-ES.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Sintetizador analógico, Sintetizador, Analógico, Synth, SynthOne, Kit de audio, Korg, Moog, Piano
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/keywords-it-IT.txt:
--------------------------------------------------------------------------------
1 | Audiobus, Pro, Sintetizzatore analogico, Sintetizzatore, Analogico, Synth, SynthOne, Kit audio, Korg, Moog, Pianoforte
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/back.imageset/close@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/back.imageset/close@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/dice.imageset/dice@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/dice.imageset/dice@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/info.imageset/info@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/info.imageset/info@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/spark.imageset/spark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/spark.imageset/spark.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/D1_icon.imageset/D1_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/D1_icon.imageset/D1_icon.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/s1_logo.imageset/s1_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/s1_logo.imageset/s1_logo.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/Icon 512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/Icon 512.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_copy.imageset/ak_copy@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/ak_copy.imageset/ak_copy@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_edit.imageset/ak_edit@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/ak_edit.imageset/ak_edit@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_fav.imageset/ak_fav@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/ak_fav.imageset/ak_fav@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_adsr.imageset/au_adsr@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/au_adsr.imageset/au_adsr@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_arp.imageset/au_arp@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/au_arp.imageset/au_arp@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_efx.imageset/au_efx@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/au_efx.imageset/au_efx@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_main.imageset/au_main@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/au_main.imageset/au_main@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/circuit.imageset/circuit@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/circuit.imageset/circuit@2x.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/saveDisk.imageset/saveDisk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/saveDisk.imageset/saveDisk.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_76pt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_76pt.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_share.imageset/ak_share@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/ak_share.imageset/ak_share@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/app-store.imageset/app-store.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/app-store.imageset/app-store.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/fmplayer.imageset/fmplayer@2x.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/fmplayer.imageset/fmplayer@2x.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_FX.imageset/iPhone_FX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_FX.imageset/iPhone_FX.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/rack-left.imageset/rack-left.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/rack-left.imageset/rack-left.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/saveDisk.imageset/saveDisk@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/saveDisk.imageset/saveDisk@2x.png
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/tr.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/travis.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Run tests in Travis CI
3 |
4 | set -o pipefail
5 |
6 | xcodebuild -workspace AudioKitSynthOne.xcworkspace -scheme AudioKitSynthOne -sdk iphonesimulator | xcpretty || exit 1
7 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt@3x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt@3x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt@3x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_60pt@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_60pt@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_60pt@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_60pt@3x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_76pt@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_76pt@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_83.5@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak1-logo.imageset/ak1-logo2@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/ak1-logo.imageset/ak1-logo2@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_tuning.imageset/au_tuning@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/au_tuning.imageset/au_tuning@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/bluetooth.imageset/bluetooth@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/bluetooth.imageset/bluetooth@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Arp.imageset/iPhone_Arp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Arp.imageset/iPhone_Arp.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_adsr.imageset/iPhone_adsr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_adsr.imageset/iPhone_adsr.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/rack-left.imageset/rack-leftbw.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/rack-left.imageset/rack-leftbw.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/smile-icon.imageset/smile-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/smile-icon.imageset/smile-icon.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_20pt@2x-1.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_29pt@2x-1.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/AppIcon.appiconset/icon_40pt@2x-1.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/launch@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/launch@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_presets.imageset/au_presets@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/au_presets.imageset/au_presets@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/background.imageset/background@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/background.imageset/background@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/headerback.imageset/headerback@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/headerback.imageset/headerback@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/left-arrow.imageset/left-arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/left-arrow.imageset/left-arrow@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iPhone8Plus.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iPhone8Plus.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iPhone8launch.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iPhone8launch.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iphoneXlaunch.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iphoneXlaunch.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/Wilsonic_icon.imageset/Wilsonic_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/Wilsonic_icon.imageset/Wilsonic_icon.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_favfilled.imageset/ak_favfilled@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/ak_favfilled.imageset/ak_favfilled@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_touchpad.imageset/au_touchpad@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/au_touchpad.imageset/au_touchpad@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Preset.imageset/iPhone_Preset.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Preset.imageset/iPhone_Preset.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Tuning.imageset/iPhone_Tuning.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Tuning.imageset/iPhone_Tuning.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/keyboard_top.imageset/keyboard_top@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/keyboard_top.imageset/keyboard_top@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/right-arrow.imageset/right-arrow@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/right-arrow.imageset/right-arrow@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/README.md:
--------------------------------------------------------------------------------
1 | # Sequencer Panel
2 |
3 | 
4 |
5 | ### This folder's contents
6 | Rate.swift
7 | SequencerPanelController.swift
8 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iphone5Launch-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iphone5Launch-1.jpg
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/touchViewBack.imageset/touchViewBack@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/touchViewBack.imageset/touchViewBack@2x.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Generator.imageset/iPhone_Generator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Generator.imageset/iPhone_Generator.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_TouchPad.imageset/iPhone_TouchPad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_TouchPad.imageset/iPhone_TouchPad.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iPhoneXSMaxlaunch-1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/LaunchImage.launchimage/iPhoneXSMaxlaunch-1.jpg
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/Base.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/fr.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/ja.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/pt-BR.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_TouchPad_bg.imageset/iPhone_TouchPad_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_TouchPad_bg.imageset/iPhone_TouchPad_bg.png
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhoneheaderback.imageset/iPhoneheaderback@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Assets/Assets.xcassets/iPhoneheaderback.imageset/iPhoneheaderback@2x.png
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/zh-Hans.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/zh-Hant-TW.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/zh-Hant.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/BandlimitedWavetables/bandlimitedWaveformFrequencies.json:
--------------------------------------------------------------------------------
1 | {"content":[0,8.1787834167480469,16.357566833496094,32.715133666992188,65.430267333984375,131.25,262.5,525.0,1050.0,2205.0,4410.0,11025.0,22050.0],"phase":0,"type":10}
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Audiobus/README.md:
--------------------------------------------------------------------------------
1 | # Audiobus / Interapp Audio
2 |
3 | This is a direct copy of the Audiobus files from AudioKit. For more information, check out:
4 |
5 | * [AudioKit's Audiobus documentation](http://audiokit.io/audiobus/)
6 | * [Audiobus itself](http://audiob.us/)
7 |
8 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/fr.xcloc/Source Contents/OneSignalNotificationServiceExtension/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 | /* Bundle name */
4 | "CFBundleName" = "$(PRODUCT_NAME)";
5 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/ja.xcloc/Source Contents/OneSignalNotificationServiceExtension/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 | /* Bundle name */
4 | "CFBundleName" = "$(PRODUCT_NAME)";
5 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/tr.xcloc/Source Contents/OneSignalNotificationServiceExtension/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 | /* Bundle name */
4 | "CFBundleName" = "$(PRODUCT_NAME)";
5 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/fr.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/AudioKitSynthOne/fr.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/ja.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/AudioKitSynthOne/ja.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/pt-BR.xcloc/Source Contents/OneSignalNotificationServiceExtension/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 | /* Bundle name */
4 | "CFBundleName" = "$(PRODUCT_NAME)";
5 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/tr.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/AudioKitSynthOne/tr.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hans.xcloc/Source Contents/OneSignalNotificationServiceExtension/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 | /* Bundle name */
4 | "CFBundleName" = "$(PRODUCT_NAME)";
5 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hant.xcloc/Source Contents/OneSignalNotificationServiceExtension/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "OneSignalNotificationServiceExtension";
3 | /* Bundle name */
4 | "CFBundleName" = "$(PRODUCT_NAME)";
5 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/ja.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "シンセ1";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) カメラの使用。";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/pt-BR.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/AudioKitSynthOne/pt-BR.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/zh-Hans.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) 相机使用";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/zh-Hant.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) 相机使用";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Base.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hans.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hans.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hant.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/AudioKit/AudioKitSynthOne/HEAD/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hant.xcloc/Source Contents/AudioKitSynthOne/Base.lproj/Localizable.strings
--------------------------------------------------------------------------------
/AudioKitSynthOne/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/pt-BR.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) uso da câmera.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/tr.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth Bir";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) kamera kullanımı.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/zh-Hant-TW.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/fr.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) utilisation de la caméra.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-zh-CN.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link整合改进。
2 | 通过链接连接时,应用程序将在更改预设时保持相同的速度。
3 | 使用Ableton Link是一种很好的方法,可以使Synth One的节奏与其他应用程序保持同步
4 | +其他小修正
5 | +你真棒!
6 |
7 | 我们都在自愿为您构建这个应用程序。 没有人得到任何报酬。
8 | 请传播这个词。 知道这个应用程序的音乐家越多,我们就能吸引越多的音乐家!
9 | 请发送错误报告:hello@audiokitpro.com
10 |
11 | 谢谢 :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-zh-TW.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link整合改進。
2 | 通過鏈接連接時,應用程序將在更改預設時保持相同的速度。
3 | 使用Ableton Link是一種很好的方法,可以使Synth One的節奏與其他應用程序保持同步
4 | +其他小修正
5 | +你真棒!
6 |
7 | 我們都在自願為您構建這個應用程序。 沒有人得到任何報酬。
8 | 請傳播這個詞。 知道這個應用程序的音樂家越多,我們就能吸引越多的音樂家!
9 | 請發送錯誤報告:hello@audiokitpro.com
10 |
11 | 謝謝 :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/AudioKitSynthOne.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/Sequencer/S1ArpModes.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // S1ArpModes.hpp
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 3/06/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | enum struct ArpeggiatorMode : int {
10 | Up = 0,
11 | UpDown = 1,
12 | Down = 2
13 | };
14 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/fr.xcloc/contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "developmentRegion" : "en",
3 | "targetLocale" : "fr",
4 | "toolInfo" : {
5 | "toolBuildNumber" : "10A255",
6 | "toolID" : "com.apple.dt.xcode",
7 | "toolName" : "Xcode",
8 | "toolVersion" : "10.0"
9 | },
10 | "version" : "1.0"
11 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/ja.xcloc/contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "developmentRegion" : "en",
3 | "targetLocale" : "ja",
4 | "toolInfo" : {
5 | "toolBuildNumber" : "10A255",
6 | "toolID" : "com.apple.dt.xcode",
7 | "toolName" : "Xcode",
8 | "toolVersion" : "10.0"
9 | },
10 | "version" : "1.0"
11 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/tr.xcloc/contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "developmentRegion" : "en",
3 | "targetLocale" : "tr",
4 | "toolInfo" : {
5 | "toolBuildNumber" : "10A255",
6 | "toolID" : "com.apple.dt.xcode",
7 | "toolName" : "Xcode",
8 | "toolVersion" : "10.0"
9 | },
10 | "version" : "1.0"
11 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/Sequencer/S1SeqNoteNumber.hpp:
--------------------------------------------------------------------------------
1 | //
2 | // S1SeqNoteNumber.hpp
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 3/06/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | struct SeqNoteNumber {
10 | int noteNumber;
11 | int onOff;
12 | int velocity;
13 | };
14 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/pt-BR.xcloc/contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "developmentRegion" : "en",
3 | "targetLocale" : "pt-BR",
4 | "toolInfo" : {
5 | "toolBuildNumber" : "10A255",
6 | "toolID" : "com.apple.dt.xcode",
7 | "toolName" : "Xcode",
8 | "toolVersion" : "10.0"
9 | },
10 | "version" : "1.0"
11 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hans.xcloc/contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "developmentRegion" : "en",
3 | "targetLocale" : "zh-Hans",
4 | "toolInfo" : {
5 | "toolBuildNumber" : "10A255",
6 | "toolID" : "com.apple.dt.xcode",
7 | "toolName" : "Xcode",
8 | "toolVersion" : "10.0"
9 | },
10 | "version" : "1.0"
11 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hant.xcloc/contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "developmentRegion" : "en",
3 | "targetLocale" : "zh-Hant",
4 | "toolInfo" : {
5 | "toolBuildNumber" : "10A255",
6 | "toolID" : "com.apple.dt.xcode",
7 | "toolName" : "Xcode",
8 | "toolVersion" : "10.0"
9 | },
10 | "version" : "1.0"
11 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/fr.xcloc/Source Contents/AudioKitSynthOne/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/ja.xcloc/Source Contents/AudioKitSynthOne/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/tr.xcloc/Source Contents/AudioKitSynthOne/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Controls/README.md:
--------------------------------------------------------------------------------
1 | # Reusable Controls
2 |
3 | These controls are used throughout the synth, so they are fairly generic.
4 |
5 | * The "StyleKit" files were auto-generated by [PaintCode](http://paintcodeapp.com/).
6 | * The PaintCode source files can be found at the [AudioKit Graphics repository on Github](https://github.com/audiokit/AudioKitGraphics).
7 |
8 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/pt-BR.xcloc/Source Contents/AudioKitSynthOne/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hans.xcloc/Source Contents/AudioKitSynthOne/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/AudioKitSynthOne/zh-Hant.xcloc/Source Contents/AudioKitSynthOne/en.lproj/InfoPlist.strings:
--------------------------------------------------------------------------------
1 | /* Bundle display name */
2 | "CFBundleDisplayName" = "Synth One";
3 |
4 | /* Bundle name */
5 | "CFBundleName" = "$(PRODUCT_NAME)";
6 |
7 | /* Privacy - Camera Usage Description */
8 | "NSCameraUsageDescription" = "$(PRODUCT_NAME) camera use.";
9 |
10 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-ko-KR.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link 통합 향상.
2 | 링크를 통해 연결된 경우 프리셋을 변경하는 동안 앱은 동일한 템포를 유지합니다.
3 | Synth One의 템포를 다른 앱과 동기화하여 유지하는 좋은 방법은 Ableton Link를 사용하는 것입니다.
4 | + 기타 작은 수정
5 | + 당신은 모두 최고입니다!
6 |
7 | 우리는 모두 당신을 위해이 응용 프로그램을 구축하는 시간을 자원하고 있습니다. 아무도 돈을받지 못합니다.
8 | 그 말을 퍼뜨려주세요. 이 앱에 대해 알고있는 음악가가 많을수록 더 많은 음악가가 다가 갈 수 있습니다!
9 | 버그 보고서를 보내주십시오 : hello@audiokitpro.com
10 |
11 | 고맙습니다 :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/S1TuningTable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // S1TuningTable.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Marcus W. Hobbs on 5/14/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | public protocol S1TuningTable {
10 |
11 | func setTuningTable(_ frequency: Double, index: Int)
12 |
13 | func getTuningTableFrequency(_ index: Int) -> Double
14 |
15 | func setTuningTableNPO(_ npo: Int)
16 | }
17 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/d1.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "d1.jpg",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/back.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "close@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/dice.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "dice@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/info.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "info@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/spark.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "spark.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-ja-JP.txt:
--------------------------------------------------------------------------------
1 | +「 Ableton Link」の統合が改善されました。
2 | リンクを介して接続されている場合、プリセットを変更している間、アプリは同じテンポを維持します。
3 | Ableton Linkを使うと、Synth Oneのテンポを他のアプリと同期させることができます
4 | + その他の細かい修正
5 | + 貴方方は皆んな、素晴らしいです!
6 |
7 | 私たちは皆、このアプリを貴方に届けるためにボランティアとして時間をかけて貢献しています。 支払われる人、誰もいません。
8 | アプリの周知にご協力お願いします。 このアプリを知っている音楽家が多くなればなるほど、より多くの方々にこのアプリをとどけることが出来ます。
9 | もしバグ・レポートがあれば hello@audiokitpro.com に送信してください。
10 |
11 | ありがとうございました (⌒-⌒)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/D1_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "D1_icon.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_copy.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "ak_copy@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_edit.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "ak_edit@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_fav.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "ak_fav@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_adsr.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "au_adsr@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_arp.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "au_arp@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_efx.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "au_efx@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_main.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "au_main@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/circuit.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "circuit@2x.jpg",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/s1_logo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "s1_logo.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak1-logo.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "ak1-logo2@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_share.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "ak_share@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/app-store.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "app-store.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_tuning.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "au_tuning@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/bluetooth.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "bluetooth@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/fmplayer.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "fmplayer@2x.jpg",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Arp.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_Arp.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_FX.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_FX.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_adsr.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_adsr.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/smile-icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "smile-icon.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/Wilsonic_icon.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "Wilsonic_icon.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/ak_favfilled.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "ak_favfilled@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_presets.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "au_presets@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/au_touchpad.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "au_touchpad@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/background.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "background@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/headerback.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "headerback@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Preset.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_Preset.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Tuning.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_Tuning.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/keyboard_top.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "keyboard_top@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/left-arrow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "left-arrow@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/right-arrow.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "right-arrow@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_Generator.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_Generator.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_TouchPad.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_TouchPad.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/touchViewBack.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "touchViewBack@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhone_TouchPad_bg.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhone_TouchPad_bg.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/iPhoneheaderback.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "filename" : "iPhoneheaderback@2x.png",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "version" : 1,
19 | "author" : "xcode"
20 | }
21 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/saveDisk.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "saveDisk.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "saveDisk@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/UI Components/String+CapitalizeFirst.swift:
--------------------------------------------------------------------------------
1 | //
2 | // String+CapitalizeFirst.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Matthew Fecher on 10/6/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | extension String {
10 | func capitalizingFirstLetter() -> String {
11 | return prefix(1).capitalized + dropFirst()
12 | }
13 |
14 | mutating func capitalizeFirstLetter() {
15 | self = self.capitalizingFirstLetter()
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/zh-Hant-TW.lproj/Tunings.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "UILabel"; text = "Master Tuning"; ObjectID = "AqK-kK-Iaf"; */
3 | "AqK-kK-Iaf.text" = "Master Tuning";
4 |
5 | /* Class = "UILabel"; text = "TUNING"; ObjectID = "Cm9-Xa-WqW"; */
6 | "Cm9-Xa-WqW.text" = "TUNING";
7 |
8 | /* Class = "UIButton"; normalTitle = "Reset"; ObjectID = "JBk-V2-c4I"; */
9 | "JBk-V2-c4I.normalTitle" = "Reset";
10 |
11 | /* Class = "UILabel"; text = "PITCH"; ObjectID = "ipV-Bb-omK"; */
12 | "ipV-Bb-omK.text" = "PITCH";
13 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/MIDI/MIDIInput.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MIDIInput.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 11/12/17.
6 | // Copyright © 2017 AudioKit Pro. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | class MIDIInput {
12 | var name = "Session 1"
13 | var isOpen = true
14 |
15 | init() {
16 | }
17 |
18 | convenience init(name: String, isOpen: Bool) {
19 | self.init()
20 |
21 | self.name = name
22 | self.isOpen = isOpen
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/UI Components/PresetUIButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PresetUIButon.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 11/24/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class PresetUIButton: SynthButton {
12 |
13 | // MARK: - Touches
14 |
15 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
16 | for _ in touches {
17 | self.setNeedsDisplay()
18 | self.setValueCallback(value)
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-ar-SA.txt:
--------------------------------------------------------------------------------
1 | + التكامل ابليتون الارتباط تحسين.
2 | سيبقى التطبيق نفس الإيقاع أثناء تغيير الإعدادات المسبقة عند الاتصال عبر رابط.
3 | يعد استخدام Ableton Link طريقة رائعة للمحافظة على تزامن Synth One مع التطبيقات الأخرى
4 | + Misc إصلاحات صغيرة
5 | + أنت رائع!
6 |
7 | نحن جميعًا نتطوع بوقتنا لبناء هذا التطبيق من أجلك. لا أحد يحصل على أي شيء.
8 | يرجى نشر الكلمة. لمزيد من الموسيقيين الذين يعرفون عن هذا التطبيق ، والمزيد من الموسيقيين يمكننا الوصول إلى كل شيء!
9 | الرجاء إرسال تقارير الأخطاء: hello@audiokitpro.com
10 |
11 | شكرا :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-en.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link integration Improved.
2 | App will stay the same tempo while changing presets when connected via Link.
3 | Using Ableton Link is a great way to keep the tempo of Synth One in sync with other apps
4 | + Misc small fixes
5 | + You are all awesome!
6 |
7 | We are all volunteering our time to build this app for you. No one gets paid anything.
8 | Please spread the word. The more musicians that know about this app, the more musicians we can all reach!
9 | Please send bug reports: hello@audiokitpro.com
10 |
11 | Thank you :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-lol-US.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link integration Improved.
2 | App will stay the same tempo while changing presets when connected via Link.
3 | Using Ableton Link is a great way to keep the tempo of Synth One in sync with other apps
4 | + Misc small fixes
5 | + You are all awesome!
6 |
7 | We are all volunteering our time to build this app for you. No one gets paid anything.
8 | Please spread the word. The more musicians that know about this app, the more musicians we can all reach!
9 | Please send bug reports: hello@audiokitpro.com
10 |
11 | Thank you :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-sr-CS.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link integration Improved.
2 | App will stay the same tempo while changing presets when connected via Link.
3 | Using Ableton Link is a great way to keep the tempo of Synth One in sync with other apps
4 | + Misc small fixes
5 | + You are all awesome!
6 |
7 | We are all volunteering our time to build this app for you. No one gets paid anything.
8 | Please spread the word. The more musicians that know about this app, the more musicians we can all reach!
9 | Please send bug reports: hello@audiokitpro.com
10 |
11 | Thank you :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/S1Control.swift:
--------------------------------------------------------------------------------
1 | //
2 | // S1Control.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Marcus W. Hobbs on 3/29/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | protocol S1Control: class {
10 |
11 | var value: Double { get set }
12 |
13 | var setValueCallback: (Double) -> Void { get set }
14 |
15 | var resetToDefaultCallback: () -> Void { get set }
16 | }
17 |
18 | typealias S1ControlCallback = (S1Parameter, S1Control?) -> ((_: Double) -> Void)
19 |
20 | typealias S1ControlDefaultCallback = (S1Parameter, S1Control?) -> (() -> Void)
21 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-hi-IN.txt:
--------------------------------------------------------------------------------
1 | + एबलेटन लिंक एकीकरण में सुधार हुआ।
2 | लिंक के माध्यम से कनेक्ट होने पर प्रीसेट को बदलने के दौरान ऐप एक ही टेम्पो रहेगा।
3 | एबलेटन लिंक का उपयोग करना सिन्थ वन की गति को अन्य ऐप्स के साथ सिंक में रखने का एक शानदार तरीका है
4 | + छोटे छोटे फिक्स
5 | + आप सभी भयानक हैं!
6 |
7 | हम सभी आपके लिए इस ऐप को बनाने के लिए अपना समय स्वयंसेवा कर रहे हैं। कोई भी भुगतान नहीं करता है।
8 | कृपया शब्द फैलाएं। इस ऐप के बारे में जितने अधिक संगीतकार जानते हैं, उतने संगीतकार हम सभी तक पहुंच सकते हैं!
9 | कृपया बग रिपोर्ट भेजें: hello@audiokitpro.com
10 |
11 | धन्यवाद :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-cs-CZ.txt:
--------------------------------------------------------------------------------
1 | + Integrace Ableton Link zlepšena.
2 | Aplikace zachová stejné tempo při změně předvoleb při připojení přes Link.
3 | Použití programu Ableton Link je skvělý způsob, jak udržet tempo Synth One synchronizované s ostatními aplikacemi
4 | + Různé malé opravy
5 | + Vy jste všichni skvělí!
6 |
7 | Jsme všichni dobrovolně naši čas stavět tuto aplikaci pro vás. Nikdo nic nezaplatí.
8 | Rozložte prosím slovo. Čím více hudebníků ví o této aplikaci, tím více muzikantů můžeme všichni dosáhnout!
9 | Pošlete prosím chybové hlášení: hello@audiokitpro.com
10 |
11 | Děkuji :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-it-IT.txt:
--------------------------------------------------------------------------------
1 | + Integrazione di Ableton Link Migliorata.
2 | L'app manterrà lo stesso tempo durante la modifica dei preset quando è connesso tramite Link.
3 | Usare Ableton Link è un ottimo modo per mantenere il tempo di Synth One in sincrono con altre app
4 | + Varie piccole correzioni
5 | + Sei tutto fantastico!
6 |
7 | Stiamo tutti offrendo il nostro tempo per creare questa app per te. Nessuno viene pagato nulla.
8 | Per favore spargere la voce. Più musicisti conoscono questa app, più musicisti possiamo raggiungere!
9 | Si prega di inviare segnalazioni di bug: ciao@audiokitpro.com
10 |
11 | Grazie :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-tr-TR.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link entegrasyonu Geliştirildi.
2 | Uygulama, Bağlantı üzerinden bağlandığında önayarları değiştirirken aynı tempoda kalır.
3 | Ableton Link'i kullanmak, Synth One'ın temposunu diğer uygulamalarla senkronize etmenin harika bir yoludur.
4 | + Çeşitli küçük düzeltmeler
5 | + Hepiniz harikasınız!
6 |
7 | Hepimiz bu uygulamayı sizin için oluşturmak için zamanımıza gönüllü oluyoruz. Kimse bir şey ödemez.
8 | Lütfen kelimeyi yay. Bu uygulamayı bilen daha çok müzisyen, daha çok müzisyen hepimiz ulaşabilir!
9 | Lütfen hata raporlarını gönderin: hello@audiokitpro.com
10 |
11 | Teşekkürler :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/en.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "UILabel"; text = "FILTER RESONANCE"; ObjectID = "4Xu-ES-Jtr"; */
3 | "4Xu-ES-Jtr.text" = "FILTER RESONANCE";
4 |
5 | /* Class = "UIButton"; normalTitle = "Snap"; ObjectID = "SVY-05-J4t"; */
6 | "SVY-05-J4t.normalTitle" = "Snap";
7 |
8 | /* Class = "UILabel"; text = "LFO 1 AMPLITUDE"; ObjectID = "cxh-gH-dY1"; */
9 | "cxh-gH-dY1.text" = "LFO 1 AMPLITUDE";
10 |
11 | /* Class = "UILabel"; text = "FILTER CUTOFF"; ObjectID = "gH1-9e-vhR"; */
12 | "gH1-9e-vhR.text" = "FILTER CUTOFF";
13 |
14 | /* Class = "UILabel"; text = "LFO 1 RATE"; ObjectID = "qXN-sO-KUB"; */
15 | "qXN-sO-KUB.text" = "LFO 1 RATE";
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/MIDI/ChannelStepper.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ChannelStepper.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 12/26/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @IBDesignable
12 | class ChannelStepper: Stepper {
13 |
14 | // MARK: - Draw
15 |
16 | override func draw(_ rect: CGRect) {
17 | let displayText = (value == 0) ? "∞" : String(Int(value))
18 | accessibilityValue = (value == 0 ? NSLocalizedString("Omni", comment: "Omni") : String(Int(value)))
19 | StepperStyleKit.drawStepper(valuePressed: valuePressed, text: displayText)
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/zh-Hant-TW.lproj/TouchPad.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "UILabel"; text = "FILTER RESONANCE"; ObjectID = "4Xu-ES-Jtr"; */
3 | "4Xu-ES-Jtr.text" = "FILTER RESONANCE";
4 |
5 | /* Class = "UIButton"; normalTitle = "Snap"; ObjectID = "SVY-05-J4t"; */
6 | "SVY-05-J4t.normalTitle" = "Snap";
7 |
8 | /* Class = "UILabel"; text = "LFO 1 AMPLITUDE"; ObjectID = "cxh-gH-dY1"; */
9 | "cxh-gH-dY1.text" = "LFO 1 AMPLITUDE";
10 |
11 | /* Class = "UILabel"; text = "FILTER CUTOFF"; ObjectID = "gH1-9e-vhR"; */
12 | "gH1-9e-vhR.text" = "FILTER CUTOFF";
13 |
14 | /* Class = "UILabel"; text = "LFO 1 RATE"; ObjectID = "qXN-sO-KUB"; */
15 | "qXN-sO-KUB.text" = "LFO 1 RATE";
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-nl-NL.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link-integratie verbeterd.
2 | App blijft hetzelfde tempo tijdens het wijzigen van presets wanneer verbonden via Link.
3 | Ableton Link gebruiken is een geweldige manier om het tempo van Synth One synchroon te houden met andere apps
4 | + Diverse kleine fixes
5 | + Jullie zijn allemaal geweldig!
6 |
7 | We zijn allemaal vrijwillig onze tijd aan het bouwen van deze app voor jou. Niemand krijgt iets betaald.
8 | Vertel het alsjeblieft. Hoe meer muzikanten er over deze app weten, hoe meer muzikanten we allemaal kunnen bereiken!
9 | Stuur alsjeblieft foutenrapporten: hello@audiokitpro.com
10 |
11 | Dank je :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-ru-RU.txt:
--------------------------------------------------------------------------------
1 | + Улучшена интеграция Ableton Link.
2 | Приложение сохранит тот же темп при изменении пресетов когда подключено через Link.
3 | Использование Ableton Link - отличный способ сохранить темп Synth One при синхронизации с другими приложениями
4 | + Разные небольшие исправления
5 | + Вы все классные!
6 |
7 | Мы все добровольно проводим время за созданием этого приложения для вас. Никому ничего за это не платят.
8 | Пожалуйста, распространите эту информацию. Чем больше музыкантов знают об этом приложении, тем больше музыкантов мы можем охватить!
9 | Присылайте отчёты об ошибках: hello@audiokitpro.com
10 |
11 | Спасибо :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-de-DE.txt:
--------------------------------------------------------------------------------
1 | + Ableton Link-Integration verbessert.
2 | Die App behält das gleiche Tempo beim Ändern der Voreinstellungen bei, wenn sie über Link verbunden wird.
3 | Die Verwendung von Ableton Link ist eine gute Möglichkeit, das Tempo von Synth One mit anderen Apps synchron zu halten
4 | + Verschiedene kleine Korrekturen
5 | + Sie sind alle großartig!
6 |
7 | Wir sind alle ehrenamtlich tätig, um diese App für Sie zu bauen. Niemand wird bezahlt.
8 | Bitte verbreite das Wort. Je mehr Musiker über diese App Bescheid wissen, desto mehr Musiker können wir erreichen!
9 | Bitte senden Sie Fehlerberichte: hello@audiokitpro.com
10 |
11 | Vielen Dank :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-pt-BR.txt:
--------------------------------------------------------------------------------
1 | + Integração com o Ableton Link Melhorado.
2 | O aplicativo permanecerá no mesmo ritmo ao alterar os presets quando conectado através do Link.
3 | Usar o Ableton Link é uma ótima maneira de manter o ritmo de um Synth em sincronia com outros aplicativos
4 | + Outras pequenas correções
5 | + Vocês são todos incríveis!
6 |
7 | Estamos todos oferecendo nosso tempo para construir este aplicativo para você. Ninguém recebe nada.
8 | Por favor, divulgue esse aplicativo. Quanto mais músicos souberem sobre este aplicativo, mais músicos todos nós poderemos alcançar!
9 | Por favor, envie seus bugs para: hello@audiokitpro.com
10 |
11 | Obrigado :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-fr-FR.txt:
--------------------------------------------------------------------------------
1 | + Intégration avec Ableton Link améliorée.
2 | L'application restera au même tempo lors de changement des préréglages lorsque vous êtes connecté via Link.
3 | Utiliser Ableton Link est un excellent moyen de synchroniser le tempo de Synth One avec d'autres applications
4 | + Diverses petites corrections
5 | + Vous êtes tous super !
6 |
7 | Nous sommes tous des volontaires vous proposant cette application. Personne n'est payé.
8 | S'il vous plaît, passez le mot. Plus il y a de musiciens au courant de cette application, plus nous pourrons en atteindre !
9 | Veuillez nous envoyer des rapports de bogue: hello@audiokitpro.com
10 |
11 | Merci :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-ro-RO.txt:
--------------------------------------------------------------------------------
1 | Integrarea Ableton Link îmbunătățită.
2 | Aplicația va rămâne același tempo în timp ce își schimbă presetările când este conectat prin Link.
3 | Utilizarea Ableton Link este o modalitate excelentă de a păstra tempo-ul Synth One în sincronizare cu alte aplicații
4 | + Diferite remedii mici
5 | + Sunteți minunați!
6 |
7 | Suntem toți voluntari timpul nostru pentru a construi această aplicație pentru tine. Nimeni nu primește nimic.
8 | Răspândiți cuvântul. Cu cât mai mulți muzicieni știu despre această aplicație, cu atât mai mulți muzicieni putem ajunge la toate!
9 | Trimiteți rapoartele de eroare: hello@audiokitpro.com
10 |
11 | Mulțumesc :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/changelog-es-ES.txt:
--------------------------------------------------------------------------------
1 | + Integración de Ableton Link Mejorada.
2 | La aplicación mantendrá el mismo tempo mientras cambia los preajustes cuando se conecta a través de un enlace.
3 | Usar Ableton Link es una excelente manera de mantener sincronizado el tempo de Synth One con otras aplicaciones
4 | + Correcciones pequeñas misceláneas
5 | + ¡Eres increíble!
6 |
7 | Todos estamos ofreciendo voluntariamente nuestro tiempo para construir esta aplicación para usted. A nadie se le paga nada.
8 | Pasa la voz. ¡Cuantos más músicos conozcan sobre esta aplicación, más músicos podremos alcanzar!
9 | Por favor envíe informes de errores: hello@audiokitpro.com
10 |
11 | Gracias :)
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Controls/Buttons/iPhoneToggleButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // iPhoneToggleButton.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Matthew Fecher on 1/8/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | @IBDesignable
10 | class iPhoneToggleButton: ToggleButton {
11 |
12 | @IBInspectable open var buttonText: String = "Hello"
13 |
14 | @IBInspectable open var textSize: Int = 14
15 |
16 | public override func draw(_ rect: CGRect) {
17 | TopUIButtonStyleKit.drawUIButton(frame: CGRect(x:0,y:0, width: self.bounds.width, height: self.bounds.height), resizing: .aspectFit, isOn: isOn, text: buttonText, textSize: CGFloat(textSize))
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/Bank.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Bank.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 1/27/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | class Bank: Codable {
12 | var name = "BankA"
13 | var position = 0
14 |
15 | init() {}
16 |
17 | convenience init(name: String, position: Int) {
18 | self.init()
19 | self.name = name
20 | self.position = position
21 | }
22 |
23 | // Init from Dictionary/JSON
24 | init(dictionary: [String: Any]) {
25 | name = dictionary["name"] as? String ?? name
26 | position = dictionary["position"] as? Int ?? position
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/AudioKitSynthOne-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | //
2 | // AudioKitSynthOne-Bridging-Header.h
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 1/24/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | #pragma once
10 |
11 | #import "S1AudioUnit.h"
12 | #import "S1Parameter.h"
13 | #import "AKSynthOneRate.h"
14 | #if !TARGET_OS_MACCATALYST
15 | #import "Audiobus.h"
16 | #endif
17 | // Set the ABLETON_ENABLED user setting to 1 (at the project level) to enable Ableton Link support
18 | // Note: you will need the files from their SDK!
19 | #if ABLETON_ENABLED
20 | # include "ABLLink.h"
21 | # include "ABLLinkUtils.h"
22 | # include "ABLLinkSettingsViewController.h"
23 | #endif
24 |
25 |
--------------------------------------------------------------------------------
/crowdin.yml:
--------------------------------------------------------------------------------
1 | files:
2 | - source: /AudioKitSynthOne/Translations/en.xliff
3 | translation: /AudioKitSynthOne/Translations/%locale%.xliff
4 | - source: /AudioKitSynthOne/Translations/Metadata/changelog-en.txt
5 | translation: /AudioKitSynthOne/Translations/Metadata/changelog-%locale%.txt
6 | - source: /AudioKitSynthOne/Translations/Metadata/description-en.txt
7 | translation: /AudioKitSynthOne/Translations/Metadata/description-%locale%.txt
8 | - source: /AudioKitSynthOne/Translations/Metadata/keywords-en.txt
9 | translation: /AudioKitSynthOne/Translations/Metadata/keywords-%locale%.txt
10 | - source: /AudioKitSynthOne/Translations/Metadata/subtitle-en.txt
11 | translation: /AudioKitSynthOne/Translations/Metadata/subtitle-%locale%.txt
12 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Controls/Buttons/CallbackButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // CallbackButton.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 9/12/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | class CallbackButton: UIButton {
10 |
11 | var callback: (Double) -> Void = { _ in }
12 |
13 | var valuePressed = 0.0
14 |
15 | // Init / Lifecycle
16 | required public init?(coder: NSCoder) {
17 | super.init(coder: coder)
18 | }
19 |
20 | // MARK: - Touches
21 |
22 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
23 | for _ in touches {
24 | valuePressed = 1
25 | callback(valuePressed)
26 | }
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Keyboard/UI Components/KeyboardShowButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KeyboardShowButton.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 3/18/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class KeyboardShowButton: SynthButton {
12 |
13 | override var isSelected: Bool {
14 |
15 | didSet {
16 | self.backgroundColor = isOn ? #colorLiteral(red: 0.2, green: 0.2, blue: 0.2, alpha: 1) : #colorLiteral(red: 0.3058823529, green: 0.3058823529, blue: 0.3254901961, alpha: 1)
17 | self.accessibilityLabel = isOn ? NSLocalizedString("Hide Keyboard", comment: "Hide Keyboard") : NSLocalizedString("Show Keyboard", comment: "Show Keyboard")
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/MIDI/MIDILearnable.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MIDILearnable.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 10/21/17.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import AudioKit
10 |
11 |
12 | protocol MIDILearnable: AnyObject {
13 |
14 | var midiByteRange:ClosedRange { get set }
15 |
16 | var hotspotView: UIView { get set }
17 |
18 | var midiCC: MIDIByte { get set }
19 |
20 | var midiLearnMode: Bool { get set }
21 |
22 | var isMIDILearnActive: Bool { get set }
23 |
24 | func addHotspot()
25 |
26 | func hideHotspot()
27 |
28 | func showHotspot()
29 |
30 | func setControlValueFrom(midiValue: MIDIByte)
31 |
32 | func updateMIDILearnLabel()
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/BandlimitedWavetables/bandlimitedWaveforms.json:
--------------------------------------------------------------------------------
1 | ["triangle_0000","square_0000","pwm_0000","sawtooth_0000","triangle_2696","square_2696","pwm_2696","sawtooth_2696","triangle_1348","square_1348","pwm_1348","sawtooth_1348","triangle_0674","square_0674","pwm_0674","sawtooth_0674","triangle_0337","square_0337","pwm_0337","sawtooth_0337","triangle_0168","square_0168","pwm_0168","sawtooth_0168","triangle_0084","square_0084","pwm_0084","sawtooth_0084","triangle_0042","square_0042","pwm_0042","sawtooth_0042","triangle_0021","square_0021","pwm_0021","sawtooth_0021","triangle_0010","square_0010","pwm_0010","sawtooth_0010","triangle_0005","square_0005","pwm_0005","sawtooth_0005","triangle_0002","square_0002","pwm_0002","sawtooth_0002","triangle_0001","square_0001","pwm_0001","sawtooth_0001"]
2 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Generators/UI Components/FlatToggleButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // FlatToggleButton.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 8/28/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @IBDesignable
12 | class FlatToggleButton: ToggleButton {
13 |
14 | override func draw(_ rect: CGRect) {
15 | FlatToggleButtonStyleKit.drawRoundButton(frame: CGRect(x: 0,
16 | y: 0,
17 | width: self.bounds.width,
18 | height: self.bounds.height),
19 | isToggled: isOn)
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/TouchPad/UI Components/TouchPoint.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TouchPoint.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 8/29/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @IBDesignable
12 | class TouchPoint: UIView {
13 |
14 | var x = 0.0
15 | var y = 0.0
16 | var width = 63.0
17 |
18 | override func draw(_ rect: CGRect) {
19 | TouchPointStyleKit.drawTouchPoint(frame: CGRect(x: x, y: y, width: width, height: width) )
20 | }
21 |
22 | }
23 |
24 | class ModWheelTouchPoint: UIView {
25 |
26 | var x = 0.0
27 | var y = 0.0
28 | var width = 61.0
29 |
30 | override func draw(_ rect: CGRect) {
31 | ModWheelStyleKit.drawTouchPoint(frame: CGRect(x: x, y: y, width: width, height: width) )
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/zh-Hans.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
2 | "B52-X8-pfB.normalTitle" = "谢谢,我稍后再做";
3 |
4 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
5 | "FJY-lQ-hbA.text" = "设置:第1步";
6 |
7 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
8 | "sAM-3i-F3Z.placeholder" = "you@email.com";
9 |
10 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
11 | "wbX-qe-bHr.normalTitle" = "获取预设!";
12 |
13 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
14 | "yhG-s7-4JE.text" = "欢迎!在下面输入您的电子邮件地址,即可获得80多个免费预设(总共有300多个预设)。然后点击“获取预设!”";
15 |
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/zh-Hant.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
2 | "B52-X8-pfB.normalTitle" = "谢谢,我稍后再做";
3 |
4 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
5 | "FJY-lQ-hbA.text" = "设置:第1步";
6 |
7 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
8 | "sAM-3i-F3Z.placeholder" = "you@email.com";
9 |
10 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
11 | "wbX-qe-bHr.normalTitle" = "获取预设!";
12 |
13 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
14 | "yhG-s7-4JE.text" = "欢迎!在下面输入您的电子邮件地址,即可获得80多个免费预设(总共有300多个预设)。然后点击“获取预设!”";
15 |
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/PresetsViewController/Presets+SearchDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Presets+SearchDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Matthew Fecher on 7/8/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension PresetsViewController: SearchControllerDelegate {
12 |
13 | func didSelectPreset(_ newPreset: Preset) {
14 | deselectCurrentRow()
15 |
16 | // Select Crrent Bank
17 | guard let currentBank = conductor.banks.first(where: { $0.name == newPreset.bank }) else { return }
18 | selectCategory(PresetCategory.bankStartingIndex + currentBank.position )
19 | categoryIndex = PresetCategory.bankStartingIndex + currentBank.position
20 |
21 | currentPreset = newPreset
22 | selectCurrentPreset()
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/ja.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
2 | "B52-X8-pfB.normalTitle" = "いいえ、後でやる";
3 |
4 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
5 | "FJY-lQ-hbA.text" = "セットアップ:ステップ1/1";
6 |
7 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
8 | "sAM-3i-F3Z.placeholder" = "you@email.com";
9 |
10 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
11 | "wbX-qe-bHr.normalTitle" = "プリセットを取得!";
12 |
13 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
14 | "yhG-s7-4JE.text" = "ようこそ!メールアドレスを記入するだけで、80以上の無料プリセット効果(つまりは300以上の全てのプリセット)を受信出来ます。次に、メールアドレスを記入し、「プリセットを取得!」を押してください。";
15 |
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/TuningsPanelController/TuningsPanel+TuneUpDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TuningsPanel+TuneUpDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Marcus W. Hobbs on 2/3/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | extension TuningsPanelController: TuneUpDelegate {
12 |
13 | var tuneUpBackButtonDefaultText: String {
14 |
15 | return tuningModel.tuneUpBackButtonDefaultText
16 | }
17 |
18 | func setTuneUpBackButtonLabel(text: String) {
19 |
20 | let isHidden = (text == tuningModel.tuneUpBackButtonDefaultText)
21 | tuneUpBackButtonButton.isHidden = isHidden
22 | tuneUpBackLabel.isHidden = isHidden
23 | tuneUpBackButtonButton.setTitle(text, for: .normal)
24 | }
25 |
26 | func setTuneUpBackButton(enabled: Bool) {
27 |
28 | tuneUpBackButtonButton.isEnabled = enabled
29 | }
30 |
31 | }
32 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/en.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
3 | "B52-X8-pfB.normalTitle" = "Thanks, I'll do it later";
4 |
5 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
6 | "FJY-lQ-hbA.text" = "SETUP: Step 1 of 1";
7 |
8 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
9 | "sAM-3i-F3Z.placeholder" = "you@email.com";
10 |
11 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
12 | "wbX-qe-bHr.normalTitle" = "Get Presets!";
13 |
14 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
15 | "yhG-s7-4JE.text" = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\"";
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/zh-Hant-TW.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
3 | "B52-X8-pfB.normalTitle" = "Thanks, I'll do it later";
4 |
5 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
6 | "FJY-lQ-hbA.text" = "SETUP: Step 1 of 1";
7 |
8 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
9 | "sAM-3i-F3Z.placeholder" = "you@email.com";
10 |
11 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
12 | "wbX-qe-bHr.normalTitle" = "Get Presets!";
13 |
14 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
15 | "yhG-s7-4JE.text" = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\"";
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/Rate/AKSynthOneRate.h:
--------------------------------------------------------------------------------
1 | //
2 | // AKSynthOneRate.h
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 4/19/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | #ifndef AKSynthOneRate_h
10 | #define AKSynthOneRate_h
11 |
12 | #import "AudioKit/AKInterop.h"
13 |
14 | #pragma once
15 |
16 | typedef AK_ENUM(AKSynthOneRate) {
17 | eightBars = 0,
18 | sixBars = 1,
19 | fourBars = 2,
20 | threeBars = 3,
21 | twoBars = 4,
22 | bar = 5,
23 | barTriplet = 6,
24 | half = 7,
25 | halfTriplet = 8,
26 | quarter = 9,
27 | quarterTriplet = 10,
28 | eighth = 11,
29 | eighthTriplet = 12,
30 | sixteenth = 13,
31 | sixteenthTriplet = 14,
32 | thirtySecondth = 15,
33 | thirtySecondthTriplet = 16,
34 | sixtyFourth = 17,
35 | sixtyFourthTriplet = 18,
36 | AKSynthOneRateCount = 19
37 | } AKSynthOneRate;
38 |
39 | #endif /* AKSynthOneRate_h */
40 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: objective-c
2 | osx_image: xcode11.2
3 | if: NOT (branch =~ /^l10n_/)
4 | env:
5 | - LANG=en_US.UTF-8 LC_CTYPE=en_US.UTF-8
6 | before_install:
7 | - pod update
8 | - pod install
9 | - gem install xcpretty -N
10 | script:
11 | - ./travis.sh
12 | notifications:
13 | slack:
14 | secure: ji32EX5pNg/utHuroYnXrzoDmwWjlTCauiVnJ4vjKkqDLzAx40jXlMKQY/OlFOrN30sXNmDntYHiWKQjDARzhqX9xItg6OQL4ulXdgt9h8HLZfe6Nv6fVRf3jLpRmETnMDqJfSlU25f/ObP0JNRmP5jkBJNpzLDOgSVT4c3c9vc0vCu1IS4nXU5G79fRAY1KsHYu9fv1zNMh66UARYy2iEf5gx0Dn0AAD/gdzHnSzq12kloXJupBktRN3QIAZFp5o581/XmwGFN2uHUjnmJMlIRYg5xFfOvqsYiq5cjwxT3WTlGhNMm087qcrfMMy5feMSAAsRpVOzLNV4U0oxMv8zz1RH83FHwS9n9oAjlBIHfhNsNW1lPmt+VSlKanL25fqVa5xhLfoWu9X+0s1I7G0FjiN4UwKPQBRoVH1Q9JvkPDIpkTxAfJL3gKBJ0V6SoOuQwzh7h+MRmulXdDO5hwXTZ1v4jc9+ENQxtzxuLfB2jXph10ayXs2QOs0raAHYcSCsJ94kuYVl0mwN1FC28nIAZ8FKIpHwzFQO4a/Crt//j/MR6c3AGcOSTNPhS0OWfMWlmAjhouYz+iERBYstNthzaP8nTOX8X2xieuUptyMVrnW+JFyOiBRjwlXh8akheYEnsOX69RaneYlbATeSKhRp3eOVN0odIY7X/eTtzRHH4=
15 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/tr.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
2 | "B52-X8-pfB.normalTitle" = "Teşekkürler, daha sonra";
3 |
4 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
5 | "FJY-lQ-hbA.text" = "KURULUM: Adım 1 / 1";
6 |
7 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
8 | "sAM-3i-F3Z.placeholder" = "siz@email.com";
9 |
10 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
11 | "wbX-qe-bHr.normalTitle" = "Önayarları edinin!";
12 |
13 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
14 | "yhG-s7-4JE.text" = "Hoşgeldiniz! Email adresinizi girerek 80'den fazla önayar (toplamda 300'den fazla) kazanın. Sonra "Önayarları edinin!" butonuna basınız.";
15 |
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/pt-BR.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
2 | "B52-X8-pfB.normalTitle" = "Obrigado, farei mais tarde";
3 |
4 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
5 | "FJY-lQ-hbA.text" = "CONFIGURAÇÃO: Etapa 1 de 1";
6 |
7 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
8 | "sAM-3i-F3Z.placeholder" = "voce@email.com";
9 |
10 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
11 | "wbX-qe-bHr.normalTitle" = "Obter Presets!";
12 |
13 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
14 | "yhG-s7-4JE.text" = "Bem vindo(a)! Digite seu endereço de e-mail abaixo para receber mais de 80 presets gratuitos (todas as 300 presets). Em seguida, pressione "Obter Presets!"";
15 |
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/Manager+MailingListDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Manager+MailingListDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | // Mailing List PopOver Delegate
10 |
11 | extension Manager: MailingListDelegate {
12 |
13 | func didSignMailingList(email: String) {
14 |
15 | signedMailingList = true
16 |
17 | DispatchQueue.main.async {
18 | if let headerVC = self.children.first as? HeaderViewController {
19 | headerVC.updateMailingListButton(self.signedMailingList)
20 | }
21 | }
22 | userSignedMailingList(email: email)
23 | }
24 |
25 | func userSignedMailingList(email: String) {
26 | appSettings.signedMailingList = true
27 | appSettings.userEmail = email
28 | saveAppSettingValues()
29 |
30 | presetsViewController.addBonusPresets()
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/de.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
2 | "B52-X8-pfB.normalTitle" = "Danke, ich werde es später tun";
3 |
4 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
5 | "FJY-lQ-hbA.text" = "SETUP: Schritt 1 von 1";
6 |
7 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
8 | "sAM-3i-F3Z.placeholder" = "you@email.com";
9 |
10 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
11 | "wbX-qe-bHr.normalTitle" = "Holen Sie sich Presets!";
12 |
13 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
14 | "yhG-s7-4JE.text" = "Herzlich willkommen! Geben Sie Ihre E-Mail-Adresse ein, um mehr als 80 kostenlose Presets (alle über 300 Presets) zu erhalten. Dann drücke "Get Presets!"";
15 |
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/AudioKitSynthOne.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | aps-environment
6 | development
7 | com.apple.developer.icloud-container-identifiers
8 |
9 | iCloud.com.audiokitpro.AudioKitSynthOne
10 | iCloud.com.audiokitsynthone
11 |
12 | com.apple.developer.icloud-services
13 |
14 | CloudDocuments
15 |
16 | com.apple.developer.ubiquity-container-identifiers
17 |
18 | iCloud.com.audiokitpro.AudioKitSynthOne
19 | iCloud.com.audiokitsynthone
20 |
21 | com.apple.developer.ubiquity-kvstore-identifier
22 | $(TeamIdentifierPrefix)$(CFBundleIdentifier)
23 | inter-app-audio
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/Mailing List/fr.lproj/MailingList.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UIButton"; normalTitle = "Thanks, I'll do it later"; ObjectID = "B52-X8-pfB"; */
2 | "B52-X8-pfB.normalTitle" = "Merci, je le ferai plus tard";
3 |
4 | /* Class = "UILabel"; text = "SETUP: Step 1 of 1"; ObjectID = "FJY-lQ-hbA"; */
5 | "FJY-lQ-hbA.text" = "CONFIGURATION : Étape 1 de 1";
6 |
7 | /* Class = "UITextField"; placeholder = "you@email.com"; ObjectID = "sAM-3i-F3Z"; */
8 | "sAM-3i-F3Z.placeholder" = "votre@email.com";
9 |
10 | /* Class = "UIButton"; normalTitle = "Get Presets!"; ObjectID = "wbX-qe-bHr"; */
11 | "wbX-qe-bHr.normalTitle" = "Obtenez des préréglages !";
12 |
13 | /* Class = "UITextView"; text = "Welcome! Enter your Email Address below to receive 80+ Free presets (all 300+ presets). Then press \"Get Presets!\""; ObjectID = "yhG-s7-4JE"; */
14 | "yhG-s7-4JE.text" = "Bienvenue ! Entrez votre adresse électronique ci-dessous pour recevoir plus de 80 préréglages gratuits (tous les 300 préréglages). Puis appuyez sur "Obtenez des préréglages !"";
15 |
16 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/TuningsPanelController/TuningsViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TuningsViewController.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Marcus W. Hobbs on 5/30/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | class TuningsViewController: UIViewController {
10 |
11 | private var tableView: UITableView?
12 |
13 | public init(tableView: UITableView?) {
14 |
15 | self.tableView = tableView
16 | super.init(nibName: nil, bundle: nil)
17 | }
18 |
19 | public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
20 |
21 | super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
22 | }
23 |
24 | public required init?(coder aDecoder: NSCoder) {
25 |
26 | super.init(coder: aDecoder)
27 | }
28 |
29 | override func loadView() {
30 |
31 | if let tv = self.tableView {
32 | self.view = tv
33 | } else {
34 | self.view = UIView()
35 | }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Header/zh-Hant-TW.lproj/Header.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "UIButton"; normalTitle = "Dev"; ObjectID = "4uE-Js-e46"; */
3 | "4uE-Js-e46.normalTitle" = "Dev";
4 |
5 | /* Class = "UILabel"; text = "Loading..."; ObjectID = "Ggs-qy-ExU"; */
6 | "Ggs-qy-ExU.text" = "Loading...";
7 |
8 | /* Class = "UIButton"; normalTitle = "Save"; ObjectID = "NL0-Jf-tHi"; Note = "Save Preset Button (keep short)"; */
9 | "NL0-Jf-tHi.normalTitle" = "Save";
10 |
11 | /* Class = "UIButton"; normalTitle = "Web"; ObjectID = "PpV-eX-q12"; Note = "Website button (keep short)"; */
12 | "PpV-eX-q12.normalTitle" = "Web";
13 |
14 | /* Class = "UIButton"; normalTitle = "Panic"; ObjectID = "l9q-RV-KkX"; Note = "MIDI Panic / All notes off (Keep short)"; */
15 | "l9q-RV-KkX.normalTitle" = "Panic";
16 |
17 | /* Class = "UIButton"; normalTitle = "Apps"; ObjectID = "qXZ-Yq-KK5"; Note = "Apps button, keep short"; */
18 | "qXZ-Yq-KK5.normalTitle" = "Apps";
19 |
20 | /* Class = "UIButton"; normalTitle = "About"; ObjectID = "vEb-n7-p0M"; Note = "About button (keep short)"; */
21 | "vEb-n7-p0M.normalTitle" = "About";
22 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Keyboard/UI Components/KeyboardView+Drawing.swift:
--------------------------------------------------------------------------------
1 | //
2 | // KeyboardView+Drawing.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Marcus W. Hobbs on 7/17/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | extension KeyboardView {
10 |
11 | // MARK: - Storyboard Rendering
12 |
13 | override open func prepareForInterfaceBuilder() {
14 |
15 | super.prepareForInterfaceBuilder()
16 | updateOneOctaveSize()
17 | contentMode = .redraw
18 | clipsToBounds = true
19 | }
20 |
21 | /// Keyboard view size
22 | override open var intrinsicContentSize: CGSize {
23 |
24 | return CGSize(width: 1_024, height: 84)
25 | }
26 |
27 | /// Require constraints
28 | open class override var requiresConstraintBasedLayout: Bool {
29 |
30 | return true
31 | }
32 |
33 | // MARK: - Draw Keyboard
34 |
35 | override open func draw(_ rect: CGRect) {
36 |
37 | if tuningMode {
38 | drawMicrotonal(rect)
39 | } else {
40 | draw12ET(rect)
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Manager/UpdatableViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // UpdatableViewController.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 7/25/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | public class UpdatableViewController: UIViewController {
12 |
13 | let conductor = Conductor.sharedInstance
14 |
15 | public override func viewDidLoad() {
16 | super.viewDidLoad()
17 | conductor.viewControllers.insert(self)
18 | }
19 |
20 | public override func viewDidAppear(_ animated: Bool) {
21 | super.viewDidAppear(animated)
22 | conductor.updateAllUI()
23 | }
24 |
25 | // subclasses should update UI elements that do not conform to S1Control protocol, should not call super
26 | func updateUI(_ parameter: S1Parameter, control inputControl: S1Control?, value: Double) {}
27 | }
28 |
29 | protocol AffectedByLink {
30 | func setupLinkStuff()
31 | }
32 |
33 | extension UpdatableViewController: AffectedByLink {
34 | @objc func setupLinkStuff() {
35 | // Do nothing by default
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Aurelius Prochazka
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Assets/Assets.xcassets/rack-left.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "scale" : "1x"
6 | },
7 | {
8 | "idiom" : "universal",
9 | "scale" : "1x",
10 | "appearances" : [
11 | {
12 | "appearance" : "luminosity",
13 | "value" : "dark"
14 | }
15 | ]
16 | },
17 | {
18 | "idiom" : "universal",
19 | "filename" : "rack-left.png",
20 | "scale" : "2x"
21 | },
22 | {
23 | "idiom" : "universal",
24 | "filename" : "rack-leftbw.png",
25 | "appearances" : [
26 | {
27 | "appearance" : "luminosity",
28 | "value" : "dark"
29 | }
30 | ],
31 | "scale" : "2x"
32 | },
33 | {
34 | "idiom" : "universal",
35 | "scale" : "3x"
36 | },
37 | {
38 | "idiom" : "universal",
39 | "scale" : "3x",
40 | "appearances" : [
41 | {
42 | "appearance" : "luminosity",
43 | "value" : "dark"
44 | }
45 | ]
46 | }
47 | ],
48 | "info" : {
49 | "version" : 1,
50 | "author" : "xcode"
51 | }
52 | }
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/Kernel/S1DSPKernel+MIDI.mm:
--------------------------------------------------------------------------------
1 | //
2 | // S1DSPKernel+MIDI.mm
3 | // AudioKitSynthOne
4 | //
5 | // Created by Aurelius Prochazka on 6/4/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | #import "S1DSPKernel.hpp"
10 |
11 | // MIDI
12 | void S1DSPKernel::handleMIDIEvent(AUMIDIEvent const& midiEvent) {
13 | if (midiEvent.length != 3) return;
14 | uint8_t status = midiEvent.data[0] & 0xF0;
15 | switch (status) {
16 | case 0x80 : {
17 | // note off
18 | uint8_t note = midiEvent.data[1];
19 | if (note > 127) break;
20 | stopNote(note);
21 | break;
22 | }
23 | case 0x90 : {
24 | // note on
25 | uint8_t note = midiEvent.data[1];
26 | uint8_t veloc = midiEvent.data[2];
27 | if (note > 127 || veloc > 127) break;
28 | startNote(note, veloc);
29 | break;
30 | }
31 | case 0xB0 : {
32 | uint8_t num = midiEvent.data[1];
33 | if (num == 123) {
34 | stopAllNotes();
35 | }
36 | break;
37 | }
38 | }
39 | }
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Keyboard/Manager+ModWheelDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Manager+ModWheelDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | // Mod Wheel Settings Pop Over Delegate
10 |
11 | extension Manager: ModWheelDelegate {
12 |
13 | func didSelectRouting(newDestination: Int) {
14 |
15 | activePreset.modWheelRouting = Double(newDestination)
16 | guard let s = conductor.synth else {
17 | AKLog("Mod Wheel routing state is invalid because synth is not instantiated")
18 | return
19 | }
20 |
21 | switch activePreset.modWheelRouting {
22 | case 0:
23 | // Cutoff
24 | conductor.updateSingleUI(.cutoff, control: nil, value: s.getSynthParameter(.cutoff))
25 | case 1:
26 | // LFO 1 Rate
27 | modWheelPad.setVerticalValue01(Double(s.getDependentParameter(.lfo1Rate)))
28 | case 2:
29 | // LFO 2 Rate
30 | modWheelPad.setVerticalValue01(Double(s.getDependentParameter(.lfo2Rate)))
31 | default:
32 | break
33 | }
34 |
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/Podfile:
--------------------------------------------------------------------------------
1 | platform :ios, '10.0'
2 | use_frameworks!
3 | inhibit_all_warnings!
4 |
5 | # This enables the cutting-edge staging builds of AudioKit, comment this line to stick to stable releases
6 | source 'https://github.com/AudioKit/Specs.git'
7 | source 'https://github.com/CocoaPods/Specs.git'
8 |
9 | def available_pods
10 | pod 'AppCenter'
11 | pod 'AudioKit', '= 4.9.2'
12 | pod 'Disk', '~> 0.3.2'
13 | pod 'Audiobus'
14 | pod 'OneSignal', '>= 2.6.2', '< 3.0'
15 | end
16 |
17 | target 'AudioKitSynthOne' do
18 | available_pods
19 | end
20 |
21 | target 'OneSignalNotificationServiceExtension' do
22 | pod 'OneSignal', '>= 2.6.2', '< 3.0'
23 | pod 'AudioKit', '= 4.9.2'
24 | end
25 |
26 |
27 | # Override Swift version for out of date pods
28 | post_install do |installer|
29 | installer.pods_project.targets.each do |target|
30 | target.build_configurations.each do |config|
31 | config.build_settings['CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED'] = 'YES'
32 | end
33 | if ['Disk'].include? target.name
34 | target.build_configurations.each do |config|
35 | config.build_settings['SWIFT_VERSION'] = '4.0'
36 | end
37 | end
38 | end
39 | end
40 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleDisplayName
8 | OneSignalNotificationServiceExtension
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | XPC!
19 | CFBundleShortVersionString
20 | $(MARKETING_VERSION)
21 | CFBundleVersion
22 | $(CURRENT_PROJECT_VERSION)
23 | NSExtension
24 |
25 | NSExtensionPointIdentifier
26 | com.apple.usernotifications.service
27 | NSExtensionPrincipalClass
28 | $(PRODUCT_MODULE_NAME).NotificationService
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/Model/TuningBank.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TuningBank.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Marcus W. Hobbs on 12/15/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | final class TuningBank: Codable, CustomStringConvertible {
12 |
13 | // MARK: - conforming to Codable: don't change these property names
14 | var name = "Bundled"
15 | var isEditable = false
16 | var tunings = [Tuning]()
17 | var selectedTuningIndex = Int(0)
18 | var order = 0
19 |
20 | // MARK: - Codable: property names must match dictionary keys
21 | init() { }
22 |
23 | init(dictionary: [String: Any]) {
24 | name = dictionary["name"] as? String ?? "Bundled"
25 | isEditable = dictionary["isEditable"] as? Bool ?? false
26 | tunings = dictionary["tunings"] as? [Tuning] ?? [Tuning]()
27 | selectedTuningIndex = dictionary["selectedTuningIndex"] as? Int ?? 0
28 | order = dictionary["order"] as? Int ?? 0
29 | }
30 |
31 | var description: String {
32 | return "name:\(name), isEditable:\(isEditable), order:\(order), selectedTuningIndex:\(selectedTuningIndex), tunings "
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - AppCenter (2.5.0):
3 | - AppCenter/Analytics (= 2.5.0)
4 | - AppCenter/Crashes (= 2.5.0)
5 | - AppCenter/Analytics (2.5.0):
6 | - AppCenter/Core
7 | - AppCenter/Core (2.5.0)
8 | - AppCenter/Crashes (2.5.0):
9 | - AppCenter/Core
10 | - Audiobus (3.0.9.1)
11 | - AudioKit (4.9.2):
12 | - AudioKit/Core (= 4.9.2)
13 | - AudioKit/UI (= 4.9.2)
14 | - AudioKit/Core (4.9.2)
15 | - AudioKit/UI (4.9.2):
16 | - AudioKit/Core
17 | - Disk (0.3.3)
18 | - OneSignal (2.11.2)
19 |
20 | DEPENDENCIES:
21 | - AppCenter
22 | - Audiobus
23 | - AudioKit (= 4.9.2)
24 | - Disk (~> 0.3.2)
25 | - OneSignal (< 3.0, >= 2.6.2)
26 |
27 | SPEC REPOS:
28 | https://github.com/CocoaPods/Specs.git:
29 | - AppCenter
30 | - Audiobus
31 | - AudioKit
32 | - Disk
33 | - OneSignal
34 |
35 | SPEC CHECKSUMS:
36 | AppCenter: 637f180deefc61e8ab3f94223869ee50f61dabea
37 | Audiobus: 83bb33ea2ed734779165a01c70091caf8143cf25
38 | AudioKit: ee388f0c9ad4e90b6106c14caaf809cd7ca220da
39 | Disk: d1f55cd61f6ca20f368232d0c6e37e3c3dfcb63e
40 | OneSignal: 4e3e68bb6c29975286a2fa910cb49132bc6e20bb
41 |
42 | PODFILE CHECKSUM: 08600154cc26890e1979d0062b76978ed623cd8c
43 |
44 | COCOAPODS: 1.8.4
45 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Private.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Private.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Stéphane Peter on 7/12/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | //
12 | // IMPORTANT: Fill in your own private API keys here as needed.
13 | //
14 |
15 | class Private {
16 |
17 | //swiftlint:disable line_length
18 |
19 | // API key for AudioBus (register your app at https://audiob.us)
20 | public static let AudioBusAPIKey = "H4sIAAAAAAAAA5WOMQvCMBBG/0q5uZqGbt0ElyLi4GhE0vbEoE3LJRGD9L8bY0FRFFxf3r18V8BLr8hDkaVQOd2ccKdli1DAzDWqWyi79toeVhohBUennakPGN8j5xM+zabyrlbOFIIJFry+I2ug2FzB+v7uSkcq8LdyEhPJo92gqUn1VnX6m2JcNfaM1zyAVmq3l7V1hBSPFjbQM5KJFT6kzwVVS78WJMtyXv4743PC6/fZsE1BNYEKNkIj2BG9YHnOMxhuunRJk30BAAA=:riXV4TCTiN05ttQVhyEeV7TikQkgWOimy2290ROYffihTll4Ryq9CHL4P+uznYIXUcqF2IWjsIUb5KAncOKE76t6ecLPohjWhxlyOHFBgZZP/AzEBNeELy/08TVVQeea"
21 |
22 | // API key for MailChimp
23 | public static let MailChimpAPIKey = "***REMOVED***"
24 | public static let MailChimpID = "***REMOVED***"
25 |
26 | // App ID for OneSignal
27 | public static let OneSignalAppID = "***REMOVED***"
28 |
29 | // API Key for AppCenter
30 | public static let AppCenterAPIKey = "***REMOVED***"
31 | }
32 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Audiobus/Manager+Audiobus.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Manager+Audiobus.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | // AudioBus MIDI Input & Preset Loading
10 | #if !targetEnvironment(macCatalyst)
11 | extension Manager: ABAudiobusControllerStateIODelegate {
12 |
13 | // MARK: - AudioBus Preset Delegate
14 |
15 | public func audiobusStateDictionaryForCurrentState() -> [AnyHashable: Any]! {
16 | return [ "preset": activePreset.position]
17 | }
18 |
19 | public func loadState(fromAudiobusStateDictionary dictionary: [AnyHashable: Any]!,
20 | responseMessage outResponseMessage: AutoreleasingUnsafeMutablePointer!) {
21 |
22 | if let abDictionary = dictionary as? [String: Any] {
23 | activePreset.position = abDictionary["preset"] as? Int ?? 0
24 | DispatchQueue.main.async {
25 | self.presetsViewController.didSelectPreset(index: self.activePreset.position)
26 | }
27 | }
28 | }
29 | }
30 | #endif
31 |
32 | // Stubs for MacOS Catalyst target
33 |
34 | #if targetEnvironment(macCatalyst)
35 | extension Manager: ABAudiobusControllerStateIODelegate { }
36 | #endif
37 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Envelopes/zh-Hant-TW.lproj/Envelopes.strings:
--------------------------------------------------------------------------------
1 |
2 | /* Class = "UILabel"; text = "Attack"; ObjectID = "1iB-yg-YcK"; */
3 | "1iB-yg-YcK.text" = "Attack";
4 |
5 | /* Class = "UILabel"; text = "Attack"; ObjectID = "5Ie-DT-yvl"; */
6 | "5Ie-DT-yvl.text" = "Attack";
7 |
8 | /* Class = "UILabel"; text = "Sustain"; ObjectID = "9Ne-rF-Cd5"; */
9 | "9Ne-rF-Cd5.text" = "Sustain";
10 |
11 | /* Class = "UILabel"; text = "Sustain"; ObjectID = "NPM-Ga-czS"; */
12 | "NPM-Ga-czS.text" = "Sustain";
13 |
14 | /* Class = "UILabel"; text = "Decay"; ObjectID = "QwS-x7-Tqo"; */
15 | "QwS-x7-Tqo.text" = "Decay";
16 |
17 | /* Class = "UILabel"; text = "Release"; ObjectID = "TwY-KM-KRE"; */
18 | "TwY-KM-KRE.text" = "Release";
19 |
20 | /* Class = "UILabel"; text = "Amplitude Envelope"; ObjectID = "jpD-fo-QNO"; */
21 | "jpD-fo-QNO.text" = "Amplitude Envelope";
22 |
23 | /* Class = "UILabel"; text = "Decay"; ObjectID = "tyt-Qx-CmV"; */
24 | "tyt-Qx-CmV.text" = "Decay";
25 |
26 | /* Class = "UILabel"; text = "Filter Envelope"; ObjectID = "u2H-uf-fdc"; */
27 | "u2H-uf-fdc.text" = "Filter Envelope";
28 |
29 | /* Class = "UILabel"; text = "Release"; ObjectID = "yjc-MW-jcO"; */
30 | "yjc-MW-jcO.text" = "Release";
31 |
32 | /* Class = "UILabel"; text = "Env Amt"; ObjectID = "yuw-Hz-d5o"; */
33 | "yuw-Hz-d5o.text" = "Env Amt";
34 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/PresetsViewController/Presets+PresetPopOverDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Presets+PresetPopOverDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | // PopUpPresetEdit
10 |
11 | extension PresetsViewController: PresetPopOverDelegate {
12 | func didFinishEditing(name: String, category: Int, newBank: String) {
13 |
14 | // Check for bank change
15 | if currentPreset.bank != newBank {
16 |
17 | // Check if preset name exists
18 | if name == currentPreset.name {
19 | // remove preset from its previous bank if preset not renamed
20 | let oldBank = currentPreset.bank
21 | currentPreset.bank = newBank
22 | saveAllPresetsIn(oldBank)
23 |
24 | guard let currentBank = conductor.banks.first(where: { $0.name == newBank }) else { return }
25 | selectCategory(PresetCategory.bankStartingIndex + currentBank.position )
26 | categoryIndex = PresetCategory.bankStartingIndex + currentBank.position
27 | }
28 | }
29 |
30 | // save preset
31 | presetsDelegate?.saveEditedPreset(name: name, category: category, bank: newBank)
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/Kernel/S1DSPKernel+reset.mm:
--------------------------------------------------------------------------------
1 | //
2 | // S1DSPKernel+reset.mm
3 | // AudioKitSynthOne
4 | //
5 | // Created by Aurelius Prochazka on 6/4/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | #import "S1DSPKernel.hpp"
10 | #import "S1NoteState.hpp"
11 | #import "AEArray.h"
12 |
13 | ///panic...hard-resets DSP. artifacts.
14 | void S1DSPKernel::resetDSP() {
15 | [heldNoteNumbers removeAllObjects];
16 | [heldNoteNumbersAE updateWithContentsOfArray:heldNoteNumbers];
17 | sequencer.reset(true);
18 |
19 | _setSynthParameter(arpIsOn, 0.f);
20 | monoNote->clear();
21 | for(int i =0; i < S1_MAX_POLYPHONY; i++)
22 | (*noteStates)[i].clear();
23 |
24 | sp_vdelay_reset(sp, delayL);
25 | sp_vdelay_reset(sp, delayR);
26 | sp_vdelay_reset(sp, delayRR);
27 | sp_vdelay_reset(sp, delayFillIn);
28 | }
29 |
30 | void S1DSPKernel::reset() {
31 | for (int i = 0; iclear();
34 | resetted = true;
35 | sp_vdelay_reset(sp, delayL);
36 | sp_vdelay_reset(sp, delayR);
37 | sp_vdelay_reset(sp, delayRR);
38 | sp_vdelay_reset(sp, delayFillIn);
39 | }
40 |
41 | void S1DSPKernel::resetSequencer() {
42 |
43 | // don't remove held notes
44 |
45 | sequencer.reset(false);
46 | beatCounterDidChange();
47 | }
48 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/Kernel/S1DSPKernel+destroy.mm:
--------------------------------------------------------------------------------
1 | //
2 | // S1DSPKernel+destroy.cpp
3 | // AudioKitSynthOne
4 | //
5 | // Created by Aurelius Prochazka on 6/4/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | #import "S1DSPKernel.hpp"
10 |
11 | void S1DSPKernel::destroy() {
12 | for(int i = 0; i< S1Parameter::S1ParameterCount; i++) {
13 | sp_port_destroy(&s1p[i].portamento);
14 | }
15 | sp_port_destroy(&monoFrequencyPort);
16 | sp_port_destroy(&lfo1Port);
17 | sp_port_destroy(&lfo2Port);
18 | sp_ftbl_destroy(&sine);
19 | sp_phasor_destroy(&lfo1Phasor);
20 | sp_phasor_destroy(&lfo2Phasor);
21 | sp_phaser_destroy(&phaser0);
22 | sp_osc_destroy(&panOscillator);
23 | sp_pan2_destroy(&pan);
24 | sp_moogladder_destroy(&loPassInputDelayL);
25 | sp_moogladder_destroy(&loPassInputDelayR);
26 | sp_vdelay_destroy(&delayL);
27 | sp_vdelay_destroy(&delayR);
28 | sp_vdelay_destroy(&delayRR);
29 | sp_vdelay_destroy(&delayFillIn);
30 | sp_delay_destroy(&widenDelay);
31 | sp_crossfade_destroy(&delayCrossfadeL);
32 | sp_crossfade_destroy(&delayCrossfadeR);
33 | sp_revsc_destroy(&reverbCostello);
34 | sp_buthp_destroy(&butterworthHipassL);
35 | sp_buthp_destroy(&butterworthHipassR);
36 | sp_crossfade_destroy(&revCrossfadeL);
37 | sp_crossfade_destroy(&revCrossfadeR);
38 | mIsInitialized = false;
39 | }
40 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Controls/Buttons/ToggleSwitch.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ToggleSwitch.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 8/2/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | @IBDesignable
10 | class ToggleSwitch: UIView, S1Control {
11 |
12 | // MARK: - Properties
13 |
14 | var isOn = false {
15 | didSet {
16 | setNeedsDisplay()
17 | accessibilityValue = isOn ? NSLocalizedString("On", comment: "On") : NSLocalizedString("Off", comment: "Off")
18 | }
19 | }
20 |
21 | // MARK: - S1Control
22 |
23 | var value: Double = 0 {
24 | didSet {
25 | isOn = (value == 1)
26 | }
27 | }
28 |
29 | var setValueCallback: (Double) -> Void = { _ in }
30 |
31 | var resetToDefaultCallback: () -> Void = { }
32 |
33 | // MARK: - Draw
34 |
35 | override func draw(_ rect: CGRect) {
36 | ToggleSwitchStyleKit.drawToggleSwitch(isToggled: value == 0 ? false : true )
37 | }
38 |
39 | // MARK: - Touches
40 |
41 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
42 |
43 | for _ in touches {
44 | value = 1 - value
45 | setValueCallback(value)
46 | }
47 | }
48 |
49 | override func touchesEnded(_ touches: Set, with event: UIEvent?) {
50 |
51 | for _ in touches {
52 | setValueCallback(value)
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/AppDelegate+PlatformServices.swift:
--------------------------------------------------------------------------------
1 | //
2 | // AppDelegate+PlatformServices.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Matthias Frick on 03/11/2019.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | import Foundation
10 | #if !targetEnvironment(macCatalyst)
11 | import OneSignal
12 | import AppCenter
13 | import AppCenterAnalytics
14 | import AppCenterCrashes
15 |
16 | extension AppDelegate {
17 | public func initializePlatformServices() {
18 | let onesignalInitSettings = [kOSSettingsKeyAutoPrompt: false]
19 |
20 | // Set your OneSignal App ID in the Private.swift file.
21 | OneSignal.initWithLaunchOptions(launchOptions,
22 | appId: Private.OneSignalAppID,
23 | handleNotificationAction: nil,
24 | settings: onesignalInitSettings)
25 |
26 | OneSignal.inFocusDisplayType = OSNotificationDisplayType.notification
27 |
28 | // Setup AppCenter for Crash Log Collection
29 | if (Private.AppCenterAPIKey != "***REMOVED***") {
30 | MSAppCenter.start(Private.AppCenterAPIKey, withServices:[
31 | MSAnalytics.self,
32 | MSCrashes.self
33 | ])
34 | }
35 | }
36 | }
37 | #endif
38 |
39 | #if targetEnvironment(macCatalyst)
40 | extension AppDelegate {
41 | public func initializePlatformServices() {}
42 | }
43 | #endif
44 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/README.md:
--------------------------------------------------------------------------------
1 | # AudioKit Synth One Code
2 |
3 | 
4 |
5 | This is the top folder and contains:
6 |
7 | * Assets - Xcode project image files
8 | * Audiobus - Interapp Audio
9 | * Controls - reuseable UI elements that appear in several places around the app
10 | * Developer - Advanced "Developer" view that can be unlocked in the app
11 | * DSP - Most of the audio generation and processing content
12 | * Effects - Effects Panel
13 | * Generators - Main Panel that controls most of the source sound creation and mixing
14 | * Header - The top of the synth UI containing current preset title, and showing updated parameters
15 | * Internet - Views that access the internet for app store links, about us, and more information
16 | * Keyboard - The keyboard and its settings
17 | * MIDI - Interdevice communication via the common format
18 | * Manager - Core view controller that controls the UI and various other functions
19 | (note that extensions to Manager exist throughout the app in conceptually-related folders)
20 | * Navigation - Panel display management
21 | * Presets - storing and recalling awesome sounds!
22 | * Sequencer - automation of note playback via sequencing or arpeggiation
23 | * Settings - General app configuration
24 | * Touch Pad - Panel for simultaneously controlling multiple parameters with a pair of 2-D touch locations
25 | * Tunings - Panel for microtonal tuning options
26 | * Helpers.swift - auxiliary functions
27 | * Main.storyboard - Where we currently manage most of the UI
28 |
29 |
30 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/Conductor+Platform.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Conductor+Platform.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Matthias Frick on 03/11/2019.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | #if !targetEnvironment(macCatalyst)
12 | extension Conductor {
13 | @objc func checkIAAConnectionsEnterBackground() {
14 |
15 | if let audiobusClient = Audiobus.client {
16 |
17 | if !audiobusClient.isConnected && !audiobusClient.isConnectedToInput && !backgroundAudio {
18 | deactivateSession()
19 | AKLog("disconnected without timer")
20 | } else {
21 | iaaTimer.invalidate()
22 | iaaTimer = Timer.scheduledTimer(timeInterval: 20 * 60,
23 | target: self,
24 | selector: #selector(self.checkIAAConnectionsEnterBackground),
25 | userInfo: nil, repeats: true)
26 | }
27 | }
28 |
29 | }
30 |
31 | func checkIAAConnectionsEnterForeground() {
32 | iaaTimer.invalidate()
33 | startEngine()
34 | }
35 | }
36 | #endif
37 |
38 | // MacOS Cataylyst stubs
39 | // We don't support IAA there so adding NOOPs
40 | #if targetEnvironment(macCatalyst)
41 | extension Conductor {
42 | @objc func checkIAAConnectionsEnterBackground() { }
43 |
44 | func checkIAAConnectionsEnterForeground() { }
45 | }
46 | #endif
47 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/PresetsViewController/Presets+UITextViewDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Presets+UITextViewDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Aurelius Prochazka on 6/8/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | extension PresetsViewController: UITextViewDelegate {
10 |
11 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
12 | super.touchesBegan(touches, with: event)
13 | view.endEditing(true)
14 | }
15 |
16 | @IBAction func doneEditingPressed(_ sender: UIButton) {
17 | view.endEditing(true)
18 | presetsDelegate?.saveEditedPreset(name: currentPreset.name,
19 | category: currentPreset.category,
20 | bank: currentPreset.bank)
21 | }
22 |
23 | func textViewDidEndEditing(_ textView: UITextView) {
24 | doneEditingButton.isHidden = true
25 | if conductor.device == .pad {
26 | searchtoolButton.isHidden = false
27 | }
28 | if conductor.device == .phone {
29 | newButton.isHidden = false
30 | importBankButton.isHidden = false
31 | }
32 | }
33 |
34 | func textViewDidBeginEditing(_ textView: UITextView) {
35 | doneEditingButton.isHidden = false
36 | if conductor.device == .pad {
37 | searchtoolButton.isHidden = true
38 | }
39 | if conductor.device == .phone {
40 | newButton.isHidden = true
41 | importBankButton.isHidden = true
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/InfoViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InfoViewController.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 10/31/17.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 | import StoreKit
11 |
12 | class InfoViewController: UIViewController {
13 |
14 | @IBOutlet weak var moreView: UIView!
15 |
16 | override func viewDidLoad() {
17 | super.viewDidLoad()
18 |
19 | moreView.layer.borderColor = #colorLiteral(red: 0.06666666667, green: 0.06666666667, blue: 0.06666666667, alpha: 1)
20 | moreView.layer.borderWidth = 2
21 | moreView.layer.cornerRadius = 6
22 |
23 | }
24 |
25 | @IBAction func closePressed(_ sender: UIButton) {
26 | dismiss(animated: true, completion: nil)
27 | }
28 |
29 | @IBAction func videoPressed(_ sender: UIButton) {
30 | /*
31 | if let url = URL(string: "http://audiokitpro.com/audiokit/") {
32 | UIApplication.shared.open(url)
33 | }
34 | */
35 | }
36 |
37 | @IBAction func reviewAppPressed(_ sender: UIButton) {
38 | requestReview()
39 | }
40 |
41 | @IBAction func fmWebSite(_ sender: Any) {
42 | if let url = URL(string: "http://audiokitpro.com/fmplayer/") {
43 | UIApplication.shared.open(url)
44 | }
45 | }
46 |
47 | @IBAction func getFMPlayerPressed(_ sender: Any) {
48 |
49 | if let url = URL(string: "https://itunes.apple.com/app/apple-store/id1307785646?mt=8") {
50 | UIApplication.shared.open(url)
51 | }
52 | }
53 |
54 | }
55 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/UI Components/TuningCell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TuningCell.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 6/3/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class TuningCell: UITableViewCell {
12 |
13 | // MARK: - Lifecycle
14 |
15 | override func setSelected(_ selected: Bool, animated: Bool) {
16 | super.setSelected(selected, animated: animated)
17 |
18 | // Configure the view for the selected state
19 | if selected {
20 | textLabel?.textColor = UIColor.white
21 | contentView.backgroundColor = #colorLiteral(red: 0.2431372549, green: 0.2431372549, blue: 0.262745098, alpha: 0.7547865317)
22 |
23 | } else {
24 | textLabel?.textColor = #colorLiteral(red: 0.7333333333, green: 0.7333333333, blue: 0.7333333333, alpha: 1)
25 | contentView.backgroundColor = UIColor.clear
26 | }
27 | }
28 |
29 | // MARK: - Configure Cell
30 |
31 | func configureCell(fontSize: Int = 12) {
32 |
33 | textLabel?.adjustsFontSizeToFitWidth = true
34 | textLabel?.font = UIFont(name: "Avenir Next", size: CGFloat(fontSize))!
35 | textLabel?.isOpaque = false
36 | textLabel?.backgroundColor = UIColor.clear
37 | isOpaque = false
38 | backgroundColor = UIColor.clear
39 | selectionStyle = .none
40 | contentView.isOpaque = false
41 | contentView.backgroundColor = UIColor.clear
42 | separatorInset = UIEdgeInsets.zero
43 | layoutMargins = UIEdgeInsets.zero
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/TuneUpPopUp.swift:
--------------------------------------------------------------------------------
1 | //
2 | // TuneUpPopUp.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by Matthew Fecher on 2/14/19.
6 | // Copyright © 2019 AudioKit. All rights reserved.
7 | //
8 |
9 |
10 | import UIKit
11 |
12 | protocol TuneUpPopUpDelegate: AnyObject {
13 | func wilsonicPressed()
14 | func d1Pressed()
15 | }
16 |
17 | class TuneUpPopUp: UIViewController {
18 |
19 | @IBOutlet weak var moreView: UIView!
20 | @IBOutlet weak var d1Button: UIButton!
21 | @IBOutlet weak var wilsonicButton: UIButton!
22 |
23 | var delegate: TuneUpPopUpDelegate?
24 |
25 | override func viewDidLoad() {
26 | super.viewDidLoad()
27 |
28 | moreView.layer.borderColor = #colorLiteral(red: 0.06666666667, green: 0.06666666667, blue: 0.06666666667, alpha: 1)
29 | moreView.layer.borderWidth = 2
30 | moreView.layer.cornerRadius = 6
31 |
32 | }
33 |
34 | @IBAction func closePressed(_ sender: UIButton) {
35 | dismiss(animated: true, completion: nil)
36 | }
37 |
38 | @IBAction func wilsonicPressed(_ sender: Any) {
39 | dismiss(animated: true) {
40 | self.delegate?.wilsonicPressed()
41 | }
42 | }
43 |
44 | @IBAction func d1Pressed(_ sender: Any) {
45 | dismiss(animated: true) {
46 | self.delegate?.d1Pressed()
47 | }
48 | }
49 |
50 | @IBAction func LearnMoreTapped(_ sender: UIButton) {
51 | if let url = URL(string: "https://audiokitpro.com/tuneup/") {
52 | UIApplication.shared.open(url)
53 | }
54 | }
55 |
56 |
57 | }
58 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/PresetsViewController/Presets+UITableViewDataSource.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Presets+UITableViewDataSource.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | extension PresetsViewController: UITableViewDataSource {
10 |
11 | func numberOfSections(in tableView: UITableView) -> Int {
12 | return 1
13 | }
14 |
15 | @objc(tableView:heightForRowAtIndexPath:) func tableView(_ tableView: UITableView,
16 | heightForRowAt indexPath: IndexPath) -> CGFloat {
17 | return 44
18 | }
19 |
20 | func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
21 | if sortedPresets.isEmpty {
22 | return 0
23 | } else {
24 | return sortedPresets.count
25 | }
26 | }
27 |
28 | func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
29 |
30 | // Get current preset
31 |
32 | if let cell = tableView.dequeueReusableCell(withIdentifier: "PresetCell") as? PresetCell {
33 |
34 | var alphabetical = false
35 | if categoryIndex == PresetCategory.categoryCount + 1 { alphabetical = true }
36 |
37 | let preset = sortedPresets[(indexPath as NSIndexPath).row]
38 |
39 | cell.delegate = self
40 |
41 | // Cell updated in PresetCell.swift
42 | cell.configureCell(preset: preset, alpha: alphabetical)
43 |
44 | return cell
45 | } else {
46 | return PresetCell()
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/About/MoreAppsController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MoreAppsController.swift
3 | // AudioKit Synth One
4 | //
5 | // Created by Matthew Fecher on 11/15/18.
6 | // Copyright © 2018 AudioKit Pro. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class MoreAppsController: UIViewController {
12 |
13 | @IBOutlet weak var moreView: UIView!
14 |
15 | override func viewDidLoad() {
16 | super.viewDidLoad()
17 |
18 | moreView.layer.borderColor = #colorLiteral(red: 0.06666666667, green: 0.06666666667, blue: 0.06666666667, alpha: 1)
19 | moreView.layer.borderWidth = 2
20 | moreView.layer.cornerRadius = 6
21 |
22 | }
23 |
24 | @IBAction func closePressed(_ sender: UIButton) {
25 | dismiss(animated: true, completion: nil)
26 | }
27 |
28 | @IBAction func getDigitalD1(_ sender: Any) {
29 | if let url = URL(string: "https://itunes.apple.com/us/app/audiokit-digital-d1-synth/id1436905540?ls=1&mt=8") {
30 | UIApplication.shared.open(url)
31 | }
32 | }
33 |
34 | @IBAction func learnMorePressed(_ sender: Any) {
35 | if let url = URL(string: "http://audiokitpro.com/digitald1/") {
36 | UIApplication.shared.open(url)
37 | }
38 | }
39 |
40 | @IBAction func learnMoreFMPressed(_ sender: Any) {
41 | if let url = URL(string: "https://audiokitpro.com/fm-player-2/") {
42 | UIApplication.shared.open(url)
43 | }
44 | }
45 |
46 | @IBAction func getFMPlayer(_ sender: Any) {
47 | if let url = URL(string: "https://itunes.apple.com/app/apple-store/id1307785646?mt=8") {
48 | UIApplication.shared.open(url)
49 | }
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Controls/Buttons/ToggleButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ToggleButton.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 7/22/17.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | @IBDesignable
10 | class ToggleButton: UIView, S1Control {
11 |
12 | // MARK: - ToggleButton
13 |
14 | var isOn = false {
15 | didSet {
16 | setNeedsDisplay()
17 | accessibilityValue = isOn ? NSLocalizedString("On", comment: "On") : NSLocalizedString("Off", comment: "Off")
18 | }
19 | }
20 |
21 | // MARK: - S1Control
22 |
23 | var value: Double = 0 {
24 | didSet {
25 | isOn = (value == 1)
26 | }
27 | }
28 |
29 | var setValueCallback: (Double) -> Void = { _ in }
30 |
31 | var resetToDefaultCallback: () -> Void = { }
32 |
33 | // MARK: - Draw
34 |
35 | override func draw(_ rect: CGRect) {
36 | ToggleButtonStyleKit.drawRoundButton(frame: CGRect(x: 0,
37 | y: 0,
38 | width: self.bounds.width,
39 | height: self.bounds.height),
40 | isToggled: isOn)
41 | }
42 |
43 | // MARK: - Touches
44 |
45 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
46 | for _ in touches {
47 | value = 1 - value
48 | setValueCallback(value)
49 | }
50 | }
51 |
52 | override func touchesEnded(_ touches: Set, with event: UIEvent?) {
53 |
54 | for _ in touches {
55 | setValueCallback(value)
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/MIDI/MIDICell.swift:
--------------------------------------------------------------------------------
1 | //
2 | // MIDICell.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 11/11/17.
6 | // Copyright © 2017 AudioKit Pro. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | class MIDICell: UITableViewCell {
12 |
13 | @IBOutlet weak var cellLabel: UILabel!
14 | var currentInput: MIDIInput?
15 |
16 | override func awakeFromNib() {
17 | super.awakeFromNib()
18 | // Initialization code
19 |
20 | // set cell selection color
21 | let selectedView = UIView(frame: CGRect.zero)
22 | selectedView.backgroundColor = UIColor.clear
23 | selectedBackgroundView = selectedView
24 |
25 | cellLabel?.textColor = #colorLiteral(red: 0.7333333333, green: 0.7333333333, blue: 0.7333333333, alpha: 1)
26 | }
27 |
28 | override func setSelected(_ selected: Bool, animated: Bool) {
29 | super.setSelected(selected, animated: animated)
30 | // Configure the view for the selected state
31 |
32 | if selected {
33 | // cellLabel?.textColor = #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
34 | backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0)
35 | } else {
36 | //cellLabel?.textColor = #colorLiteral(red: 0.7333333333, green: 0.7333333333, blue: 0.7333333333, alpha: 1)
37 | backgroundColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 0)
38 | }
39 |
40 | }
41 |
42 | func configureCell(midiInput: MIDIInput) {
43 | guard midiInput.name != "AudioKit Synth One" else { return }
44 | currentInput = midiInput
45 | cellLabel.text = "\(midiInput.name)"
46 | accessoryType = midiInput.isOpen ? .checkmark : .none
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/TAAE/AEWeakRetainingProxy.h:
--------------------------------------------------------------------------------
1 | //
2 | // AEWeakRetainingProxy.h
3 | // TheAmazingAudioEngine
4 | //
5 | // Created by Michael Tyson on 8/06/2016.
6 | // Copyright © 2016 A Tasty Pixel. All rights reserved.
7 | //
8 | // This software is provided 'as-is', without any express or implied
9 | // warranty. In no event will the authors be held liable for any damages
10 | // arising from the use of this software.
11 | //
12 | // Permission is granted to anyone to use this software for any purpose,
13 | // including commercial applications, and to alter it and redistribute it
14 | // freely, subject to the following restrictions:
15 | //
16 | // 1. The origin of this software must not be misrepresented; you must not
17 | // claim that you wrote the original software. If you use this software
18 | // in a product, an acknowledgment in the product documentation would be
19 | // appreciated but is not required.
20 | //
21 | // 2. Altered source versions must be plainly marked as such, and must not be
22 | // misrepresented as being the original software.
23 | //
24 | // 3. This notice may not be removed or altered from any source distribution.
25 | //
26 |
27 | #ifdef __cplusplus
28 | extern "C" {
29 | #endif
30 |
31 | #import
32 |
33 | /*!
34 | * Weak Retaining Proxy
35 | *
36 | * This proxy class is useful to avoid a retain cycle when using an NSTimer
37 | * retained by the instance that is the timer's target. It's used in a number
38 | * of places throughout TAAE.
39 | */
40 | @interface AEWeakRetainingProxy : NSProxy
41 |
42 | + (instancetype _Nonnull)proxyWithTarget:(id _Nonnull)target;
43 |
44 | @property (nonatomic, weak, readonly) id _Nullable target;
45 |
46 | @end
47 |
48 | #ifdef __cplusplus
49 | }
50 | #endif
51 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Manager/Manager+PushNotification.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Manager+PushNotification.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 1/8/18.
6 | // Copyright © 2018 AudioKit Pro. All rights reserved.
7 | //
8 |
9 | import Foundation
10 |
11 | #if !targetEnvironment(macCatalyst)
12 | import OneSignal
13 | extension Manager {
14 |
15 | func pushPopUp() {
16 | // Add pop up
17 | let title = NSLocalizedString("Stay informed!", comment: "Alert Title: Allow notifications")
18 | let message = NSLocalizedString("We'll send Free updates, sounds, and apps. Allow notifications!",
19 | comment: "Alert Message: Allow notifications")
20 | let alert = UIAlertController(title: title,
21 | message: message,
22 | preferredStyle: .alert)
23 | let submitAction = UIAlertAction(title: "Yes! 👍🏼", style: .default) { (_) in
24 | self.appSettings.pushNotifications = true
25 | self.saveAppSettingValues()
26 | OneSignal.promptForPushNotifications(userResponse: { accepted in
27 | print("User accepted notifications: \(accepted)")
28 | })
29 | }
30 |
31 | let cancelAction = UIAlertAction(title: "Later", style: .default) { (_) in
32 | print("User canceled")
33 | }
34 |
35 | alert.addAction(cancelAction)
36 | alert.addAction(submitAction)
37 |
38 | self.present(alert, animated: true, completion: nil)
39 | }
40 | }
41 | #endif
42 |
43 | // MacOS Target, do nothing until we figure this out
44 | #if targetEnvironment(macCatalyst)
45 | extension Manager {
46 | public func pushPopUp() {}
47 | }
48 | #endif
49 |
--------------------------------------------------------------------------------
/OneSignalNotificationServiceExtension/NotificationService.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NotificationService.swift
3 | // OneSignalNotificationServiceExtension
4 | //
5 | // Created by Matthew Fecher on 5/21/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import UserNotifications
10 |
11 | import OneSignal
12 |
13 | class NotificationService: UNNotificationServiceExtension {
14 |
15 | var contentHandler: ((UNNotificationContent) -> Void)?
16 | var receivedRequest: UNNotificationRequest!
17 | var bestAttemptContent: UNMutableNotificationContent?
18 |
19 | override func didReceive(_ request: UNNotificationRequest,
20 | withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
21 | self.receivedRequest = request
22 | self.contentHandler = contentHandler
23 | bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
24 |
25 | if let bestAttemptContent = bestAttemptContent {
26 | OneSignal.didReceiveNotificationExtensionRequest(self.receivedRequest, with: self.bestAttemptContent)
27 | contentHandler(bestAttemptContent)
28 | }
29 | }
30 |
31 | override func serviceExtensionTimeWillExpire() {
32 | // Called just before the extension will be terminated by the system.
33 | // Use this as an opportunity to deliver your "best attempt" at modified content,
34 | // otherwise the original push payload will be used.
35 | if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent {
36 | OneSignal.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
37 | contentHandler(bestAttemptContent)
38 | }
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/MIDI/Manager+MIDISettingsPopOverDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Manager+MIDISettingsPopoverDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | // MIDI Settings Pop Over Delegate
10 |
11 | extension Manager: MIDISettingsPopOverDelegate {
12 |
13 | func resetMIDILearn() {
14 | for control in midiControls { control.midiCC = 255 }
15 | saveAppSettingValues()
16 | }
17 |
18 | func didSelectMIDIChannel(newChannel: Int) {
19 | if newChannel > -1 {
20 | conductor.midiInChannel = MIDIByte(newChannel)
21 | conductor.isOmniMode = false
22 | } else {
23 | conductor.midiInChannel = 0
24 | conductor.isOmniMode = true
25 | }
26 | saveAppSettingValues()
27 | }
28 |
29 | func didToggleVelocity() {
30 | appSettings.velocitySensitive = !appSettings.velocitySensitive
31 | saveAppSettingValues()
32 | }
33 |
34 | func didChangeMIDISources(_ midiSources: [MIDIInput]) {
35 | midiInputs = midiSources
36 | saveAppSettingValues()
37 | }
38 |
39 | func didToggleBackgroundAudio(_ value: Bool) {
40 | saveAppSettingValues()
41 | }
42 |
43 | func didToggleNeverSleep() {
44 | saveAppSettingValues()
45 | }
46 |
47 | func didSetBuffer() {
48 | saveAppSettingValues()
49 | }
50 |
51 | func didToggleStoreTuningWithPreset(_ value: Bool) {
52 | appSettings.saveTuningWithPreset = value
53 | saveAppSettingValues()
54 | }
55 |
56 | func didToggleLaunchWithLastTuning(_ value: Bool) {
57 | appSettings.launchWithLastTuning = value
58 | saveAppSettingValues()
59 | }
60 |
61 | }
62 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/description-zh-TW.txt:
--------------------------------------------------------------------------------
1 | “移動音樂向前邁出了一大步” - CDM(創造數字音樂)
2 | “突破性的iOS合成器應用程序” - Mac的崇拜
3 | “必須為每個iPad用戶下載” - MacBreak
4 |
5 | ***本週的應用程序 - Stuff.tv ***
6 | ***本週免費應用程序 - TechRadar ***
7 | ***最佳免費iPad Synth - EM雜誌***
8 |
9 | “AudioKit Synth One是適用於iPad的免費功能合成器,包括由M83,Tycho和Rihanna背後的專業音響設計師創作的300多種預設” - Engadget
10 |
11 | AudioKit Synth One是歷史上第一個完全免費和開源的專業iOS合成器應用程序。 無廣告。 沒有IAP。 它永遠是免費的。
12 |
13 | “人類努力的一個很好的例子”
14 | - Gaz Williams,Sonic State
15 |
16 | “令人驚嘆的努力...... 聽起來很神奇!“
17 | - Francis Preve,電子音樂雜誌
18 |
19 | “強大... 太棒了“ - Synthtopia.com
20 | “一款適合你的iPad的驚人的合成器應用程序,它與魔法一樣接近” - GarageBand指南
21 | “必須有iOS合成器” - Synth Anatomy
22 | “它讓你感到驚訝...... 立即開始調整樂趣!“ - discchord
23 | “神奇而輝煌的合成...... 聽起來很棒!“ - 聲音測試室
24 | “每個人都可以享受的愛的勞動” - 音樂雷達
25 |
26 | 學到更多:
27 | audiokitpro.com/synth
28 |
29 | 由全球100多名志願者創建(包括M83,Rihanna,Kanye West,Neon Trees,Mike Posner,Tycho等音響設計師),此應用程序包括MIDI支持(使用MIDI鍵盤或控制器播放),音序器,復古風格的模擬濾波器,富有表現力的琶音器,溫暖的模擬延遲,以及超過300種預設,讓您入門!
30 |
31 | 請將您的音樂和錯誤發送給我們:hello@audiokitpro.com
32 |
33 | SYNTH ONE FEATURES:
34 | 這款合成器完全免費,功能齊全,無廣告。 沒有IAP或任何可以購買的東西 - 它是終極免費的iPad音樂樂器應用程序!
35 |
36 | •混合模擬/ FM多合成器
37 | •由著名音響設計師精心製作的300多種預設
38 | •Audiobus 3和Inter-app Audio(IAA)
39 | •Ableton Link
40 | •五個振盪器(2個DCO,FM,Sub,Noise)
41 | •2個LFO,具有十幾種路由可能性
42 | •復古風格的16步音序器
43 | •經典的聚琶音器
44 | •MIDI輸入(使用MIDI鍵盤或AudioBus / IAA控制)
45 | •用於放大器和濾波器的可觸摸ADSR包絡
46 | •帶有Mod的FM振盪器
47 | •單聲道滑行和連奏
48 | •專用正弦/方波-12/24 Sub Osc
49 | •4極復古低通濾波器
50 | •高通/帶通濾波器
51 | •美麗的Costello Reverb
52 | •多次擊鍵(乒乓)延遲
53 | •TouchPad
54 | •預設和銀行導入/導出及更多...
55 |
56 | 獎金:完整源代碼現已推出!
57 | AudiokitPro.com/Synth
58 |
59 | 此外,它完全是開源的。 使用代碼學習如何構建自己的合成器應用程序或自己修改應用程序!
60 |
61 | 官方視頻:https://youtu.be/hwDNgCYowYs
62 |
63 | “驚人的噪音會讓你的耳朵高興” - 東西雜誌
64 | “本週挑選” - MacBreak
65 |
66 | 在路線圖上:
67 | •MPE支持(與Roli Seaboard一起玩)
68 | •AUv3插件支持
69 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Tunings/Model/Tunings+LaunchD1.swift:
--------------------------------------------------------------------------------
1 | ////
2 | //// Tunings+LaunchD1.swift
3 | //// AudioKitSynthOne
4 | ////
5 | //// Created by Marcus W. Hobbs on 2/10/19.
6 | //// Copyright © 2019 AudioKit. All rights reserved.
7 | ////
8 | //
9 | //import Foundation
10 | //
11 | //extension Tunings {
12 | //
13 | // private func redirect(to host:String, appStoreUrl:String) {
14 | // let npo = self.masterSet.count
15 | // let tuneUpArgs = host + "://tune?"
16 | // var urlStr = "\(tuneUpArgs)tuningName=\(tuningName)&npo=\(npo)"
17 | // for f in masterSet {
18 | // urlStr += "&f=\(f)"
19 | // }
20 | // urlStr += Tunings.tuneUpBackButtonUrlArgs
21 | //
22 | // if let urlStr = urlStr.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) {
23 | // if let url = URL(string: urlStr) {
24 | //
25 | // // is host installed on device?
26 | // if UIApplication.shared.canOpenURL(url) {
27 | // UIApplication.shared.open(url, options: [:], completionHandler: nil)
28 | // } else {
29 | //
30 | // // Redirect to app store
31 | // if let appStoreURL = URL.init(string: appStoreUrl) {
32 | // UIApplication.shared.open(appStoreURL, options: [:], completionHandler: nil)
33 | // }
34 | // }
35 | // }
36 | // }
37 | // }
38 | //
39 | // public func launchD1() {
40 | // redirect(to: "DigitalD1", appStoreUrl: "https://itunes.apple.com/us/app/audiokit-digital-d1-synth/id1436905540")
41 | // }
42 | //
43 | // public func launchWilsonic() {
44 | // redirect(to: "wilsonic", appStoreUrl: "https://itunes.apple.com/us/app/wilsonic/id848852071?mt=8")
45 | // }
46 | //
47 | //}
48 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Controls/Buttons/SynthButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SynthButton.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 8/8/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | class SynthButton: UIButton, S1Control {
10 |
11 | // MARK: - Init
12 |
13 | required init?(coder aDecoder: NSCoder) {
14 | super.init(coder: aDecoder)
15 | clipsToBounds = true
16 | layer.cornerRadius = 2
17 | layer.borderWidth = 1
18 | }
19 |
20 | // MARK: - S1Control
21 |
22 | var value: Double = 0 {
23 | didSet {
24 | isSelected = value == 1
25 | setNeedsDisplay()
26 | }
27 | }
28 |
29 | var setValueCallback: (Double) -> Void = { _ in }
30 |
31 | var resetToDefaultCallback: () -> Void = { }
32 |
33 | // MARK: - Properties
34 |
35 | var isOn: Bool {
36 | return value == 1
37 | }
38 |
39 | override var isSelected: Bool {
40 | didSet {
41 | backgroundColor = isOn ? #colorLiteral(red: 0.3058823529, green: 0.3058823529, blue: 0.3254901961, alpha: 1) : #colorLiteral(red: 0.2, green: 0.2, blue: 0.2, alpha: 1)
42 | accessibilityValue = isOn ?
43 | NSLocalizedString("On", comment: "On") :
44 | NSLocalizedString("Off", comment: "Off")
45 | }
46 | }
47 |
48 | // MARK: - Touches
49 |
50 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
51 | for _ in touches {
52 | value = isOn ? 0 : 1
53 | setValueCallback(value)
54 | }
55 | }
56 |
57 | override func touchesEnded(_ touches: Set, with event: UIEvent?) {
58 |
59 | for _ in touches {
60 | setValueCallback(value)
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Keyboard/Manager+Keyboard.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Manager+Keyboard.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | // Keyboard Pop Over Delegate
10 |
11 | extension Manager: KeyboardPopOverDelegate {
12 |
13 | func didFinishSelecting(octaveRange: Int, labelMode: Int, darkMode: KeyboardDarkMode, tuningMode: Bool) {
14 | keyboardView.octaveCount = octaveRange
15 | keyboardView.labelMode = labelMode
16 | keyboardView.darkMode = darkMode
17 | keyboardView.tuningMode = tuningMode
18 | keyboardView.setNeedsDisplay()
19 | saveAppSettingValues()
20 | }
21 | }
22 |
23 | // Keyboard Delegate Note on/off
24 |
25 | extension Manager: AKKeyboardDelegate {
26 |
27 | public func noteOn(note: MIDINoteNumber, velocity: MIDIVelocity = 127) {
28 | guard note < 128 else {
29 | let title = NSLocalizedString("Too High", comment: "Alert Title: Too High")
30 | let message = NSLocalizedString("MIDI Note > 127. G8 is the highest playable key. Take it down a notch 😉",
31 | comment: "Alert Message: Too High")
32 | displayAlertController(title, message: message)
33 | return
34 | }
35 | let transformedNoteNumber = appSettings.whiteKeysOnly ? whiteKeysOnlyMap[Int(note)] : note
36 | conductor.sustainer.play(noteNumber: transformedNoteNumber, velocity: velocity)
37 | }
38 |
39 | public func noteOff(note: MIDINoteNumber) {
40 | guard note < 128 else { return }
41 | let transformedNoteNumber = appSettings.whiteKeysOnly ? whiteKeysOnlyMap[Int(note)] : note
42 | conductor.sustainer.stop(noteNumber: transformedNoteNumber)
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Xcode
2 | #
3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore
4 |
5 | ## Build generated
6 | build/
7 | DerivedData/
8 |
9 | ## Various settings
10 | *.pbxuser
11 | !default.pbxuser
12 | *.mode1v3
13 | !default.mode1v3
14 | *.mode2v3
15 | !default.mode2v3
16 | *.perspectivev3
17 | !default.perspectivev3
18 | xcuserdata/
19 |
20 | ## Other
21 | *.moved-aside
22 | *.xccheckout
23 | *.xcscmblueprint
24 |
25 | ## Obj-C/Swift specific
26 | *.hmap
27 | *.ipa
28 | *.dSYM.zip
29 | *.dSYM
30 |
31 | .DS_Store
32 |
33 | ## Playgrounds
34 | timeline.xctimeline
35 | playground.xcworkspace
36 |
37 | # Swift Package Manager
38 | #
39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.
40 | # Packages/
41 | # Package.pins
42 | .build/
43 |
44 | # CocoaPods
45 | #
46 | # We recommend against adding the Pods directory to your .gitignore. However
47 | # you should judge for yourself, the pros and cons are mentioned at:
48 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
49 | #
50 | Pods/
51 |
52 | # Carthage
53 | #
54 | # Add this line if you want to avoid checking in source code from Carthage dependencies.
55 | # Carthage/Checkouts
56 |
57 | Carthage/Build
58 |
59 | # fastlane
60 | #
61 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
62 | # screenshots whenever they are needed.
63 | # For more information about the recommended setup visit:
64 | # https://docs.fastlane.tools/best-practices/source-control/#source-control
65 |
66 | fastlane/report.xml
67 | fastlane/Preview.html
68 | fastlane/screenshots
69 | fastlane/test_output
70 | /Podfile.lock
71 |
72 | AudioKitSynthOne/Link/include
73 | AudioKitSynthOne/Link/lib
74 | /AudioKitSynthOne/Private.swift
75 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/BankEditorViewController.swift:
--------------------------------------------------------------------------------
1 | //
2 | // BankEditorViewController.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 1/27/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | protocol BankPopOverDelegate: AnyObject {
12 | func didFinishEditing(oldName: String, newName: String)
13 | func didDeleteBank(bankName: String)
14 | }
15 |
16 | class BankEditorViewController: UIViewController {
17 |
18 | @IBOutlet weak var nameTextField: UITextField!
19 | @IBOutlet weak var popupView: UIView!
20 | @IBOutlet weak var cancelButton: SynthButton!
21 | @IBOutlet weak var saveButton: SynthButton!
22 | @IBOutlet weak var deleteButton: SynthButton!
23 |
24 | weak var delegate: BankPopOverDelegate?
25 |
26 | var bankName = "bank name"
27 |
28 | override func viewDidLoad() {
29 | super.viewDidLoad()
30 |
31 | popupView.layer.borderColor = #colorLiteral(red: 0.1333333333, green: 0.1333333333, blue: 0.1333333333, alpha: 1)
32 | popupView.layer.borderWidth = 2
33 | popupView.layer.cornerRadius = 6
34 |
35 | nameTextField.text = bankName
36 |
37 | setupCallbacks()
38 | }
39 |
40 | func setupCallbacks() {
41 |
42 | cancelButton.setValueCallback = { _ in
43 | self.dismiss(animated: true, completion: nil)
44 | }
45 |
46 | saveButton.setValueCallback = { _ in
47 | self.delegate?.didFinishEditing(oldName: self.bankName, newName: self.nameTextField.text ?? "Unnamed")
48 | self.dismiss(animated: true, completion: nil)
49 | }
50 |
51 | deleteButton.setValueCallback = { _ in
52 | self.delegate?.didDeleteBank(bankName: self.bankName)
53 | self.dismiss(animated: true, completion: nil)
54 | }
55 |
56 | }
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/TAAE/AEWeakRetainingProxy.m:
--------------------------------------------------------------------------------
1 | //
2 | // AEWeakRetainingProxy.m
3 | // TheAmazingAudioEngine
4 | //
5 | // Created by Michael Tyson on 8/06/2016.
6 | // Copyright © 2016 A Tasty Pixel. All rights reserved.
7 | //
8 | // This software is provided 'as-is', without any express or implied
9 | // warranty. In no event will the authors be held liable for any damages
10 | // arising from the use of this software.
11 | //
12 | // Permission is granted to anyone to use this software for any purpose,
13 | // including commercial applications, and to alter it and redistribute it
14 | // freely, subject to the following restrictions:
15 | //
16 | // 1. The origin of this software must not be misrepresented; you must not
17 | // claim that you wrote the original software. If you use this software
18 | // in a product, an acknowledgment in the product documentation would be
19 | // appreciated but is not required.
20 | //
21 | // 2. Altered source versions must be plainly marked as such, and must not be
22 | // misrepresented as being the original software.
23 | //
24 | // 3. This notice may not be removed or altered from any source distribution.
25 | //
26 |
27 | #import "AEWeakRetainingProxy.h"
28 |
29 | @interface AEWeakRetainingProxy ()
30 | @property (nonatomic, weak, readwrite) id target;
31 | @end
32 |
33 | @implementation AEWeakRetainingProxy
34 |
35 | + (instancetype)proxyWithTarget:(id)target {
36 | AEWeakRetainingProxy * proxy = [AEWeakRetainingProxy alloc];
37 | proxy.target = target;
38 | return proxy;
39 | }
40 |
41 | - (NSMethodSignature *)methodSignatureForSelector:(SEL)selector {
42 | return [_target methodSignatureForSelector:selector];
43 | }
44 |
45 | - (void)forwardInvocation:(NSInvocation *)invocation {
46 | __strong id target = _target;
47 | [invocation setTarget:target];
48 | [invocation invoke];
49 | }
50 |
51 | @end
52 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Translations/Metadata/description-zh-CN.txt:
--------------------------------------------------------------------------------
1 | “移动音乐向前迈出了一大步” - CDM (Create Digital Music)
2 | “突破性的iOS音乐合成器应用程序” - Cult of Mac
3 | “每个iPad用户都应该下载的应用” - MacBreak
4 |
5 | ***本周最佳应用程序 - Stuff.tv ***
6 | ***本周最佳免费应用程序 - TechRadar ***
7 | ***最佳免费iPad音乐合成器 - EM杂志***
8 |
9 | “AudioKit Synth One是适用于iPad的免费的多功能音乐合成器,包括由M83,Tycho和Rihanna背后的专业音响设计师创作的300多种预设” - Engadget
10 |
11 | AudioKit Synth One是历史上第一个完全免费和开源的专业iOS音乐合成器应用程序。 无广告。 没有应用内购。 它永远是免费的。
12 |
13 | “人类努力的伟大典范”
14 | - Gaz Williams,Sonic State
15 |
16 | “令人惊叹的努力...... 听起来很神奇!“
17 | - Francis Preve,Electronic Musician Magazine
18 |
19 | “强大... 太棒了“ - Synthtopia.com
20 | “一款近乎魔法的适合你iPad的音乐合成器应用程序” - GarageBand Guide
21 | “必须有的iOS音乐合成器” - Synth Anatomy
22 | “它让你感到惊喜...... 立即获得编辑音乐的乐趣!“ - discchord
23 | “神奇而辉煌的音乐合成器...... 听起来很棒!“ - The Sound Test Room
24 | “让每个人都可以享受的爱的劳动” - Music Radar
25 |
26 | 了解更多:
27 | audiokitpro.com/synth
28 |
29 | 由全球100多名志愿者创建 (包括M83,Rihanna,Kanye West,Neon Trees,Mike Posner,Tycho等音响设计师),此应用程序包括MIDI支持 (使用MIDI键盘或控制器播放),音序器,复古风格的模拟滤波器,富有表现力的琶音器,舒缓的模拟延迟,以及超过300种预设让您迈入音乐之门!
30 |
31 | 请将您的音乐和发现的错误发送给我们:hello@audiokitpro.com
32 |
33 | SYNTH ONE 功能:
34 | 这款音乐合成器完全免费,功能齐全,无广告。 没有应用内购买或任何需购买的东西 - 它是终极免费的iPad音乐乐器应用程序!
35 |
36 | •混合模拟/ 多调频合成器
37 | •由着著名音响设计师精心制作的300多种预设
38 | •Audiobus 3 及 应用程序间交互音频 (IAA)
39 | •Ableton Link
40 | •五个振荡器(2个DCO,FM,Sub,Noise)
41 | •2个具有十几种选择可能性的低频振荡器
42 | •复古风格的16步音序器
43 | •经典的聚琶音器
44 | •MIDI输入(使用MIDI键盘或AudioBus / IAA控制)
45 | •用于振幅和滤波器的可触摸ADSR波封
46 | •带有元件的调频振荡器
47 | •单声道滑行和连奏
48 | •专用正弦/方波-12/24 Sub Osc
49 | •4极复古低通滤波器
50 | •高通/带通滤波器
51 | •优美的Costello残响
52 | •多次击键(乒乓)延迟
53 | •触摸板
54 | •预设和库的导入/导出及更多...
55 |
56 | 附加奖励:完整源代码现已发布!
57 | AudiokitPro.com/Synth
58 |
59 | 此外,它完全是开源的。 使用代码学习如何构建自己的音乐合成器应用程序或自己编辑修改应用程序!
60 |
61 | 官方视频:https://youtu.be/hwDNgCYowYs
62 |
63 | “令人惊叹的声音会让你的耳朵享受一场听觉盛宴” - Stuff Magazine
64 | “本周最佳” - MacBreak
65 |
66 | 即将到来:
67 | •支持MPE (适配Roli Seaboard)
68 | •AUv3插件支持
69 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Navigation/NavButton.swift:
--------------------------------------------------------------------------------
1 | //
2 | // NavButton.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 8/6/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | @IBDesignable
12 | class NavButton: UIView {
13 |
14 | // MARK: - ToggleButton
15 |
16 | private var isOn = false
17 | var value: Double {
18 | get {
19 | return isOn ? 1 : 0
20 | }
21 | set {
22 | isOn = value == 1.0
23 | }
24 | }
25 |
26 | enum Direction: CGFloat {
27 | case left = 0
28 | case right = 180
29 | }
30 |
31 | var arrowDirection: Direction = .left {
32 | didSet {
33 | rotation = arrowDirection.rawValue
34 | }
35 | }
36 |
37 | public var callback: (Double) -> Void = { _ in }
38 |
39 | // Make Button Text Editable in IB
40 | @IBInspectable open var buttonText: String = "Hello"
41 | @IBInspectable open var rotation: CGFloat = 0
42 |
43 | override func draw(_ rect: CGRect) {
44 | NavButtonStyleKit.drawNavButton(frame: CGRect(x: 0,
45 | y: 0,
46 | width: self.bounds.width,
47 | height: self.bounds.height),
48 | isOn: CGFloat(value),
49 | rotation: rotation,
50 | text: buttonText)
51 | }
52 |
53 | // MARK: - Touches
54 |
55 | override func touchesBegan(_ touches: Set, with event: UIEvent?) {
56 | for _ in touches {
57 | callback(value)
58 | }
59 | }
60 |
61 | override func touchesEnded(_ touches: Set, with event: UIEvent?) {
62 | for _ in touches {
63 | }
64 | }
65 |
66 | }
67 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/zh-Hans.lproj/zh-Hans.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UILabel"; text = "Master Compressor"; ObjectID = "4x3-IO-hYz"; */
2 | "4x3-IO-hYz.text" = "主压缩器";
3 |
4 | /* Class = "UILabel"; text = "Lock ArpRate"; ObjectID = "8du-td-RcA"; */
5 | "8du-td-RcA.text" = "锁定琶音器速率";
6 |
7 | /* Class = "UILabel"; text = "Reverb Input Compressor"; ObjectID = "Acb-r3-neV"; */
8 | "Acb-r3-neV.text" = "混响输入压缩器";
9 |
10 | /* Class = "UILabel"; text = "DelFCut"; ObjectID = "AIL-8o-L1E"; */
11 | "AIL-8o-L1E.text" = "延迟频率截点";
12 |
13 | /* Class = "UILabel"; text = "Thresh"; ObjectID = "bwY-pS-LEC"; */
14 | "bwY-pS-LEC.text" = "阈值";
15 |
16 | /* Class = "UILabel"; text = "Lock Arp+Seq"; ObjectID = "ct1-IH-Yiw"; */
17 | "ct1-IH-Yiw.text" = "锁定琶音器和音序器";
18 |
19 | /* Class = "UILabel"; text = "PostGain"; ObjectID = "GRS-H5-GyB"; */
20 | "GRS-H5-GyB.text" = "后置增益";
21 |
22 | /* Class = "UILabel"; text = "Master Volume"; ObjectID = "hU8-IN-aa4"; */
23 | "hU8-IN-aa4.text" = "主音量";
24 |
25 | /* Class = "UILabel"; text = "Release"; ObjectID = "O3q-m2-cp5"; */
26 | "O3q-m2-cp5.text" = "释音";
27 |
28 | /* Class = "UILabel"; text = "Attack"; ObjectID = "oPw-gV-Wod"; */
29 | "oPw-gV-Wod.text" = "起音";
30 |
31 | /* Class = "UILabel"; text = "Reverb Wet Compressor"; ObjectID = "rEb-j6-MNs"; */
32 | "rEb-j6-MNs.text" = "混响湿式压缩器";
33 |
34 | /* Class = "UILabel"; text = "DSP Param Halftime"; ObjectID = "slc-Pi-ahg"; */
35 | "slc-Pi-ahg.text" = "DSP参数半周期";
36 |
37 | /* Class = "UILabel"; text = "Lock Delay"; ObjectID = "tLJ-xr-40E"; */
38 | "tLJ-xr-40E.text" = "锁定延迟";
39 |
40 | /* Class = "UILabel"; text = "DelFRes"; ObjectID = "tRH-wD-RtM"; */
41 | "tRH-wD-RtM.text" = "延迟频率波峰";
42 |
43 | /* Class = "UILabel"; text = "Lock Reverb"; ObjectID = "U8L-qY-a4j"; */
44 | "U8L-qY-a4j.text" = "锁定混响";
45 |
46 | /* Class = "UILabel"; text = "HAQ PANEL"; ObjectID = "Yqu-Zu-SxM"; */
47 | "Yqu-Zu-SxM.text" = "开发者面板";
48 |
49 | /* Class = "UILabel"; text = "Ratio"; ObjectID = "Zr2-3d-n6e"; */
50 | "Zr2-3d-n6e.text" = "比率";
51 |
52 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Developer/zh-Hant.lproj/zh-Hant.lproj/Dev.strings:
--------------------------------------------------------------------------------
1 | /* Class = "UILabel"; text = "Master Compressor"; ObjectID = "4x3-IO-hYz"; */
2 | "4x3-IO-hYz.text" = "主压缩器";
3 |
4 | /* Class = "UILabel"; text = "Lock ArpRate"; ObjectID = "8du-td-RcA"; */
5 | "8du-td-RcA.text" = "锁定琶音器速率";
6 |
7 | /* Class = "UILabel"; text = "Reverb Input Compressor"; ObjectID = "Acb-r3-neV"; */
8 | "Acb-r3-neV.text" = "混响输入压缩器";
9 |
10 | /* Class = "UILabel"; text = "DelFCut"; ObjectID = "AIL-8o-L1E"; */
11 | "AIL-8o-L1E.text" = "延迟频率截点";
12 |
13 | /* Class = "UILabel"; text = "Thresh"; ObjectID = "bwY-pS-LEC"; */
14 | "bwY-pS-LEC.text" = "阈值";
15 |
16 | /* Class = "UILabel"; text = "Lock Arp+Seq"; ObjectID = "ct1-IH-Yiw"; */
17 | "ct1-IH-Yiw.text" = "锁定琶音器和音序器";
18 |
19 | /* Class = "UILabel"; text = "PostGain"; ObjectID = "GRS-H5-GyB"; */
20 | "GRS-H5-GyB.text" = "后置增益";
21 |
22 | /* Class = "UILabel"; text = "Master Volume"; ObjectID = "hU8-IN-aa4"; */
23 | "hU8-IN-aa4.text" = "主音量";
24 |
25 | /* Class = "UILabel"; text = "Release"; ObjectID = "O3q-m2-cp5"; */
26 | "O3q-m2-cp5.text" = "释音";
27 |
28 | /* Class = "UILabel"; text = "Attack"; ObjectID = "oPw-gV-Wod"; */
29 | "oPw-gV-Wod.text" = "起音";
30 |
31 | /* Class = "UILabel"; text = "Reverb Wet Compressor"; ObjectID = "rEb-j6-MNs"; */
32 | "rEb-j6-MNs.text" = "混响湿式压缩器";
33 |
34 | /* Class = "UILabel"; text = "DSP Param Halftime"; ObjectID = "slc-Pi-ahg"; */
35 | "slc-Pi-ahg.text" = "DSP参数半周期";
36 |
37 | /* Class = "UILabel"; text = "Lock Delay"; ObjectID = "tLJ-xr-40E"; */
38 | "tLJ-xr-40E.text" = "锁定延迟";
39 |
40 | /* Class = "UILabel"; text = "DelFRes"; ObjectID = "tRH-wD-RtM"; */
41 | "tRH-wD-RtM.text" = "延迟频率波峰";
42 |
43 | /* Class = "UILabel"; text = "Lock Reverb"; ObjectID = "U8L-qY-a4j"; */
44 | "U8L-qY-a4j.text" = "锁定混响";
45 |
46 | /* Class = "UILabel"; text = "HAQ PANEL"; ObjectID = "Yqu-Zu-SxM"; */
47 | "Yqu-Zu-SxM.text" = "开发者面板";
48 |
49 | /* Class = "UILabel"; text = "Ratio"; ObjectID = "Zr2-3d-n6e"; */
50 | "Zr2-3d-n6e.text" = "比率";
51 |
52 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Sequencer/UI Components/RateKnob.swift:
--------------------------------------------------------------------------------
1 | //
2 | // RateKnob.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 8/5/17.
6 | // Copyright © 2017 AudioKit. All rights reserved.
7 | //
8 |
9 | import UIKit
10 |
11 | public class RateKnob: MIDIKnob {
12 |
13 | var rate: Rate {
14 | return Rate(rawValue: Int(knobValue * CGFloat(Rate.count))) ?? Rate.sixtyFourth
15 | }
16 |
17 | private var _value: Double = 0
18 |
19 | override public var value: Double {
20 | get {
21 | if timeSyncMode {
22 | return rate.frequency
23 | } else {
24 | return _value
25 | }
26 | }
27 | set(newValue) {
28 | _value = onlyIntegers ? round(newValue) : newValue
29 | _value = range.clamp(_value)
30 | if !timeSyncMode {
31 | knobValue = CGFloat(_value.normalized(from: range, taper: taper))
32 | }
33 | }
34 | }
35 |
36 | // Init / Lifecycle
37 | override init(frame: CGRect) {
38 | super.init(frame: frame)
39 | contentMode = .redraw
40 | }
41 |
42 | required public init?(coder: NSCoder) {
43 | super.init(coder: coder)
44 | isUserInteractionEnabled = true
45 | contentMode = .redraw
46 | }
47 |
48 | override func setPercentagesWithTouchPoint(_ touchPoint: CGPoint) {
49 |
50 | // Knobs assume up or right is increasing, and down or left is decreasing
51 | knobValue += (touchPoint.x - lastX) * knobSensitivity
52 | knobValue -= (touchPoint.y - lastY) * knobSensitivity
53 | knobValue = (0.0 ... 1.0).clamp(knobValue)
54 | if timeSyncMode {
55 | value = rate.frequency
56 | } else {
57 | value = Double(knobValue).denormalized(to: range, taper: taper)
58 | }
59 | setValueCallback(value)
60 | lastX = touchPoint.x
61 | lastY = touchPoint.y
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/TAAE/AETypes.m:
--------------------------------------------------------------------------------
1 | //
2 | // AETypes.m
3 | // TheAmazingAudioEngine
4 | //
5 | // Created by Michael Tyson on 23/03/2016.
6 | // Copyright © 2016 A Tasty Pixel. All rights reserved.
7 | //
8 | // This software is provided 'as-is', without any express or implied
9 | // warranty. In no event will the authors be held liable for any damages
10 | // arising from the use of this software.
11 | //
12 | // Permission is granted to anyone to use this software for any purpose,
13 | // including commercial applications, and to alter it and redistribute it
14 | // freely, subject to the following restrictions:
15 | //
16 | // 1. The origin of this software must not be misrepresented; you must not
17 | // claim that you wrote the original software. If you use this software
18 | // in a product, an acknowledgment in the product documentation would be
19 | // appreciated but is not required.
20 | //
21 | // 2. Altered source versions must be plainly marked as such, and must not be
22 | // misrepresented as being the original software.
23 | //
24 | // 3. This notice may not be removed or altered from any source distribution.
25 | //
26 |
27 | #import "AETypes.h"
28 |
29 | AudioStreamBasicDescription const AEAudioDescription = {
30 | .mFormatID = kAudioFormatLinearPCM,
31 | .mFormatFlags = kAudioFormatFlagIsFloat | kAudioFormatFlagIsPacked | kAudioFormatFlagIsNonInterleaved,
32 | .mChannelsPerFrame = 2,
33 | .mBytesPerPacket = sizeof(float),
34 | .mFramesPerPacket = 1,
35 | .mBytesPerFrame = sizeof(float),
36 | .mBitsPerChannel = 8 * sizeof(float),
37 | .mSampleRate = 0,
38 | };
39 |
40 | AudioStreamBasicDescription AEAudioDescriptionWithChannelsAndRate(int channels, double rate) {
41 | AudioStreamBasicDescription description = AEAudioDescription;
42 | description.mChannelsPerFrame = channels;
43 | description.mSampleRate = rate;
44 | return description;
45 | }
46 |
47 | AEChannelSet AEChannelSetDefault = {0, 1};
48 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/Presets/Manager+PresetsDelegate.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Manager+PresetsDelegate.swift
3 | // AudioKitSynthOne
4 | //
5 | // Created by AudioKit Contributors on 5/25/18.
6 | // Copyright © 2018 AudioKit. All rights reserved.
7 | //
8 |
9 | // Presets Delegate
10 |
11 | extension Manager: PresetsDelegate {
12 |
13 | func presetDidChange(_ newActivePreset: Preset) {
14 |
15 | conductor.synth.reset()
16 |
17 | activePreset = newActivePreset
18 |
19 | if let headerVC = self.children.first as? HeaderViewController {
20 | headerVC.activePreset = activePreset
21 | }
22 |
23 | // Set parameters from preset
24 | self.loadPreset()
25 |
26 | DispatchQueue.main.async {
27 | self.conductor.updateAllUI()
28 | }
29 |
30 | // Display new preset name in header
31 | DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
32 | let message = "\(self.activePreset.position): \(self.activePreset.name)"
33 | self.updateDisplay(message)
34 | }
35 |
36 | // UI Updates for non-bound controls
37 | DispatchQueue.main.async {
38 | // Octave position
39 | self.keyboardView.firstOctave = self.activePreset.octavePosition + 2
40 | self.octaveStepper.value = Double(self.activePreset.octavePosition)
41 | }
42 |
43 | // Save App Settings
44 | saveAppSettingValues()
45 | }
46 |
47 | func updateDisplay(_ message: String) {
48 | if let headerVC = self.children.first as? HeaderViewController {
49 | headerVC.displayLabel.text = message
50 | }
51 | }
52 |
53 | func saveEditedPreset(name: String, category: Int, bank: String) {
54 | activePreset.name = name
55 | activePreset.category = category
56 | activePreset.bank = bank
57 | // activePreset.isUser = true
58 | saveValuesToPreset()
59 | }
60 |
61 | func banksDidUpdate() {
62 | saveBankSettings()
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/AudioKitSynthOne/DSP/README.md:
--------------------------------------------------------------------------------
1 | # AudioKit Synth One DSP
2 |
3 | Architecture
4 | h1
5 | ==
6 |
7 | * Global enums
8 | `S1Parameter.h`
9 | Enums for every kernel parameter are defined here, and exposed to Swift, ObjC, and C++.
10 |
11 |
12 | * Swift wrapper
13 | `AKSynthOne.swift`
14 |
15 | * ObjC++ AudioUnit
16 | `S1AudioUnit.h`
17 |
18 | S1AudioUnit owns the AudioUnit instance of the kernel and facilitates communication between the Swift UI layer and the C++ DSP kernel.
19 | It defines several structs used for communication between the render thread and the main/ui thread.
20 | It depends on a 3rd party SDK to faciliate messaging between the main thread and the render thread.
21 |
22 |
23 | * Kernel
24 | `S1DSPKernel.hpp`
25 | Note that this header defines the values for the array of S1ParameterInfo objects, which define the min, default, max for every parameter to the kernel.
26 |
27 | `S1DSPKernel+process.mm`
28 | Kernel Process
29 | The architecture of this application is to prepare objects for the kernel's real-time render thread consumption, then message those state changes to the ui-thread.
30 | This render thread code is 75% of the application's cpu. This code must be continuously tested and optimized.
31 | This code must not block, which also means no allocation of objects.
32 | Much consideration was given to Michael Tyson's render thread analysis: [Four common mistakes in audio development](http://atastypixel.com/blog/four-common-mistakes-in-audio-development/)
33 | Great care was given to manage incoming midi events outside of process()
34 | The Sequencer and Arpeggiator code is inside process() but it is computationally trivial.
35 |
36 |
37 | * NoteState
38 | `S1NoteState.hpp`
39 | S1NoteState is the atomic dsp note object.
40 | The kernel manages a single instance for mono mode, and a managed array of count "polyphony" for polyphonic mode.
41 | Kernel presents 2 global LFOs to every NoteState object. This is an area we'd like to generalize while maintaining backwards compatibility. Brice Beasly has some excellent designs.
42 |
43 |
--------------------------------------------------------------------------------