{"action":"created","comment":{"url":"https://api.github.com/repos/AudioKit/AudioKit/pulls/comments/174163024","pull_request_review_id":103467953,"id":174163024,"diff_hunk":"@@ -0,0 +1,381 @@\n+//\n+//  AKSampler.swift\n+//  AudioKit\n+//\n+//  Created by Shane Dunne on 2018-02-19.\n+//  Copyright © 2018 AudioKit. All rights reserved.\n+//\n+\n+/// Stereo Chorus\n+///\n+open class AKSampler: AKPolyphonicNode, AKComponent, AKInput {\n+    public typealias AKAudioUnitType = AKSamplerAudioUnit\n+    /// Four letter unique description of the node\n+    public static let ComponentDescription = AudioComponentDescription(generator: \"AKss\")\n+\n+    // MARK: - Properties\n+\n+    private var internalAU: AKAudioUnitType?\n+    private var token: AUParameterObserverToken?\n+\n+    fileprivate var masterVolumeParameter: AUParameter?\n+    fileprivate var pitchBendParameter: AUParameter?\n+    fileprivate var vibratoDepthParameter: AUParameter?\n+    fileprivate var filterCutoffParameter: AUParameter?\n+    fileprivate var filterResonanceParameter: AUParameter?\n+\n+    fileprivate var ampAttackTimeParameter: AUParameter?\n+    fileprivate var ampDecayTimeParameter: AUParameter?\n+    fileprivate var ampSustainLevelParameter: AUParameter?\n+    fileprivate var ampReleaseTimeParameter: AUParameter?\n+\n+    fileprivate var filterAttackTimeParameter: AUParameter?\n+    fileprivate var filterDecayTimeParameter: AUParameter?\n+    fileprivate var filterSustainLevelParameter: AUParameter?\n+    fileprivate var filterReleaseTimeParameter: AUParameter?\n+\n+    fileprivate var filterEnableParameter: AUParameter?\n+\n+    /// Ramp Time represents the speed at which parameters are allowed to change\n+    @objc open dynamic var rampTime: Double = AKSettings.rampTime {\n+        willSet {\n+            internalAU?.rampTime = newValue\n+        }\n+    }\n+\n+    /// Master volume (fraction)\n+    @objc open dynamic var masterVolume: Double = 1.0 {\n+        willSet {\n+            if masterVolume == newValue {\n+                return\n+            }\n+\n+            if internalAU?.isSetUp ?? false {\n+                if token != nil && masterVolumeParameter != nil {\n+                    masterVolumeParameter?.setValue(Float(newValue), originator: token!)\n+                    return\n+                }\n+            }\n+\n+            internalAU?.masterVolume = newValue\n+        }\n+    }\n+\n+    /// Pitch offset (semitones)\n+    @objc open dynamic var pitchBend: Double = 0.0 {\n+        willSet {\n+            if pitchBend == newValue {\n+                return\n+            }\n+\n+            if internalAU?.isSetUp ?? false {\n+                if token != nil && pitchBendParameter != nil {\n+                    pitchBendParameter?.setValue(Float(newValue), originator: token!)\n+                    return\n+                }\n+            }\n+\n+            internalAU?.pitchBend = newValue\n+        }\n+    }\n+\n+    /// Vibrato amount (semitones)\n+    @objc open dynamic var vibratoDepth: Double = 1.0 {\n+        willSet {\n+            if vibratoDepth == newValue {\n+                return\n+            }\n+\n+            if internalAU?.isSetUp ?? false {\n+                if token != nil && vibratoDepthParameter != nil {\n+                    vibratoDepthParameter?.setValue(Float(newValue), originator: token!)\n+                    return\n+                }\n+            }\n+\n+            internalAU?.vibratoDepth = newValue\n+        }\n+    }\n+\n+    /// Filter cutoff (harmonic ratio)\n+    @objc open dynamic var filterCutoff: Double = 1000.0 {\n+        willSet {\n+            if filterCutoff == newValue {\n+                return\n+            }\n+\n+            if internalAU?.isSetUp ?? false {\n+                if token != nil && filterCutoffParameter != nil {\n+                    filterCutoffParameter?.setValue(Float(newValue), originator: token!)\n+                    return\n+                }\n+            }\n+\n+            internalAU?.filterCutoff = newValue\n+        }\n+    }\n+\n+    /// Filter resonance (dB)\n+    @objc open dynamic var filterResonance: Double = 0.0 {\n+        willSet {\n+            if filterResonance == newValue {\n+                return\n+            }\n+\n+            if internalAU?.isSetUp ?? false {\n+                if token != nil && filterResonanceParameter != nil {\n+                    filterResonanceParameter?.setValue(Float(newValue), originator: token!)\n+                    return\n+                }\n+            }\n+\n+            internalAU?.filterResonance = newValue\n+        }\n+    }\n+\n+    /// Amp attack time (seconds)\n+    @objc open dynamic var ampAttackTime: Double = 0.0 {\n+        willSet {\n+            if ampAttackTime != newValue {\n+                internalAU?.ampAttackTime = newValue\n+            }\n+        }\n+    }\n+\n+    /// Amp Decay time (seconds)\n+    @objc open dynamic var ampDecayTime: Double = 0.0 {\n+        willSet {\n+            if ampDecayTime != newValue {\n+                internalAU?.ampDecayTime = newValue\n+            }\n+        }\n+    }\n+\n+    /// Amp sustain level (fraction)\n+    @objc open dynamic var ampSustainLevel: Double = 1.0 {\n+        willSet {\n+            if ampSustainLevel != newValue {\n+                internalAU?.ampSustainLevel = newValue\n+            }\n+        }\n+    }\n+\n+    /// Amp Release time (seconds)\n+    @objc open dynamic var ampReleaseTime: Double = 0.0 {\n+        willSet {\n+            if ampReleaseTime != newValue {\n+                internalAU?.ampReleaseTime = newValue\n+            }\n+        }\n+    }\n+\n+    /// Filter attack time (seconds)\n+    @objc open dynamic var filterAttackTime: Double = 0.0 {\n+        willSet {\n+            if filterAttackTime != newValue {\n+                internalAU?.filterAttackTime = newValue\n+            }\n+        }\n+    }\n+\n+    /// Filter Decay time (seconds)\n+    @objc open dynamic var filterDecayTime: Double = 0.0 {\n+        willSet {\n+            if filterDecayTime != newValue {\n+                internalAU?.filterDecayTime = newValue\n+            }\n+        }\n+    }\n+\n+    /// Filter sustain level (fraction)\n+    @objc open dynamic var filterSustainLevel: Double = 1.0 {\n+        willSet {\n+            if filterSustainLevel != newValue {\n+                internalAU?.filterSustainLevel = newValue\n+            }\n+        }\n+    }\n+\n+    /// Filter Release time (seconds)\n+    @objc open dynamic var filterReleaseTime: Double = 0.0 {\n+        willSet {\n+            if filterReleaseTime != newValue {\n+                internalAU?.filterReleaseTime = newValue\n+            }\n+        }\n+    }\n+\n+    /// Filter Enable (boolean, 0.0 for false or 1.0 for true)\n+    @objc open dynamic var filterEnable: Bool = false {\n+        willSet {\n+            if filterEnable != newValue {\n+                internalAU?.filterEnable = newValue ? 1.0 : 0.0\n+            }\n+        }\n+    }\n+\n+    // MARK: - Initialization\n+\n+    /// Initialize this sampler node\n+    ///\n+    /// - Parameters:\n+    ///   - input: AKNode whose output will be processed (not used)\n+    ///   - masterVolume: 0.0 - 1.0\n+    ///   - pitchBend: semitones, signed\n+    ///   - vibratoDepth: semitones, typically less than 1.0\n+    ///   - filterCutoff: relative to sample playback pitch, 1.0 = fundamental, 2.0 = 2nd harmonic etc\n+    ///   - filterResonance: dB, 0.0 - 10.0\n+    ///   - ampAttackTime: seconds, 0.0 - 10.0\n+    ///   - ampDecayTime: seconds, 0.0 - 10.0\n+    ///   - ampSustainLevel: 0.0 - 1.0\n+    ///   - ampReleaseTime: seconds, 0.0 - 10.0\n+    ///   - filterEnable: true to enable per-voice filters\n+    ///   - filterAttackTime: seconds, 0.0 - 10.0\n+    ///   - filterDecayTime: seconds, 0.0 - 10.0\n+    ///   - filterSustainLevel: 0.0 - 1.0\n+    ///   - filterReleaseTime: seconds, 0.0 - 10.0\n+    ///\n+    @objc public init(\n+        _ input: AKNode? = nil,\n+        masterVolume: Double = 1.0,\n+        pitchBend: Double = 0.0,\n+        vibratoDepth: Double = 0.0,\n+        filterCutoff: Double = 1000.0,\n+        filterResonance: Double = 0.0,\n+        ampAttackTime: Double = 0.0,\n+        ampDecayTime: Double = 0.0,\n+        ampSustainLevel: Double = 1.0,\n+        ampReleaseTime: Double = 0.0,\n+        filterEnable: Bool = false,\n+        filterAttackTime: Double = 0.0,\n+        filterDecayTime: Double = 0.0,\n+        filterSustainLevel: Double = 1.0,\n+        filterReleaseTime: Double = 0.0) {\n+\n+        self.masterVolume = masterVolume\n+        self.pitchBend = pitchBend\n+        self.vibratoDepth = vibratoDepth\n+        self.filterCutoff = filterCutoff\n+        self.filterResonance = filterResonance\n+        self.ampAttackTime = ampAttackTime\n+        self.ampDecayTime = ampDecayTime\n+        self.ampSustainLevel = ampSustainLevel\n+        self.ampReleaseTime = ampReleaseTime\n+        self.filterEnable = filterEnable\n+        self.filterAttackTime = filterAttackTime\n+        self.filterDecayTime = filterDecayTime\n+        self.filterSustainLevel = filterSustainLevel\n+        self.filterReleaseTime = filterReleaseTime\n+\n+        _Self.register()\n+\n+        super.init()\n+        AVAudioUnit._instantiate(with: _Self.ComponentDescription) { [weak self] avAudioUnit in\n+            guard let strongSelf = self else {\n+                AKLog(\"Error: self is nil\")\n+                return\n+            }\n+            strongSelf.avAudioNode = avAudioUnit\n+            strongSelf.internalAU = avAudioUnit.auAudioUnit as? AKAudioUnitType\n+\n+            input?.connect(to: self!)\n+        }\n+\n+        guard let tree = internalAU?.parameterTree else {\n+            AKLog(\"Parameter Tree Failed\")\n+            return\n+        }\n+\n+        self.masterVolumeParameter = tree[\"masterVolume\"]\n+        self.pitchBendParameter = tree[\"pitchBend\"]\n+        self.vibratoDepthParameter = tree[\"vibratoDepth\"]\n+        self.filterCutoffParameter = tree[\"filterCutoff\"]\n+        self.filterResonanceParameter = tree[\"filterResonance\"]\n+        self.ampAttackTimeParameter = tree[\"ampAttackTime\"]\n+        self.ampDecayTimeParameter = tree[\"ampDecayTime\"]\n+        self.ampSustainLevelParameter = tree[\"ampSustainLevel\"]\n+        self.ampReleaseTimeParameter = tree[\"ampReleaseTime\"]\n+        self.filterAttackTimeParameter = tree[\"filterAttackTime\"]\n+        self.filterDecayTimeParameter = tree[\"filterDecayTime\"]\n+        self.filterSustainLevelParameter = tree[\"filterSustainLevel\"]\n+        self.filterReleaseTimeParameter = tree[\"filterReleaseTime\"]\n+        self.filterEnableParameter = tree[\"filterEnable\"]\n+\n+        token = tree.token(byAddingParameterObserver: { [weak self] _, _ in\n+\n+            guard let _ = self else {\n+                AKLog(\"Unable to create strong reference to self\")\n+                return\n+            } // Replace _ with strongSelf if needed\n+            DispatchQueue.main.async {\n+                // This node does not change its own values so we won't add any\n+                // value observing, but if you need to, this is where that goes.\n+            }\n+        })\n+\n+        self.internalAU?.setParameterImmediately(.masterVolumeParam, value: masterVolume)\n+        self.internalAU?.setParameterImmediately(.pitchBendParam, value: pitchBend)\n+        self.internalAU?.setParameterImmediately(.vibratoDepthParam, value: vibratoDepth)\n+        self.internalAU?.setParameterImmediately(.filterCutoffParam, value: filterCutoff)\n+        self.internalAU?.setParameterImmediately(.filterResonanceParam, value: filterResonance)\n+        self.internalAU?.setParameterImmediately(.ampAttackTimeParam, value: ampAttackTime)\n+        self.internalAU?.setParameterImmediately(.ampDecayTimeParam, value: ampDecayTime)\n+        self.internalAU?.setParameterImmediately(.ampSustainLevelParam, value: ampSustainLevel)\n+        self.internalAU?.setParameterImmediately(.ampReleaseTimeParam, value: ampReleaseTime)\n+        self.internalAU?.setParameterImmediately(.filterAttackTimeParam, value: filterAttackTime)\n+        self.internalAU?.setParameterImmediately(.filterDecayTimeParam, value: filterDecayTime)\n+        self.internalAU?.setParameterImmediately(.filterSustainLevelParam, value: filterSustainLevel)\n+        self.internalAU?.setParameterImmediately(.filterReleaseTimeParam, value: filterReleaseTime)\n+        self.internalAU?.setParameterImmediately(.filterEnableParam, value: filterEnable ? 1.0 : 0.0)\n+    }\n+\n+    open func loadAKAudioFile(sd: AKSampleDescriptor, file: AKAudioFile) {\n+        let sampleRate = Float(file.sampleRate);","path":"AudioKit/Common/Nodes/Playback/Samplers/AKSampler/AKSampler.swift","position":333,"original_position":333,"commit_id":"6f713e22a423e8a0fcbc10e92d1141c6405ed496","original_commit_id":"6f713e22a423e8a0fcbc10e92d1141c6405ed496","user":{"login":"houndci-bot","id":6697940,"avatar_url":"https://avatars0.githubusercontent.com/u/6697940?v=4","gravatar_id":"","url":"https://api.github.com/users/houndci-bot","html_url":"https://github.com/houndci-bot","followers_url":"https://api.github.com/users/houndci-bot/followers","following_url":"https://api.github.com/users/houndci-bot/following{/other_user}","gists_url":"https://api.github.com/users/houndci-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/houndci-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/houndci-bot/subscriptions","organizations_url":"https://api.github.com/users/houndci-bot/orgs","repos_url":"https://api.github.com/users/houndci-bot/repos","events_url":"https://api.github.com/users/houndci-bot/events{/privacy}","received_events_url":"https://api.github.com/users/houndci-bot/received_events","type":"User","site_admin":false},"body":"Trailing Semicolon Violation: Lines should not have trailing semicolons. (trailing_semicolon)","created_at":"2018-03-13T14:58:24Z","updated_at":"2018-03-13T14:58:24Z","html_url":"https://github.com/AudioKit/AudioKit/pull/1265#discussion_r174163024","pull_request_url":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/AudioKit/AudioKit/pulls/comments/174163024"},"html":{"href":"https://github.com/AudioKit/AudioKit/pull/1265#discussion_r174163024"},"pull_request":{"href":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265"}}},"pull_request":{"url":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265","id":174560669,"html_url":"https://github.com/AudioKit/AudioKit/pull/1265","diff_url":"https://github.com/AudioKit/AudioKit/pull/1265.diff","patch_url":"https://github.com/AudioKit/AudioKit/pull/1265.patch","issue_url":"https://api.github.com/repos/AudioKit/AudioKit/issues/1265","number":1265,"state":"open","locked":false,"title":"New sampler","user":{"login":"aure","id":13122,"avatar_url":"https://avatars1.githubusercontent.com/u/13122?v=4","gravatar_id":"","url":"https://api.github.com/users/aure","html_url":"https://github.com/aure","followers_url":"https://api.github.com/users/aure/followers","following_url":"https://api.github.com/users/aure/following{/other_user}","gists_url":"https://api.github.com/users/aure/gists{/gist_id}","starred_url":"https://api.github.com/users/aure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aure/subscriptions","organizations_url":"https://api.github.com/users/aure/orgs","repos_url":"https://api.github.com/users/aure/repos","events_url":"https://api.github.com/users/aure/events{/privacy}","received_events_url":"https://api.github.com/users/aure/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-03-13T05:19:08Z","updated_at":"2018-03-13T14:58:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"55e5ee49cf283f3d99c9531f0f73a4bfc95968ed","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265/commits","review_comments_url":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265/comments","review_comment_url":"https://api.github.com/repos/AudioKit/AudioKit/pulls/comments{/number}","comments_url":"https://api.github.com/repos/AudioKit/AudioKit/issues/1265/comments","statuses_url":"https://api.github.com/repos/AudioKit/AudioKit/statuses/6f713e22a423e8a0fcbc10e92d1141c6405ed496","head":{"label":"AudioKit:new-sampler","ref":"new-sampler","sha":"6f713e22a423e8a0fcbc10e92d1141c6405ed496","user":{"login":"AudioKit","id":6593633,"avatar_url":"https://avatars0.githubusercontent.com/u/6593633?v=4","gravatar_id":"","url":"https://api.github.com/users/AudioKit","html_url":"https://github.com/AudioKit","followers_url":"https://api.github.com/users/AudioKit/followers","following_url":"https://api.github.com/users/AudioKit/following{/other_user}","gists_url":"https://api.github.com/users/AudioKit/gists{/gist_id}","starred_url":"https://api.github.com/users/AudioKit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AudioKit/subscriptions","organizations_url":"https://api.github.com/users/AudioKit/orgs","repos_url":"https://api.github.com/users/AudioKit/repos","events_url":"https://api.github.com/users/AudioKit/events{/privacy}","received_events_url":"https://api.github.com/users/AudioKit/received_events","type":"Organization","site_admin":false},"repo":{"id":16096528,"name":"AudioKit","full_name":"AudioKit/AudioKit","owner":{"login":"AudioKit","id":6593633,"avatar_url":"https://avatars0.githubusercontent.com/u/6593633?v=4","gravatar_id":"","url":"https://api.github.com/users/AudioKit","html_url":"https://github.com/AudioKit","followers_url":"https://api.github.com/users/AudioKit/followers","following_url":"https://api.github.com/users/AudioKit/following{/other_user}","gists_url":"https://api.github.com/users/AudioKit/gists{/gist_id}","starred_url":"https://api.github.com/users/AudioKit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AudioKit/subscriptions","organizations_url":"https://api.github.com/users/AudioKit/orgs","repos_url":"https://api.github.com/users/AudioKit/repos","events_url":"https://api.github.com/users/AudioKit/events{/privacy}","received_events_url":"https://api.github.com/users/AudioKit/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AudioKit/AudioKit","description":"Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS","fork":false,"url":"https://api.github.com/repos/AudioKit/AudioKit","forks_url":"https://api.github.com/repos/AudioKit/AudioKit/forks","keys_url":"https://api.github.com/repos/AudioKit/AudioKit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AudioKit/AudioKit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AudioKit/AudioKit/teams","hooks_url":"https://api.github.com/repos/AudioKit/AudioKit/hooks","issue_events_url":"https://api.github.com/repos/AudioKit/AudioKit/issues/events{/number}","events_url":"https://api.github.com/repos/AudioKit/AudioKit/events","assignees_url":"https://api.github.com/repos/AudioKit/AudioKit/assignees{/user}","branches_url":"https://api.github.com/repos/AudioKit/AudioKit/branches{/branch}","tags_url":"https://api.github.com/repos/AudioKit/AudioKit/tags","blobs_url":"https://api.github.com/repos/AudioKit/AudioKit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AudioKit/AudioKit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AudioKit/AudioKit/git/refs{/sha}","trees_url":"https://api.github.com/repos/AudioKit/AudioKit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AudioKit/AudioKit/statuses/{sha}","languages_url":"https://api.github.com/repos/AudioKit/AudioKit/languages","stargazers_url":"https://api.github.com/repos/AudioKit/AudioKit/stargazers","contributors_url":"https://api.github.com/repos/AudioKit/AudioKit/contributors","subscribers_url":"https://api.github.com/repos/AudioKit/AudioKit/subscribers","subscription_url":"https://api.github.com/repos/AudioKit/AudioKit/subscription","commits_url":"https://api.github.com/repos/AudioKit/AudioKit/commits{/sha}","git_commits_url":"https://api.github.com/repos/AudioKit/AudioKit/git/commits{/sha}","comments_url":"https://api.github.com/repos/AudioKit/AudioKit/comments{/number}","issue_comment_url":"https://api.github.com/repos/AudioKit/AudioKit/issues/comments{/number}","contents_url":"https://api.github.com/repos/AudioKit/AudioKit/contents/{+path}","compare_url":"https://api.github.com/repos/AudioKit/AudioKit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AudioKit/AudioKit/merges","archive_url":"https://api.github.com/repos/AudioKit/AudioKit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AudioKit/AudioKit/downloads","issues_url":"https://api.github.com/repos/AudioKit/AudioKit/issues{/number}","pulls_url":"https://api.github.com/repos/AudioKit/AudioKit/pulls{/number}","milestones_url":"https://api.github.com/repos/AudioKit/AudioKit/milestones{/number}","notifications_url":"https://api.github.com/repos/AudioKit/AudioKit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AudioKit/AudioKit/labels{/name}","releases_url":"https://api.github.com/repos/AudioKit/AudioKit/releases{/id}","deployments_url":"https://api.github.com/repos/AudioKit/AudioKit/deployments","created_at":"2014-01-21T08:16:07Z","updated_at":"2018-03-13T12:04:16Z","pushed_at":"2018-03-13T14:55:45Z","git_url":"git://github.com/AudioKit/AudioKit.git","ssh_url":"git@github.com:AudioKit/AudioKit.git","clone_url":"https://github.com/AudioKit/AudioKit.git","svn_url":"https://github.com/AudioKit/AudioKit","homepage":"http://audiokit.io/","size":207207,"stargazers_count":5027,"watchers_count":5027,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":755,"mirror_url":null,"archived":false,"open_issues_count":23,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":755,"open_issues":23,"watchers":5027,"default_branch":"master"}},"base":{"label":"AudioKit:develop","ref":"develop","sha":"67a0257552e04a65a038e1ec625c63501be23ada","user":{"login":"AudioKit","id":6593633,"avatar_url":"https://avatars0.githubusercontent.com/u/6593633?v=4","gravatar_id":"","url":"https://api.github.com/users/AudioKit","html_url":"https://github.com/AudioKit","followers_url":"https://api.github.com/users/AudioKit/followers","following_url":"https://api.github.com/users/AudioKit/following{/other_user}","gists_url":"https://api.github.com/users/AudioKit/gists{/gist_id}","starred_url":"https://api.github.com/users/AudioKit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AudioKit/subscriptions","organizations_url":"https://api.github.com/users/AudioKit/orgs","repos_url":"https://api.github.com/users/AudioKit/repos","events_url":"https://api.github.com/users/AudioKit/events{/privacy}","received_events_url":"https://api.github.com/users/AudioKit/received_events","type":"Organization","site_admin":false},"repo":{"id":16096528,"name":"AudioKit","full_name":"AudioKit/AudioKit","owner":{"login":"AudioKit","id":6593633,"avatar_url":"https://avatars0.githubusercontent.com/u/6593633?v=4","gravatar_id":"","url":"https://api.github.com/users/AudioKit","html_url":"https://github.com/AudioKit","followers_url":"https://api.github.com/users/AudioKit/followers","following_url":"https://api.github.com/users/AudioKit/following{/other_user}","gists_url":"https://api.github.com/users/AudioKit/gists{/gist_id}","starred_url":"https://api.github.com/users/AudioKit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AudioKit/subscriptions","organizations_url":"https://api.github.com/users/AudioKit/orgs","repos_url":"https://api.github.com/users/AudioKit/repos","events_url":"https://api.github.com/users/AudioKit/events{/privacy}","received_events_url":"https://api.github.com/users/AudioKit/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AudioKit/AudioKit","description":"Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS","fork":false,"url":"https://api.github.com/repos/AudioKit/AudioKit","forks_url":"https://api.github.com/repos/AudioKit/AudioKit/forks","keys_url":"https://api.github.com/repos/AudioKit/AudioKit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AudioKit/AudioKit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AudioKit/AudioKit/teams","hooks_url":"https://api.github.com/repos/AudioKit/AudioKit/hooks","issue_events_url":"https://api.github.com/repos/AudioKit/AudioKit/issues/events{/number}","events_url":"https://api.github.com/repos/AudioKit/AudioKit/events","assignees_url":"https://api.github.com/repos/AudioKit/AudioKit/assignees{/user}","branches_url":"https://api.github.com/repos/AudioKit/AudioKit/branches{/branch}","tags_url":"https://api.github.com/repos/AudioKit/AudioKit/tags","blobs_url":"https://api.github.com/repos/AudioKit/AudioKit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AudioKit/AudioKit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AudioKit/AudioKit/git/refs{/sha}","trees_url":"https://api.github.com/repos/AudioKit/AudioKit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AudioKit/AudioKit/statuses/{sha}","languages_url":"https://api.github.com/repos/AudioKit/AudioKit/languages","stargazers_url":"https://api.github.com/repos/AudioKit/AudioKit/stargazers","contributors_url":"https://api.github.com/repos/AudioKit/AudioKit/contributors","subscribers_url":"https://api.github.com/repos/AudioKit/AudioKit/subscribers","subscription_url":"https://api.github.com/repos/AudioKit/AudioKit/subscription","commits_url":"https://api.github.com/repos/AudioKit/AudioKit/commits{/sha}","git_commits_url":"https://api.github.com/repos/AudioKit/AudioKit/git/commits{/sha}","comments_url":"https://api.github.com/repos/AudioKit/AudioKit/comments{/number}","issue_comment_url":"https://api.github.com/repos/AudioKit/AudioKit/issues/comments{/number}","contents_url":"https://api.github.com/repos/AudioKit/AudioKit/contents/{+path}","compare_url":"https://api.github.com/repos/AudioKit/AudioKit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AudioKit/AudioKit/merges","archive_url":"https://api.github.com/repos/AudioKit/AudioKit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AudioKit/AudioKit/downloads","issues_url":"https://api.github.com/repos/AudioKit/AudioKit/issues{/number}","pulls_url":"https://api.github.com/repos/AudioKit/AudioKit/pulls{/number}","milestones_url":"https://api.github.com/repos/AudioKit/AudioKit/milestones{/number}","notifications_url":"https://api.github.com/repos/AudioKit/AudioKit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AudioKit/AudioKit/labels{/name}","releases_url":"https://api.github.com/repos/AudioKit/AudioKit/releases{/id}","deployments_url":"https://api.github.com/repos/AudioKit/AudioKit/deployments","created_at":"2014-01-21T08:16:07Z","updated_at":"2018-03-13T12:04:16Z","pushed_at":"2018-03-13T14:55:45Z","git_url":"git://github.com/AudioKit/AudioKit.git","ssh_url":"git@github.com:AudioKit/AudioKit.git","clone_url":"https://github.com/AudioKit/AudioKit.git","svn_url":"https://github.com/AudioKit/AudioKit","homepage":"http://audiokit.io/","size":207207,"stargazers_count":5027,"watchers_count":5027,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":755,"mirror_url":null,"archived":false,"open_issues_count":23,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":755,"open_issues":23,"watchers":5027,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265"},"html":{"href":"https://github.com/AudioKit/AudioKit/pull/1265"},"issue":{"href":"https://api.github.com/repos/AudioKit/AudioKit/issues/1265"},"comments":{"href":"https://api.github.com/repos/AudioKit/AudioKit/issues/1265/comments"},"review_comments":{"href":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265/comments"},"review_comment":{"href":"https://api.github.com/repos/AudioKit/AudioKit/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/AudioKit/AudioKit/pulls/1265/commits"},"statuses":{"href":"https://api.github.com/repos/AudioKit/AudioKit/statuses/6f713e22a423e8a0fcbc10e92d1141c6405ed496"}},"author_association":"OWNER"}}
{"actor":{"display_login":"houndci-bot"}}