From eb70ed935281b6b960e33f04459bc39d9bac3a51 Mon Sep 17 00:00:00 2001 From: NickCulbertson Date: Fri, 6 Sep 2024 11:19:28 -0400 Subject: [PATCH 1/3] Update Settings.sampleRate for iOS 18 --- Cookbook/Cookbook/CookbookApp.swift | 8 ++++++++ .../CookbookCommon/Recipes/MiniApps/DrumSequencer.swift | 1 + .../Recipes/MiniApps/DrumSynthesizers.swift | 1 + 3 files changed, 10 insertions(+) diff --git a/Cookbook/Cookbook/CookbookApp.swift b/Cookbook/Cookbook/CookbookApp.swift index 0bd4eee3..a54be7fb 100644 --- a/Cookbook/Cookbook/CookbookApp.swift +++ b/Cookbook/Cookbook/CookbookApp.swift @@ -11,6 +11,14 @@ struct CookbookApp: App { #if os(iOS) do { Settings.bufferLength = .short + + let deviceSampleRate = AVAudioSession.sharedInstance().sampleRate + if deviceSampleRate > Settings.sampleRate { + // Update sampleRate to 48_000. Default is 44_100. + Settings.sampleRate = deviceSampleRate + } + + try AVAudioSession.sharedInstance().setPreferredIOBufferDuration(Settings.bufferLength.duration) try AVAudioSession.sharedInstance().setCategory(.playAndRecord, options: [.defaultToSpeaker, .mixWithOthers, .allowBluetoothA2DP]) diff --git a/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSequencer.swift b/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSequencer.swift index 7e80b884..aa141af9 100644 --- a/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSequencer.swift +++ b/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSequencer.swift @@ -127,6 +127,7 @@ struct DrumSequencerView: View { conductor.start() } .onDisappear { + conductor.isPlaying = false conductor.drums.destroyEndpoint() conductor.stop() } diff --git a/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSynthesizers.swift b/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSynthesizers.swift index bc2e020c..a8e99a43 100644 --- a/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSynthesizers.swift +++ b/Cookbook/CookbookCommon/Sources/CookbookCommon/Recipes/MiniApps/DrumSynthesizers.swift @@ -64,6 +64,7 @@ struct DrumSynthesizersView: View { conductor.start() } .onDisappear { + conductor.isRunning = false conductor.stop() } } From 87109d498f059f71a8e87fa2b7c1221071b0a6eb Mon Sep 17 00:00:00 2001 From: NickCulbertson Date: Fri, 6 Sep 2024 11:26:26 -0400 Subject: [PATCH 2/3] Update MIDIKit version --- Cookbook/CookbookCommon/Package.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cookbook/CookbookCommon/Package.swift b/Cookbook/CookbookCommon/Package.swift index f236abb5..9e883245 100644 --- a/Cookbook/CookbookCommon/Package.swift +++ b/Cookbook/CookbookCommon/Package.swift @@ -20,7 +20,7 @@ let package = Package( .package(url: "https://github.com/AudioKit/Waveform", branch: "visionos"), .package(url: "https://github.com/AudioKit/Flow", from: "1.0.0"), .package(url: "https://github.com/AudioKit/PianoRoll", from: "1.0.0"), - .package(url: "https://github.com/orchetect/MIDIKit", from: "0.9.4"), + .package(url: "https://github.com/orchetect/MIDIKit", from: "0.9.7"), ], targets: [ .target( From fd5eacff5c08c23083cd8831ea74388dc2f6dbeb Mon Sep 17 00:00:00 2001 From: NickCulbertson Date: Fri, 6 Sep 2024 11:34:07 -0400 Subject: [PATCH 3/3] Hounds --- Cookbook/Cookbook/CookbookApp.swift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Cookbook/Cookbook/CookbookApp.swift b/Cookbook/Cookbook/CookbookApp.swift index a54be7fb..79899f42 100644 --- a/Cookbook/Cookbook/CookbookApp.swift +++ b/Cookbook/Cookbook/CookbookApp.swift @@ -11,14 +11,13 @@ struct CookbookApp: App { #if os(iOS) do { Settings.bufferLength = .short - + let deviceSampleRate = AVAudioSession.sharedInstance().sampleRate if deviceSampleRate > Settings.sampleRate { // Update sampleRate to 48_000. Default is 44_100. Settings.sampleRate = deviceSampleRate } - - + try AVAudioSession.sharedInstance().setPreferredIOBufferDuration(Settings.bufferLength.duration) try AVAudioSession.sharedInstance().setCategory(.playAndRecord, options: [.defaultToSpeaker, .mixWithOthers, .allowBluetoothA2DP])