Skip to content

AudioToolbox macOS xcode14.0 rc

Israel Soto edited this page Sep 7, 2022 · 1 revision

#AudioToolbox.framework

diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h	2022-08-06 02:26:06.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnit.h	2022-08-03 21:04:40.000000000 -0500
@@ -12,7 +12,6 @@
 #ifdef __OBJC2__
 
 #import <AudioToolbox/AUParameters.h>
-#import <AudioToolbox/AudioUnitProperties.h>
 #import <Foundation/NSExtensionRequestHandling.h>
 #import <CoreMIDI/MIDIServices.h>
 
@@ -33,8 +32,6 @@
 
 @protocol AUAudioUnitFactory;
 
-@protocol AUMessageChannel;
-
 // =================================================================================================
 
 /*!	@typedef	AUAudioUnitStatus
@@ -42,6 +39,14 @@
 */
 typedef OSStatus AUAudioUnitStatus;
 
+/*!	@typedef	AUEventSampleTime
+	@brief		Expresses time as a sample count.
+	@discussion
+		Sample times are normally positive, but hosts can propagate HAL sample times through audio
+		units, and HAL sample times can be small negative numbers.
+*/
+typedef int64_t AUEventSampleTime;
+
 /*!	@var		AUEventSampleTimeImmediate
 	@brief		A special value of AUEventSampleTime indicating "immediately."
 	@discussion
@@ -689,10 +694,7 @@
 		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 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.
+		Note: This block should be preferred over MIDIOutputEventBlock going forward.
  
 		Host should setup in the following order:
 		 - Set hostMIDIProtocol
@@ -1144,21 +1146,6 @@
 */
 @property (nonatomic, nullable) AUMIDICIProfileChangedBlock profileChangedBlock API_AVAILABLE(macos(10.14), ios(12.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
 
-/*!	@method		messageChannelFor:
-	@brief		Returns an object for bidirectional communication between an Audio Unit and its host.
-	@discussion
-		Message channels provide a flexible way for custom data exchange between an Audio Unit and its host.
-		An Audio Unit can support multiple message channels which are identified by the `channelName`.
-		The message channel object's lifetime is managed by the host. Message channel objects should be designed
-		in such a way that they could outlive the AU that vended them.
-		For further details see discussion for `AUMessageChannel`.
-	@param	channelName
-		The name of the message channel to be returned by the Audio Unit if supported.
-	@return
-		An object that conforms to the `AUMessageChannel` protocol.
-*/
-- (id<AUMessageChannel>)messageChannelFor:(NSString *)channelName API_AVAILABLE(macos(13.0), ios(16.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
-
 @end
 
 // =================================================================================================
@@ -1501,57 +1488,6 @@
 
 @end
 
-
-// =================================================================================================
-
-
-/*!	@typedef	CallHostBlock
-	@brief		Block that hosts provide to AU message channels to be called back by the AU.
-	@param	message
-		An NSDictionary with custom data. The allowed classes for key and value types are
-		NSArray, NSDictionary, NSOrderedSet, NSSet, NSString, NSData, NSNull, NSNumber, NSDate
-	@return
-		An NSDictionary with custom data. The allowed classes for key and value types are
-		NSArray, NSDictionary, NSOrderedSet, NSSet, NSString, NSData, NSNull, NSNumber, NSDate
-*/
-typedef NSDictionary * _Nonnull (^CallHostBlock)(NSDictionary *message);
-
-
-/*!	@protocol	AUMessageChannel
-	@brief		The protocol which objects returned from `[AUAudioUnit messageChannelFor:]` have to conform to.
-	@discussion
-		Audio Units and hosts that have special needs of communication, e.g. to exchange musical context required for better audio processing,
-		can implement a communication object to exchange messages in form of NSDictionaries. An Audio Unit would need to implement
-		a class conforming to the AUMessageChannel protocol and return an instance via `[AUAudioUnit messageChannelFor:]`. A host can query
-		the instance via the channel name.
-		The protocol offers a method to send messages to the AU and a block to send messages to the host.
-*/
-API_AVAILABLE(macos(13.0), ios(16.0)) __WATCHOS_PROHIBITED __TVOS_PROHIBITED
-@protocol AUMessageChannel
-
-@optional
-
-/*!	@method		callAudioUnit:
-	@brief		Calls the Audio Unit with custom data message.
-	@param	message
-		An NSDictionary with custom data. The allowed classes for key and value types are
-		NSArray, NSDictionary, NSOrderedSet, NSSet, NSString, NSData, NSNull, NSNumber, NSDate
-	@return
-		An NSDictionary with custom data. The allowed classes for key and value types are
-		NSArray, NSDictionary, NSOrderedSet, NSSet, NSString, NSData, NSNull, NSNumber, NSDate
-*/
-- (NSDictionary *)callAudioUnit:(NSDictionary *)message;
-
-/*!	@property	sendMessageToHostBlock
-	@brief		A callback for the AU to send a message to the host.
-	@discussion
-		The host has to set a block on this property.
-*/
-@property (NS_NONATOMIC_IOSONLY, copy, nullable) CallHostBlock callHostBlock;
-
-@end
-
-
 NS_ASSUME_NONNULL_END
 
 #endif // __OBJC2__
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h	2022-08-06 02:27:57.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUAudioUnitImplementation.h	2022-08-03 21:04:40.000000000 -0500
@@ -430,20 +430,6 @@
 */
 API_AVAILABLE(macos(10.11), ios(9.0), watchos(2.0), tvos(9.0))
 @interface AUAudioUnitV2Bridge : AUAudioUnit
-
-/*! @property audioUnit
-    @brief	  The underlying v2 AudioUnit
-	@discussion
-		We generally discourage interacting with the underlying v2 AudioUnit directly and
-		recommend using the v3 equivalent methods and properties from AUAudioUnitV2Bridge.
-		
-		In some rare cases it may be desirable to interact with the v2 AudioUnit.
-		For example, a v2 plugin may define custom properties that are not bridged to v3.
-		Implementors can sublcass AUAudioUnitV2Bridge and call the v2 API methods
-		AudioUnitGetProperty / AudioUnitSetProperty with the v2 AudioUnit.
-*/
-@property (nonatomic, readonly) AudioUnit audioUnit API_AVAILABLE(macos(11.0), ios(14.0), watchos(7.0), tvos(14.0));
-
 @end
 
 // =================================================================================================
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h	2022-08-05 15:52:34.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AUComponent.h	2022-08-03 21:04:40.000000000 -0500
@@ -453,9 +453,7 @@
 
     @constant       kAudioUnitSubType_Reverb2
                     A lite reverb that can be used to simulate various and different spaces
- 
-	@constant       kAudioUnitSubType_AUSoundIsolation
-					An audio unit that can be used to isolate a specified sound type
+
 */
 CF_ENUM(UInt32) {
 	kAudioUnitSubType_PeakLimiter			= 'lmtr',
@@ -470,8 +468,7 @@
 	kAudioUnitSubType_Delay					= 'dely',
 	kAudioUnitSubType_SampleDelay			= 'sdly',
 	kAudioUnitSubType_NBandEQ				= 'nbeq',
-    kAudioUnitSubType_Reverb2               = 'rvb2',
-	kAudioUnitSubType_AUSoundIsolation API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) = 'vois',
+    kAudioUnitSubType_Reverb2               = 'rvb2'
 };
 
 #if !TARGET_OS_IPHONE
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h	2022-08-06 02:27:57.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioCodec.h	2022-08-03 21:04:40.000000000 -0500
@@ -738,10 +738,7 @@
 						than the requested number of output packets may have been
 						produced. Check the value returned in ioNumberPackets for the
 						actual number produced. Note that not all formats have EOF
-						markers in them.
-     @constant        kAudioCodecProduceOutputPacketSuccessConcealed
-                        No input packets were provided, but the decoder supports packet
-                        loss concealment, so output packets were still created.
+						markers in them. 
 */
 CF_ENUM(UInt32)
 {
@@ -749,8 +746,7 @@
 	kAudioCodecProduceOutputPacketSuccess					= 2,	
 	kAudioCodecProduceOutputPacketSuccessHasMore			= 3,		
 	kAudioCodecProduceOutputPacketNeedsMoreInputData		= 4,		
-	kAudioCodecProduceOutputPacketAtEOF						= 5,
-    kAudioCodecProduceOutputPacketSuccessConcealed          = 6
+	kAudioCodecProduceOutputPacketAtEOF						= 5		
 };
 
 
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h	2022-08-06 02:26:06.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioComponent.h	2022-08-03 21:04:41.000000000 -0500
@@ -606,7 +606,7 @@
 extern OSStatus
 AudioComponentCopyConfigurationInfo(    AudioComponent      inComponent,
                                         CFDictionaryRef __nullable * __nonnull outConfigurationInfo)
-                                                    API_AVAILABLE(macos(10.7), ios(16.0)) API_UNAVAILABLE(watchos, tvos);
+                                                    API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, watchos, tvos);
 
 /*!
 	 @enum		 AudioComponentValidationResult
@@ -658,50 +658,8 @@
 AudioComponentValidate( AudioComponent					inComponent,
 						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);
-
+                                                    API_AVAILABLE(macos(10.7)) API_UNAVAILABLE(ios, 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-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h	2022-08-05 12:39:35.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioConverter.h	2022-08-03 21:04:40.000000000 -0500
@@ -662,8 +662,6 @@
                     number of packets of audio data actually being provided for input, or 0 if
                     there is no more input.
     @param      ioData
-                    This points to an audio buffer list to be filled in by the callback to refer to the
-                    buffer(s) provided by the callback.
                     On exit, the members of ioData should be set to point to the audio data
                     being provided for input.
     @param      outDataPacketDescription
@@ -677,29 +675,12 @@
 	
 	The AudioConverter requests a minimum number of packets (*ioNumberDataPackets).
 	The callback may return one or more packets. If this is less than the minimum,
-	the callback will simply be called again in the near future. Note that ioNumberDataPackets counts
-	packets in terms of the converter's input format (not its output format).
+	the callback will simply be called again in the near future.
 
-	The callback may be asked to provide multiple input packets in a single call, even for compressed
-	formats.  The callback must update the number of packets pointed to by ioNumberDataPackets
-	to indicate the number of packets actually being provided, and if the packets require packet
-	descriptions, these must be filled into the array pointed to by outDataPacketDescription, one
-	packet description per packet.
-
-	The callback is given an audio buffer list pointed to by ioData.  This buffer list may refer to
-	existing buffers owned and allocated by the audio converter, in which case the callback may
-	use them and copy input audio data into them.  However, the buffer list may also be empty
-	(mDataByteSize == 0 and/or mData == NULL), in which case the callback must provide its own
-	buffers.  The callback manipulates the members of ioData to point to one or more buffers
+	The callback manipulates the members of ioData to point to one or more buffers
 	of audio data (multiple buffers are used with non-interleaved PCM data). The
-	callback is responsible for not freeing or altering this buffer until it is called again.
-
-	For input data that varies from one packet to another in either size (bytes per packet)
-	or duration (frames per packet), such as when decoding compressed audio, the callback
-	should expect outDataPacketDescription to be non-null and point to array of packet descriptions,
-	which the callback must fill in, one for every packet provided by the callback.  Each packet must
-	have a valid packet description, regardless of whether or not these descriptions are different
-	from each other.  Packet descriptions are required even if there is only one packet.
+	callback is responsible for not freeing or altering this buffer until it is
+	called again.
 
 	If the callback returns an error, it must return zero packets of data.
 	AudioConverterFillComplexBuffer will stop producing output and return whatever
@@ -744,12 +725,6 @@
 
 	Produces a buffer list of output data from an AudioConverter. The supplied input
 	callback function is called whenever necessary.
-	
-	If the output format uses packet descriptions, such as most compressed formats where packets
-	vary in size or duration, the caller is expected to provide a buffer for holding packet descriptions,
-	pointed to by outPacketDescription.  The array must have the capacity to hold a packet description
-	for each output packet that may be written.  A packet description array is expected even if only
-	a single output packet is to be written.
 */
 extern OSStatus
 AudioConverterFillComplexBuffer(    AudioConverterRef                   inAudioConverter,
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioQueue.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioQueue.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioQueue.h	2022-08-05 15:52:34.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioQueue.h	2022-08-03 21:04:39.000000000 -0500
@@ -135,8 +135,8 @@
     				Access to the required codec is not permitted (possibly due to incompatible
     				AudioSession settings on iOS).
     @constant   kAudioQueueErr_QueueInvalidated
-    				On iOS derived platforms (excluding Catalyst), the audio server has exited,
-    				causing this audio queue to have become invalid.
+    				On iOS, the audio server has exited, causing this audio queue to have become
+    				invalid.
     @constant   kAudioQueueErr_TooManyTaps
     				There can only be one processing tap per audio queue.
     @constant   kAudioQueueErr_InvalidTapContext
@@ -1625,8 +1625,7 @@
     @param      inTime
         A pointer to a structure containing the time to be translated.
     @param      outTime
-        On entry, mFlags indicate the desired translations. On exit, mFlags indicates which
-        of the requested translated fields were successfully populated.
+        A pointer to the the translated time.
     @result
         An OSStatus result code.
 */
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h	2022-08-06 02:27:57.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioToolbox.h	2022-08-03 21:04:40.000000000 -0500
@@ -15,11 +15,8 @@
 #include <TargetConditionals.h>
 
 #include <AudioToolbox/AudioCodec.h>
-#include <AudioToolbox/AUAudioUnit.h>
-#include <AudioToolbox/AUAudioUnitImplementation.h>
 #include <AudioToolbox/AUComponent.h>
 #include <AudioToolbox/AUGraph.h>
-#include <AudioToolbox/AUParameters.h>
 #include <AudioToolbox/AudioComponent.h>
 #include <AudioToolbox/AudioConverter.h>
 #include <AudioToolbox/AudioFile.h>
@@ -30,7 +27,6 @@
 #include <AudioToolbox/AudioServices.h>
 #include <AudioToolbox/AudioUnitParameters.h>
 #include <AudioToolbox/AudioUnitProperties.h>
-#include <AudioToolbox/AudioUnitUtilities.h>
 #include <AudioToolbox/AudioWorkInterval.h>
 #include <AudioToolbox/CAFFile.h>
 #include <AudioToolbox/CAShow.h>
@@ -41,10 +37,18 @@
 #if !TARGET_OS_IPHONE
 	// macOS only
 	#include <AudioToolbox/AudioFileComponent.h>
+	#include <AudioToolbox/AudioUnitUtilities.h>
 	#include <AudioToolbox/AUMIDIController.h>
 	#include <AudioToolbox/CoreAudioClock.h>
 #endif
 
+#ifdef __OBJC2__
+	// iOS (all architectures), macOS 64-bit only
+	#import <AudioToolbox/AUAudioUnit.h>
+	#import <AudioToolbox/AUAudioUnitImplementation.h>
+	#import <AudioToolbox/AUParameters.h>
+#endif
+
 #if TARGET_OS_OSX || TARGET_OS_IOS
 	#include <AudioToolbox/AudioSession.h>
 #endif
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h	2022-08-05 12:39:35.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitParameters.h	2022-08-03 21:04:39.000000000 -0500
@@ -344,28 +344,18 @@
 		// Global, Cents, -2400 -> 2400, 1.0
 	kNewTimePitchParam_Pitch						= 1,
 	
-		// 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.
+		// 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.
 		// Global, generic, 3.0 -> 32.0, 8.0
-	kNewTimePitchParam_Smoothness						= 4,
+	kNewTimePitchParam_Overlap						= 4,
 	
-	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_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 preserve the original
-		// spectral phase relationships. It also sets the stretch factor to 1 at
-		// those points.
+		// 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.
 		// Global, Boolean, 0->1, 1
-    kNewTimePitchParam_EnableTransientPreservation  = 7
+	kNewTimePitchParam_EnablePeakLocking			= 6
 };
 
 // Parameters for the AUSampler unit
@@ -703,25 +693,6 @@
 #endif
 };
 
-// Parameters for the AUSoundIsolation unit
-CF_ENUM(AudioUnitParameterID) {
-    // Global, Percent, 0->100, 100
-    kAUSoundIsolationParam_WetDryMixPercent API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) = 0,
-    // Global, Indexed, 1->1, 1
-    kAUSoundIsolationParam_SoundToIsolate API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) = 1,
-};
-
-/*!
- @enum          AUSoundIsolation sound types
- @brief         Constants available as values for parameter kAUSoundIsolation_SoundToIsolate.
- 
- @constant      kAUSoundIsolationSoundType_Voice
- Isolate voice signal from the input signal.
- */
-CF_ENUM(long) {
-    kAUSoundIsolationSoundType_Voice API_AVAILABLE(macos(13.0), ios(16.0)) API_UNAVAILABLE(tvos) API_UNAVAILABLE(watchos) = 1
-};
-
 #pragma mark Apple Specific - Desktop
 
 #if !TARGET_OS_IPHONE
diff -ruN /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h
--- /Applications/Xcode_14.0.0-beta6.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h	2022-08-05 12:39:34.000000000 -0500
+++ /Applications/Xcode_14.0.0-rc.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/AudioToolbox.framework/Headers/AudioUnitProperties.h	2022-08-03 21:04:39.000000000 -0500
@@ -1390,7 +1390,7 @@
 	@struct         MIDIEventList
 	@abstract       Forward declaration of MIDIEventList found in <CoreMIDI/MIDIServices.h>
 */
-struct MIDIEventList;
+typedef struct MIDIEventList MIDIEventList;
 
 /*!    @typedef    AUEventSampleTime
 	@brief        Expresses time as a sample count.
@@ -1816,21 +1816,6 @@
 
 #define kAudioUnitConfigurationInfo_SupportedChannelLayoutTags	"SupportedChannelLayoutTags"
 
-/*!
- @define		kAudioUnitConfigurationInfo_MIDIProtocol
- @discussion	A signed 32-bit integer representing the audio unit's MIDI protocol. This should be one of the
-				values in the MIDIProtocolID enum (see <CoreMIDI/MIDIServices.h>).
- */
-
-#define kAudioUnitConfigurationInfo_MIDIProtocol	"MIDIProtocol"
-
-/*!
- @define		kAudioUnitConfigurationInfo_MigrateFromPlugin
- @discussion	An array of NSData representing byte encoded AudioUnitOtherPluginDescs to migrate from.
- */
-
-#define kAudioUnitConfigurationInfo_MigrateFromPlugin	"MigrateFromPlugin"
-
 #pragma mark -
 #pragma mark OS X Availability
 
@@ -2636,7 +2621,7 @@
  */
 CF_ENUM(AudioUnitPropertyID) {
 	kAUVoiceIOProperty_MutedSpeechActivityEventListener = 2106
-} API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(macos, watchos, tvos, macCatalyst);
+} API_AVAILABLE(ios(15.0)) API_UNAVAILABLE(macos, watchos, tvos);
 
 #pragma mark - AUVoiceProcessing unit deprecated properties
 
@@ -2891,16 +2876,6 @@
                           
                         Enables or disables head-tracking using AirPods motion sensors. This tracking will
                         apply a second rotation on top of head yaw, pitch, and roll parameters.
- 
-    @constant       kAudioUnitProperty_SpatialMixerPersonalizedHRTFMode
-                        Scope:          Global
-                        Value Type:     UInt32
-                        Access:         Read / Write
-    @discussion     Sets personalized head-related transfer function (HRTF) mode for spatial audio rendering
-                    with kSpatializationAlgorithm_UseOutputType and kSpatialMixerOutputType_Headphones.
-                    This property becomes read-only if personalized HRTF is unavailable or unsupported.
-    @seealso        AUSpatialMixerPersonalizedHRTFMode
-
 */
 CF_ENUM(AudioUnitPropertyID) {
 	kAudioUnitProperty_ReverbRoomType						= 10,
@@ -2912,8 +2887,7 @@
 	kAudioUnitProperty_SpatialMixerAttenuationCurve			= 3013,
 	kAudioUnitProperty_SpatialMixerOutputType				= 3100,
 	kAudioUnitProperty_SpatialMixerPointSourceInHeadMode	= 3103,
-    kAudioUnitProperty_SpatialMixerEnableHeadTracking API_AVAILABLE(macos(12.3)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 3111,
-    kAudioUnitProperty_SpatialMixerPersonalizedHRTFMode API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 3113
+    kAudioUnitProperty_SpatialMixerEnableHeadTracking API_AVAILABLE(macos(12.3)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 3111
 };
 
 /*!
@@ -3016,25 +2990,6 @@
 };
 
 /*!
-    @enum            Property values for kAudioUnitProperty_SpatialMixerPersonalizedHRTFMode
-
-    @constant        kSpatialMixerPersonalizedHRTFMode_Off
-    @discussion      Use generic head-related transfer function (HRTF).
-
-    @constant        kSpatialMixerPersonalizedHRTFMode_On
-    @discussion      Use personalized head-related transfer function (HRTF), if available.
-
-    @constant        kSpatialMixerPersonalizedHRTFMode_Auto
-    @discussion      Follow system preferences to choose between personalized vs generic
-                     head-related transfer function (HRTF).
-*/
-typedef CF_ENUM(UInt32, AUSpatialMixerPersonalizedHRTFMode) {
-    kSpatialMixerPersonalizedHRTFMode_Off CF_SWIFT_NAME(off) API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 0,
-    kSpatialMixerPersonalizedHRTFMode_On CF_SWIFT_NAME(on) API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 1,
-    kSpatialMixerPersonalizedHRTFMode_Auto CF_SWIFT_NAME(auto) API_AVAILABLE(macos(13.0)) API_UNAVAILABLE(ios, tvos) API_UNAVAILABLE(watchos) = 2
-};
-
-/*!
 	@enum			Property values for kAudioUnitProperty_SpatialMixerOutputType
 
 	@constant		kSpatialMixerOutputType_Headphones
Clone this wiki locally