-
Notifications
You must be signed in to change notification settings - Fork 520
AudioToolbox macOS xcode14.0 beta2
Manuel de la Pena edited this page Sep 6, 2022
·
5 revisions
#AudioToolbox.framework https://github.com/xamarin/xamarin-macios/pull/15877
diff -ruN /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h
--- /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h 2022-05-31 14:51:09.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h 2022-06-17 15:28:13.000000000 -0400
@@ -689,7 +689,10 @@
kMIDIProtocol_2_0, incoming events will be translated to MIDI 2.0. If hostMIDIProtocol
is not set, events will be delivered as legacy MIDI.
- Note: This block should be preferred over MIDIOutputEventBlock going forward.
+ Note: This block is cross-compatible with Audio Units using MIDIOutputEventBlock and should be
+ preferred over MIDIOutputEventBlock by hosts going forward. The framework will provide the Audio Unit
+ with both a MIDIOutputEventBlock and MIDIOutputEventListBlock, the Audio Unit is free to call either
+ block as all messages will be translated as described above.
Host should setup in the following order:
- Set hostMIDIProtocol
diff -ruN /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h
--- /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h 2022-05-31 15:01:46.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h 2022-06-17 15:25:59.000000000 -0400
@@ -659,7 +659,49 @@
CFDictionaryRef __nullable inValidationParameters,
AudioComponentValidationResult *outValidationResult)
API_AVAILABLE(macos(10.7), ios(16.0)) API_UNAVAILABLE(watchos, tvos);
-
+
+/*!
+ @function AudioComponentValidateWithResults
+ @abstract Tests a specified AudioComponent for API and behavioral conformance
+ asynchronously, returning detailed validation results.
+ @discussion Currently, only AudioUnits can can be validated. The `inCompletionHandler` callback
+ has two parameters, an `AudioComponentValidationResult` with result of the validation,
+ and a `CFDictionaryRef` which contains the details of this result.
+ This dictionary may contain the following entries:
+ "Output"
+ An array of strings, with the same content as if the AU was validated on auval.
+ "Result"
+ An `AudioComponentValidationResult` with the result of the validation
+ process. The same as what's in the `AudioComponentValidationResult`
+ in the `inCompletionHandler` and what `AudioComponentValidate`
+ currently returns.
+ "Tests"
+ An array in which each value is a dictionary and may contain:
+ "Name"
+ A descriptive name of the test.
+ "Result"
+ An `AudioComponentValidationResult` with the result of the
+ specific test.
+ "Output"
+ An array of strings with output generated by the test.
+ "WasCached"
+ `YES` if the returned result was cached from previous runs.
+ @param inComponent
+ The AudioComponent to validate.
+ @param inValidationParameters
+ A CFDictionaryRef that contains parameters for the validation operation.
+ Passing NULL for this argument tells the system to use the default
+ parameters.
+ @param inCompletionHandler
+ Completion callback. See discussion section.
+ @result an OSStatus result code.
+*/
+extern OSStatus
+AudioComponentValidateWithResults(AudioComponent inComponent,
+ CFDictionaryRef __nullable inValidationParameters,
+ void (^inCompletionHandler)(AudioComponentValidationResult, CFDictionaryRef))
+ API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(watchos, tvos);
+
/*!
@define kAudioComponentValidationParameter_TimeOut
@discussion This is a number that indicates the time in seconds to wait for a validation
diff -ruN /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h
--- /Applications/Xcode_14.0.0-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h 2022-05-31 15:01:45.000000000 -0400
+++ /Applications/Xcode_14.0.0-beta2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h 2022-06-17 14:50:15.000000000 -0400
@@ -344,24 +344,27 @@
// Global, Cents, -2400 -> 2400, 1.0
kNewTimePitchParam_Pitch = 1,
- // Overlap is the number of overlapped spectral windows that are used to produce the output.
- // The value of overlap is directly proportional to CPU cost. More overlaps can make smooth
- // passages sound smoother. For percussive sound, a lower overlap may be better.
+ // The generated output can be made to sound smoother by increasing
+ // the density of the processing time frames. The value is directly proportional
+ // to the CPU cost. When slowing down percussive audio, lower values may be better.
// Global, generic, 3.0 -> 32.0, 8.0
- kNewTimePitchParam_Overlap = 4,
+ kNewTimePitchParam_Smoothness = 4,
- // Peak locking enforces phase coherence of spectral peaks.
- // Peak locking adds some expense but results in a less "phasey"
- // or reverberant sound, sometimes also called loss of presence.
- // However the flip side is that it can sound more stuttery for some content.
+ kNewTimePitchParam_Overlap API_DEPRECATED_WITH_REPLACEMENT("kNewTimePitchParam_Smoothness", ios(2.0, 16.0), watchos(2.0, 9.0), tvos(9.0, 16.0), macos(10.0, 13.0)) = kNewTimePitchParam_Smoothness,
+
+ // Spectral phase coherence is enabled through peak locking.
+ // This adds some computation cost but results in a less "phasey"
+ // or reverberant sound.
// Global, Boolean, 0->1, 1
- kNewTimePitchParam_EnablePeakLocking = 6,
+ kNewTimePitchParam_EnableSpectralCoherence = 6,
+
+ kNewTimePitchParam_EnablePeakLocking API_DEPRECATED_WITH_REPLACEMENT("kNewTimePitchParam_EnableSpectralCoherence", ios(2.0, 16.0), watchos(2.0, 9.0), tvos(9.0, 16.0), macos(10.0, 13.0)) = kNewTimePitchParam_EnableSpectralCoherence,
- // Transient preservation uses group delay to identify transients
- // It resets the phase at points of transients to avoid smearing
- // It also reduces the stretch factor at those points to avoid smearing
- // This needs to be compensated at other frames, which can be problematic
- // Global, Boolean, 0->1, 1
+ // Transient preservation uses group delay to identify transients.
+ // It resets the phase at points of transients to preserve the original
+ // spectral phase relationships. It also sets the stretch factor to 1 at
+ // those points.
+ // Global, Boolean, 0->1, 1
kNewTimePitchParam_EnableTransientPreservation = 7
};
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status