You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/audio_unit/mod.rs
+77Lines changed: 77 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -33,17 +33,94 @@ pub enum Element {
33
33
}
34
34
35
35
/// Represents the different kinds of Audio Units that are available.
36
+
///
37
+
/// Original documentation [here](https://developer.apple.com/library/prerelease/mac/documentation/AudioUnit/Reference/AUComponentServicesReference/index.html#//apple_ref/doc/constant_group/Audio_Unit_Types).
36
38
#[derive(Copy,Clone,Debug)]
37
39
pubenumType{
40
+
/// Provides input, output, or both input and output simultaneously.
41
+
///
42
+
/// It can be used as the head of an audio unit processing graph.
43
+
///
44
+
/// **Available** in OS X v10.2 and later.
38
45
Output = 1635086197,
46
+
/// An instrument unit can be used as a software musical instrument, such as a sampler or
47
+
/// synthesizer.
48
+
///
49
+
/// It responds to MIDI (Musical Instrument Digital Interface) control signals and can create
50
+
/// notes.
51
+
///
52
+
/// **Available** in OS X v10.2 and later.
39
53
MusicDevice = 1635085685,
54
+
/// An effect unit that can respond to MIDI control messages, typically through a mapping of
55
+
/// MIDI messages to parameters of the audio unit's DSP algorithm.
56
+
///
57
+
/// **Available** in OS X v10.2 and later.
40
58
MusicEffect = 1635085670,
59
+
/// A format converter unit can transform audio formats, such as performing sample rate
60
+
/// conversion.
61
+
///
62
+
/// A format converter is also appropriate for dferred rendering and for effects such as
63
+
/// varispeed.
64
+
///
65
+
/// A format converter unit can ask for as much or as little audio input as it needs to produce
66
+
/// a given output, while still completing its rendering within the time represented by the
67
+
/// output buffer.
68
+
///
69
+
/// For effect-like format converters, such as pitch shifters, it is common to provide both a
70
+
/// real-time and an offline version. OS X, for example, includes Time-Pitch and Varispeed
71
+
/// audio units in both real-time and offline versions.
72
+
///
73
+
/// **Available** in OS X v10.2 and later.
41
74
FormatConverter = 1635083875,
75
+
/// An effect unit repeatedly processes a number of audio input samples to produce the same
76
+
/// number of audio output samples.
77
+
///
78
+
/// Most commonly, an effect unit has a single input and a single output.
79
+
///
80
+
/// Some effects take side-chain inputs as well.
81
+
///
82
+
/// Effect units can be run offline, such as to process a file without playing it, but are
83
+
/// expected to run in real-time.
84
+
///
85
+
/// **Available** in OS X v10.2 and later.
42
86
Effect = 1635083896,
87
+
/// A mixer unit takes a number of input channels and mixes them to provide one or more output
88
+
/// channels.
89
+
///
90
+
/// For example, the **StereoMixer** **SubType** in OS X takes multiple mono or stereo inputs
91
+
/// and produces a single stereo output.
92
+
///
93
+
/// **Available** in OS X v10.2 and later.
43
94
Mixer = 1635085688,
95
+
/// A panner unit is a specialised effect unit that distributes one or more channels in a
96
+
/// single input to one or more channels in a single output.
97
+
///
98
+
/// Panner units must support a set of standard audio unit parameters that specify panning
99
+
/// coordinates.
100
+
///
101
+
/// **Available** in OS X v10.3 and later.
44
102
Panner = 1635086446,
103
+
/// A generator unit provides audio output that has no audio input.
104
+
///
105
+
/// This audio unit type is appropriate for a tone generator.
106
+
///
107
+
/// Unlike an instrument unit, a generator unit does not have a control input.
108
+
///
109
+
/// **Available** in OS X v10.3 and later.
45
110
Generator = 1635084142,
111
+
/// An offline effect unit provides digital signal processing of a sort that cannot proceed in
112
+
/// real-time.
113
+
///
114
+
/// For example, level normalisation requires examination of an entire sound, beginning to end,
115
+
/// before the normalisation factor can be calculated.
116
+
///
117
+
/// As such, offline effect units also have a notion of a priming stage that can be performed
118
+
/// before the actual rendering/processing phase is executed.
119
+
///
120
+
/// **Available** in OS X v10.3 and later.
46
121
OfflineEffect = 1635086188,
122
+
/// FIXME: Could not find documenation for this type - it seems it was added very recently
123
+
/// (around 2013) and Apple's documentation doesn't seem to have updated to include it.
0 commit comments