iOSで使用できる Audio Unit 一覧

AUComponent.h 、または [Audio Unit Component Services Reference](https://developer.apple.com/library/ios/documentation/AudioUnit/Reference/AUComponentServicesReference/Reference/reference.html) より、<b>iOS で使用可能な Audio Unit のサブタイプ</b> を抜き出してみました。


概要説明つき。（ただし RemoteIO のようによく知られているものや、名称から役割が明らかなものは省略）


利用可能なiOSバージョンも付記してあります。これを見ると、iOS 5 でエフェクトが大量に追加され、iOS 6 でもコンバーター／ミキサーまわりが強化されたようです（個人的には delay の追加も嬉しい）。


##kAudioUnitType_Output

- kAudioUnitSubType_GenericOutput
> A generic output unit provides the start/stop API, and provides the basic 
					services to convert Linear PCM formats.

- kAudioUnitSubType_RemoteIO
- kAudioUnitSubType_VoiceProcessingIO
> This audio unit can do input as well as output. Bus 0 is used for the output 
					side, bus 1 is used to get audio input (thus, on the iPhone, it works in a 
					very similar way to the Remote I/O). This audio unit does signal processing on 
					the incoming audio (taking out any of the audio that is played from the device 
					at a given time from the incoming audio).

##kAudioUnitType_MusicDevice

- kAudioUnitSubType_Sampler
  - iOS 5.0 and later.

##kAudioUnitType_FormatConverter

- kAudioUnitSubType_AUConverter		
- kAudioUnitSubType_Varispeed
> An audio unit that can be used to control playback rate (as the rate is faster, 
					the pitch is higher). It provides a generic view, so can be used in both a UI 
					and programmatic context. It also comes in an Offline version so can be used 
					to process audio files. 

  - iOS 5.0 and later.

- kAudioUnitSubType_DeferredRenderer
> An audio unit that is used to get its input from a separate thread than the 
					thread that its render method is called. It thus allows an application to 
					introduce multiple threads into a rendering graph. There is a buffer sized 
					delay introduced between the input and output

  - iOS 6.0 and later.

- kAudioUnitSubType_Splitter
> An audio unit that provides 2 output buses and 1 input bus. The audio unit 
					splits (duplicates) the input signal to the two output buses
  - iOS 6.0 and later.

- kAudioUnitSubType_Merger
> An audio unit that provides 2 input buses and 2 output bus. The audio unit 
					merges the two inputs to the single output

  - iOS 6.0 and later.

- kAudioUnitSubType_NewTimePitch
> An audio unit that provides good quality time stretching and pitch shifting 
					while still being very fast.

  - iOS 6.0 and later.

- kAudioUnitSubType_AUiPodTimeOther
> An audio unit that provides time domain time stretching.

  - iOS 5.0 and later.

- kAudioUnitSubType_AUiPodTime
> An audio unit that provides simple (and limited) control over playback rate 
					and time.


##kAudioUnitType_Effect

- kAudioUnitSubType_PeakLimiter	
  - iOS 5.0 and later.
- kAudioUnitSubType_DynamicsProcessor
  - iOS 5.0 and later.
- kAudioUnitSubType_LowPassFilter
  - iOS 5.0 and later.
- kAudioUnitSubType_HighPassFilter
  - iOS 5.0 and later.
- kAudioUnitSubType_BandPassFilter
  - iOS 5.0 and later.
- kAudioUnitSubType_HighShelfFilter
  - iOS 5.0 and later.
- kAudioUnitSubType_LowShelfFilter
  - iOS 5.0 and later.
- kAudioUnitSubType_ParametricEQ
  - iOS 5.0 and later.
- kAudioUnitSubType_Distortion
  - iOS 5.0 and later.
- kAudioUnitSubType_Delay
  - iOS 6.0 and later.
- kAudioUnitSubType_Reverb2	
  - iOS 5.0 and later.
- kAudioUnitSubType_AUiPodEQ
- kAudioUnitSubType_NBandEQ	
  - iOS 5.0 and later.
- kAudioUnitSubType_SampleDelay
  - Available in iOS 8.0 and later.

> An audio unit that provides a time delay for a specified number of samples.


##kAudioUnitType_Mixer

- kAudioUnitSubType_MultiChannelMixer
- kAudioUnitSubType_MatrixMixer	
> An audio unit that can have any number of input and output buses with any number of channels on each bus. You configure the mix using a matrix of channels with a separate input level control for each channel. The audio unit also provides individual level control for each input-channel-to-output-channel combination, as well as level control for each output channel. Finally, the audio unit provides a global level control for the matrix as a whole.

  - iOS 6.0 and later
- kAudioUnitSubType_AU3DMixerEmbedded
  - Deprecated in iOS 9.0

##kAudioUnitType_Generator

- kAudioUnitSubType_ScheduledSoundPlayer
> A generator unit that can be used to schedule slices of audio to be played at specified times. The audio is scheduled using the time stamps for the render operation and can be scheduled from any thread.

  - iOS 5.0 and later

- kAudioUnitSubType_AudioFilePlayer
> A generator unit that is used to play a file. In OS X it presents a custom UI so can be used in a UI context as well as in a programmatic context.

  - iOS 5.0 and later


##関連記事

- [Audio Unit 再入門](http://d.hatena.ne.jp/shu223/20140506/1399406906)
- [iOS のオーディオ／サウンド処理について学べる書籍10冊＋α](http://d.hatena.ne.jp/shu223/20121125/1353877706)
- [Audio Unitのコールバック関数を登録する方法３種の比較](http://d.hatena.ne.jp/shu223/20130223/1361624406)