New for 1.3.2 (2007-11-04) (class MTBuffer and descendants) o Leopard fix for incorrect use of NSConditionLocks (now uses POSIX locks and condition variables -- NSCondition would have been nice but doesn't work correctly pre-10.5) (sample app AudioMonitor) o update project to Xcode (misc) o build universal framework and universal AudioMonitor New for 1.3.1 (class MTCoreAudioDevice) o notifications (such as MTCoreAudioHardwareDeviceListDidChangeNotification) will not be sent before the first use of class MTCoreAudioDevice (class MTBuffer and descendants) o new method -close o new method -configureForSingleThreadedOperation (sample app AudioMonitor) o made MTConversionBuffer class better for general buffered sample rate conversion o new class MTVarispeedConversionBuffer. uses Varispeed and Converter AUs (misc) o new utility function MTAudioBufferListSetFrameCount() o new value transformers (between linear and decibels) for use with Cocoa Bindings New for 1.3.0 (class MTCoreAudioDevice) o new method +devicesWithName:havingStreamsForDirection:. o -description gives useful information. o new methods +allDevicesByRelation and -relatedDevices. o new delegate method -audioDeviceSomethingDidChange:. o new method -deviceSafetyOffsetFramesForDirection:. o new method -setDevicePaused:. (class MTCoreAudioStream) o -description gives useful information. (class MTCoreAudioStreamDescription) o support for localized stream description strings (see StreamDescription.strings and -bundleForDescriptionStrings) (only English so far, please feel free to submit localizations for other languages) o new methods -isLinearPCMFormat, -isCanonicalFormat, -isInterleaved, -setIsInterleaved:. o -setChannelsPerFrame: and -setIsInterleaved: will update bytesPerPacket and bytesPerFrame if the format is canonical (native, interleaved or de-interleaved). (class MTCircularQueue/MTByteBuffer) o class MTCircularQueue has been renamed to MTByteBuffer o initializer renamed to -initWithCapacity: o method -bytesInQueue renamed to -count o method -size renamed to -capacity o methods -writeBytesFrom:length: and -writeBytesWithoutBlockingFrom:length: combined to -writeFromBytes:count:waitForRoom: o methods -readBytesTo:length: and -readBytesWithoutBlockingTo:length: combined to -readToBytes:count:waitForData: o reimplemented as a subclass of MTBuffer o finally documented! (new class MTAudioBuffer) o similar in operation to MTByteBuffer, only storing N-channel Float32 frames instead of bytes o reads from and writes to AudioBufferLists (new class MTBuffer) o abstract class intended to be subclassed to create thread-safe, flow-controlled buffers, such as MTByteBuffer and MTAudioBuffer (sample app AudioMonitor) o changed MTConversionBuffer class to use an MTAudioBuffer instead of MTByteBuffer (misc) o fixed a bug where NULL CFStringRefs obtained from a successful HAL query would be used as if they were valid, causing an exception. o enabled prebinding for framework (with -seg1addr 0xB0000000). o removed internal class MTObjectProxy after i noticed that +[NSValue valueWithNonretainedObject:] does the same thing. :) o new utility functions for AudioBufferLists New for 1.2.0 (class MTCoreAudioDevice) o -deviceStart now lets you know if the device started or not. o new delegate method -audioDeviceStartDidFail:forReason: o new method -deviceMaxVariableBufferSizeInFrames. o new method -supportsNominalSampleRate:. (class MTCoreAudioStreamDescription) o -set... methods return the receiver, so sets can be chained. o new methods +nativeStreamDescription, -setNativeFormat and -isNativeFormat. o -setChannelsPerFrame: now also updates bytesPerFrame and bytesPerPacket if the stream description is in native format. o conforms to (sample app AudioMonitor) o totally changed input->output copying to deal with different sample rates, numbers of streams, etc.