AudioUnitParameters.pas 35 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090
  1. {!
  2. @file AudioUnitParameters.h
  3. @framework AudioToolbox.framework
  4. @copyright (c) 2000-2015 Apple, Inc. All rights reserved.
  5. @abstract Constants for the parameters of Apple audio units.
  6. }
  7. { Pascal Translation: Gorazd Krosl <[email protected]>, October 2009 }
  8. { Pascal Translation Update: Jonas Maebe <[email protected]>, October 2012 }
  9. { Pascal Translation Update: Jonas Maebe <[email protected]>, July 2019 }
  10. {
  11. Modified for use with Free Pascal
  12. Version 308
  13. Please report any bugs to <[email protected]>
  14. }
  15. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  16. {$mode macpas}
  17. {$modeswitch cblocks}
  18. {$packenum 1}
  19. {$macro on}
  20. {$inline on}
  21. {$calling mwpascal}
  22. {$IFNDEF FPC_DOTTEDUNITS}
  23. unit AudioUnitParameters;
  24. {$ENDIF FPC_DOTTEDUNITS}
  25. interface
  26. {$setc UNIVERSAL_INTERFACES_VERSION := $0400}
  27. {$setc GAP_INTERFACES_VERSION := $0308}
  28. {$ifc not defined USE_CFSTR_CONSTANT_MACROS}
  29. {$setc USE_CFSTR_CONSTANT_MACROS := TRUE}
  30. {$endc}
  31. {$ifc defined CPUPOWERPC and defined CPUI386}
  32. {$error Conflicting initial definitions for CPUPOWERPC and CPUI386}
  33. {$endc}
  34. {$ifc defined FPC_BIG_ENDIAN and defined FPC_LITTLE_ENDIAN}
  35. {$error Conflicting initial definitions for FPC_BIG_ENDIAN and FPC_LITTLE_ENDIAN}
  36. {$endc}
  37. {$ifc not defined __ppc__ and defined CPUPOWERPC32}
  38. {$setc __ppc__ := 1}
  39. {$elsec}
  40. {$setc __ppc__ := 0}
  41. {$endc}
  42. {$ifc not defined __ppc64__ and defined CPUPOWERPC64}
  43. {$setc __ppc64__ := 1}
  44. {$elsec}
  45. {$setc __ppc64__ := 0}
  46. {$endc}
  47. {$ifc not defined __i386__ and defined CPUI386}
  48. {$setc __i386__ := 1}
  49. {$elsec}
  50. {$setc __i386__ := 0}
  51. {$endc}
  52. {$ifc not defined __x86_64__ and defined CPUX86_64}
  53. {$setc __x86_64__ := 1}
  54. {$elsec}
  55. {$setc __x86_64__ := 0}
  56. {$endc}
  57. {$ifc not defined __arm__ and defined CPUARM}
  58. {$setc __arm__ := 1}
  59. {$elsec}
  60. {$setc __arm__ := 0}
  61. {$endc}
  62. {$ifc not defined __arm64__ and defined CPUAARCH64}
  63. {$setc __arm64__ := 1}
  64. {$elsec}
  65. {$setc __arm64__ := 0}
  66. {$endc}
  67. {$ifc defined cpu64}
  68. {$setc __LP64__ := 1}
  69. {$elsec}
  70. {$setc __LP64__ := 0}
  71. {$endc}
  72. {$ifc defined __ppc__ and __ppc__ and defined __i386__ and __i386__}
  73. {$error Conflicting definitions for __ppc__ and __i386__}
  74. {$endc}
  75. {$ifc defined __ppc__ and __ppc__}
  76. {$setc TARGET_CPU_PPC := TRUE}
  77. {$setc TARGET_CPU_PPC64 := FALSE}
  78. {$setc TARGET_CPU_X86 := FALSE}
  79. {$setc TARGET_CPU_X86_64 := FALSE}
  80. {$setc TARGET_CPU_ARM := FALSE}
  81. {$setc TARGET_CPU_ARM64 := FALSE}
  82. {$setc TARGET_OS_MAC := TRUE}
  83. {$setc TARGET_OS_IPHONE := FALSE}
  84. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  85. {$setc TARGET_OS_EMBEDDED := FALSE}
  86. {$elifc defined __ppc64__ and __ppc64__}
  87. {$setc TARGET_CPU_PPC := FALSE}
  88. {$setc TARGET_CPU_PPC64 := TRUE}
  89. {$setc TARGET_CPU_X86 := FALSE}
  90. {$setc TARGET_CPU_X86_64 := FALSE}
  91. {$setc TARGET_CPU_ARM := FALSE}
  92. {$setc TARGET_CPU_ARM64 := FALSE}
  93. {$setc TARGET_OS_MAC := TRUE}
  94. {$setc TARGET_OS_IPHONE := FALSE}
  95. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  96. {$setc TARGET_OS_EMBEDDED := FALSE}
  97. {$elifc defined __i386__ and __i386__}
  98. {$setc TARGET_CPU_PPC := FALSE}
  99. {$setc TARGET_CPU_PPC64 := FALSE}
  100. {$setc TARGET_CPU_X86 := TRUE}
  101. {$setc TARGET_CPU_X86_64 := FALSE}
  102. {$setc TARGET_CPU_ARM := FALSE}
  103. {$setc TARGET_CPU_ARM64 := FALSE}
  104. {$ifc defined iphonesim}
  105. {$setc TARGET_OS_MAC := FALSE}
  106. {$setc TARGET_OS_IPHONE := TRUE}
  107. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  108. {$elsec}
  109. {$setc TARGET_OS_MAC := TRUE}
  110. {$setc TARGET_OS_IPHONE := FALSE}
  111. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  112. {$endc}
  113. {$setc TARGET_OS_EMBEDDED := FALSE}
  114. {$elifc defined __x86_64__ and __x86_64__}
  115. {$setc TARGET_CPU_PPC := FALSE}
  116. {$setc TARGET_CPU_PPC64 := FALSE}
  117. {$setc TARGET_CPU_X86 := FALSE}
  118. {$setc TARGET_CPU_X86_64 := TRUE}
  119. {$setc TARGET_CPU_ARM := FALSE}
  120. {$setc TARGET_CPU_ARM64 := FALSE}
  121. {$ifc defined iphonesim}
  122. {$setc TARGET_OS_MAC := FALSE}
  123. {$setc TARGET_OS_IPHONE := TRUE}
  124. {$setc TARGET_IPHONE_SIMULATOR := TRUE}
  125. {$elsec}
  126. {$setc TARGET_OS_MAC := TRUE}
  127. {$setc TARGET_OS_IPHONE := FALSE}
  128. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  129. {$endc}
  130. {$setc TARGET_OS_EMBEDDED := FALSE}
  131. {$elifc defined __arm__ and __arm__}
  132. {$setc TARGET_CPU_PPC := FALSE}
  133. {$setc TARGET_CPU_PPC64 := FALSE}
  134. {$setc TARGET_CPU_X86 := FALSE}
  135. {$setc TARGET_CPU_X86_64 := FALSE}
  136. {$setc TARGET_CPU_ARM := TRUE}
  137. {$setc TARGET_CPU_ARM64 := FALSE}
  138. {$setc TARGET_OS_MAC := FALSE}
  139. {$setc TARGET_OS_IPHONE := TRUE}
  140. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  141. {$setc TARGET_OS_EMBEDDED := TRUE}
  142. {$elifc defined __arm64__ and __arm64__}
  143. {$setc TARGET_CPU_PPC := FALSE}
  144. {$setc TARGET_CPU_PPC64 := FALSE}
  145. {$setc TARGET_CPU_X86 := FALSE}
  146. {$setc TARGET_CPU_X86_64 := FALSE}
  147. {$setc TARGET_CPU_ARM := FALSE}
  148. {$setc TARGET_CPU_ARM64 := TRUE}
  149. {$ifc defined ios}
  150. {$setc TARGET_OS_MAC := FALSE}
  151. {$setc TARGET_OS_IPHONE := TRUE}
  152. {$setc TARGET_OS_EMBEDDED := TRUE}
  153. {$elsec}
  154. {$setc TARGET_OS_MAC := TRUE}
  155. {$setc TARGET_OS_IPHONE := FALSE}
  156. {$setc TARGET_OS_EMBEDDED := FALSE}
  157. {$endc}
  158. {$setc TARGET_IPHONE_SIMULATOR := FALSE}
  159. {$elsec}
  160. {$error __ppc__ nor __ppc64__ nor __i386__ nor __x86_64__ nor __arm__ nor __arm64__ is defined.}
  161. {$endc}
  162. {$ifc defined __LP64__ and __LP64__ }
  163. {$setc TARGET_CPU_64 := TRUE}
  164. {$elsec}
  165. {$setc TARGET_CPU_64 := FALSE}
  166. {$endc}
  167. {$ifc defined FPC_BIG_ENDIAN}
  168. {$setc TARGET_RT_BIG_ENDIAN := TRUE}
  169. {$setc TARGET_RT_LITTLE_ENDIAN := FALSE}
  170. {$elifc defined FPC_LITTLE_ENDIAN}
  171. {$setc TARGET_RT_BIG_ENDIAN := FALSE}
  172. {$setc TARGET_RT_LITTLE_ENDIAN := TRUE}
  173. {$elsec}
  174. {$error Neither FPC_BIG_ENDIAN nor FPC_LITTLE_ENDIAN are defined.}
  175. {$endc}
  176. {$setc ACCESSOR_CALLS_ARE_FUNCTIONS := TRUE}
  177. {$setc CALL_NOT_IN_CARBON := FALSE}
  178. {$setc OLDROUTINENAMES := FALSE}
  179. {$setc OPAQUE_TOOLBOX_STRUCTS := TRUE}
  180. {$setc OPAQUE_UPP_TYPES := TRUE}
  181. {$setc OTCARBONAPPLICATION := TRUE}
  182. {$setc OTKERNEL := FALSE}
  183. {$setc PM_USE_SESSION_APIS := TRUE}
  184. {$setc TARGET_API_MAC_CARBON := TRUE}
  185. {$setc TARGET_API_MAC_OS8 := FALSE}
  186. {$setc TARGET_API_MAC_OSX := TRUE}
  187. {$setc TARGET_CARBON := TRUE}
  188. {$setc TARGET_CPU_68K := FALSE}
  189. {$setc TARGET_CPU_MIPS := FALSE}
  190. {$setc TARGET_CPU_SPARC := FALSE}
  191. {$setc TARGET_OS_UNIX := FALSE}
  192. {$setc TARGET_OS_WIN32 := FALSE}
  193. {$setc TARGET_RT_MAC_68881 := FALSE}
  194. {$setc TARGET_RT_MAC_CFM := FALSE}
  195. {$setc TARGET_RT_MAC_MACHO := TRUE}
  196. {$setc TYPED_FUNCTION_POINTERS := TRUE}
  197. {$setc TYPE_BOOL := FALSE}
  198. {$setc TYPE_EXTENDED := FALSE}
  199. {$setc TYPE_LONGLONG := TRUE}
  200. {$IFDEF FPC_DOTTEDUNITS}
  201. uses MacOsApi.MacTypes;
  202. {$ELSE FPC_DOTTEDUNITS}
  203. uses MacTypes;
  204. {$ENDIF FPC_DOTTEDUNITS}
  205. {$endc} {not MACOSALLINCLUDE}
  206. {$ALIGN POWER}
  207. //#pragma mark General Declarations
  208. { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  209. The following specifies the equivalent parameterID's for the Group scope for standard
  210. MIDI Controllers. This list is not exhaustive. It represents the parameters, and their corresponding
  211. MIDI messages, that should be supported in Group scope by MIDI capable AUs.
  212. Group scope parameter IDs from 0 < 512 are reserved for mapping MIDI controllers.
  213. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
  214. const
  215. kAUGroupParameterID_Volume = 7; // value 0 < 128
  216. kAUGroupParameterID_Sustain = 64; // value 0-63 (off), 64-127 (on)
  217. kAUGroupParameterID_Sostenuto = 66; // value 0-63 (off), 64-127 (on)
  218. kAUGroupParameterID_AllNotesOff = 123; // value ignored
  219. kAUGroupParameterID_ModWheel = 1; // value 0 < 128
  220. kAUGroupParameterID_PitchBend = $E0; // value -8192 - 8191
  221. kAUGroupParameterID_AllSoundOff = 120; // value ignored
  222. kAUGroupParameterID_ResetAllControllers = 121; // value ignored
  223. kAUGroupParameterID_Pan = 10; // value 0 < 128
  224. kAUGroupParameterID_Foot = 4; // value 0 < 128
  225. kAUGroupParameterID_ChannelPressure = $D0; // value 0 < 128
  226. kAUGroupParameterID_KeyPressure = $A0; // values 0 < 128
  227. kAUGroupParameterID_Expression = 11; // value 0 < 128
  228. kAUGroupParameterID_DataEntry = 6; // value 0 < 128
  229. kAUGroupParameterID_Volume_LSB = kAUGroupParameterID_Volume + 32; // value 0 < 128
  230. kAUGroupParameterID_ModWheel_LSB = kAUGroupParameterID_ModWheel + 32; // value 0 < 128
  231. kAUGroupParameterID_Pan_LSB = kAUGroupParameterID_Pan + 32; // value 0 < 128
  232. kAUGroupParameterID_Foot_LSB = kAUGroupParameterID_Foot + 32; // value 0 < 128
  233. kAUGroupParameterID_Expression_LSB = kAUGroupParameterID_Expression + 32; // value 0 < 128
  234. kAUGroupParameterID_DataEntry_LSB = kAUGroupParameterID_DataEntry + 32; // value 0 < 128
  235. kAUGroupParameterID_KeyPressure_FirstKey = 256; // value 0 < 128
  236. kAUGroupParameterID_KeyPressure_LastKey = 383; // value 0 < 128
  237. { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  238. Supporting the kAUGroupParameterID_KeyPressure parameter indicates to hosts that your audio unit
  239. supports polyphonic "aftertouch" key pressure.
  240. Each of the 128 MIDI key numbers can have its own value for polyphonic aftertouch. To respond to
  241. aftertouch for a particular key, your audio unit needs to support an additional parameter
  242. specifically for that key. The aftertouch parameter ID for a given MIDI key is equal to the MIDI
  243. key number plus 256. For example, the aftertouch parameter ID for MIDI key #60 (middle C) is:
  244. 60 + kAUGroupParameterID_KeyPressure_FirstKey = 316
  245. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
  246. { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  247. The following sections specify the parameter IDs for the audio units included in Mac OS X.
  248. Host applications can use these IDs to directly address these parameters without first discovering
  249. them through the AUParameterInfo mechanism (see the AudioUnitProperties.h header file)
  250. Each parameter is preceeded by a comment that indicates scope, unit of measurement, minimum
  251. value, maximum value, and default value.
  252. See the AudioUnitProperties.h header file for additional information that a parameter may report
  253. When displaying to the user information about a parameter, a host application should always
  254. get the parameter information from the audio unit itself.
  255. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
  256. // Parameters for all Panner AudioUnits
  257. const
  258. // Global, Linear, 0->1, 1
  259. kPannerParam_Gain = 0;
  260. // Global, Degrees, -180->180, 0
  261. kPannerParam_Azimuth = 1;
  262. // Global, Degrees, -90->90, 0
  263. kPannerParam_Elevation = 2;
  264. // Global, Linear, 0->1, 1
  265. kPannerParam_Distance = 3; // 0 .. 1
  266. // Global, Meters, 0.01->1000, 1
  267. kPannerParam_CoordScale = 4;
  268. // Global, Meters, 0.01->1000, 1
  269. kPannerParam_RefDistance = 5;
  270. //#pragma mark Apple Specific
  271. // Parameters for the AUSpatialMixer unit
  272. const
  273. // Input, Degrees, -180->180, 0
  274. kSpatialMixerParam_Azimuth = 0;
  275. // Input, Degrees, -90->90, 0
  276. kSpatialMixerParam_Elevation = 1;
  277. // Input, Metres, 0->10000, 0
  278. kSpatialMixerParam_Distance = 2;
  279. // Input/Output, dB, -120->20, 0
  280. kSpatialMixerParam_Gain = 3;
  281. // Input, rate scaler 0.5 -> 2.0
  282. kSpatialMixerParam_PlaybackRate = 4;
  283. // bus enable : 0.0 or 1.0
  284. kSpatialMixerParam_Enable = 5;
  285. // Minimum input gain constraint : 0.0 -> 1.0
  286. kSpatialMixerParam_MinGain = 6;
  287. // Maximum input gain constraint : 0.0 -> 1.0
  288. kSpatialMixerParam_MaxGain = 7;
  289. // Input, Dry/Wet equal-power blend, % 0.0 -> 100.0
  290. kSpatialMixerParam_ReverbBlend = 8;
  291. // Global, dB, -40.0 -> +40.0
  292. kSpatialMixerParam_GlobalReverbGain = 9;
  293. // Input, Lowpass filter attenuation at 5KHz : decibels -100.0dB -> 0.0dB
  294. // smaller values make both direct and reverb sound more muffled; a value of 0.0 indicates no filtering
  295. // Occlusion is a filter applied to the sound prior to the reverb send
  296. kSpatialMixerParam_OcclusionAttenuation = 10;
  297. // Input, Lowpass filter attenuation at 5KHz : decibels -100.0dB -> 0.0dB
  298. // smaller values make direct sound more muffled; a value of 0.0 indicates no filtering
  299. // Obstruction is a filter applied to the "direct" part of the sound (so is post reverb send)
  300. kSpatialMixerParam_ObstructionAttenuation = 11;
  301. // Reverb parameters applicable to AUSpatialMixer
  302. const
  303. // Global, Hertz, 10.0 -> 20000.0, 800.0
  304. kReverbParam_FilterFrequency = 14;
  305. // Global, Octaves, 0.05 -> 4.0, 3.0
  306. kReverbParam_FilterBandwidth = 15;
  307. // Global, Decibels, -18.0 -> +18.0, 0.0
  308. kReverbParam_FilterGain = 16;
  309. // Global, Indexed, 0->kNumAUNBandEQFilterTypes-1, 0
  310. kReverbParam_FilterType = 17; // only available for AUSpatialMixer
  311. // Global, Boolean, 0->1, 1
  312. kReverbParam_FilterEnable = 18; // only available for AUSpatialMixer
  313. // Parameters for the AUMixer3D unit
  314. const
  315. // Input, Degrees, -180->180, 0
  316. k3DMixerParam_Azimuth = 0;
  317. // Input, Degrees, -90->90, 0
  318. k3DMixerParam_Elevation = 1;
  319. // Input, Metres, 0->10000, 0
  320. k3DMixerParam_Distance = 2;
  321. // Input/Output, dB, -120->20, 0
  322. k3DMixerParam_Gain = 3;
  323. // Input, rate scaler 0.5 -> 2.0
  324. k3DMixerParam_PlaybackRate = 4;
  325. {$ifc TARGET_OS_MAC}
  326. // Desktop specific 3D mixer parameters
  327. // Input, Dry/Wet equal-power blend, % 0.0 -> 100.0
  328. k3DMixerParam_ReverbBlend = 5;
  329. // Global, dB, -40.0 -> +40.0
  330. k3DMixerParam_GlobalReverbGain = 6;
  331. // Input, Lowpass filter attenuation at 5KHz : decibels -100.0dB -> 0.0dB
  332. // smaller values make both direct and reverb sound more muffled; a value of 0.0 indicates no filtering
  333. // Occlusion is a filter applied to the sound prior to the reverb send
  334. k3DMixerParam_OcclusionAttenuation = 7;
  335. // Input, Lowpass filter attenuation at 5KHz : decibels -100.0dB -> 0.0dB
  336. // smaller values make direct sound more muffled; a value of 0.0 indicates no filtering
  337. // Obstruction is a filter applied to the "direct" part of the sound (so is post reverb send)
  338. k3DMixerParam_ObstructionAttenuation = 8;
  339. // Input/Output, dB, -120->20, 0
  340. k3DMixerParam_MinGain = 9;
  341. // Input/Output, dB, -120->20, 0
  342. k3DMixerParam_MaxGain = 10;
  343. // read-only
  344. //
  345. // For each of the following, use the parameter ID plus the channel number
  346. // to get the specific parameter ID for a given channel.
  347. // For example, k3DMixerParam_PostAveragePower indicates the left channel
  348. // while k3DMixerParam_PostAveragePower + 1 indicates the right channel.
  349. k3DMixerParam_PreAveragePower = 1000;
  350. k3DMixerParam_PrePeakHoldLevel = 2000;
  351. k3DMixerParam_PostAveragePower = 3000;
  352. k3DMixerParam_PostPeakHoldLevel = 4000;
  353. {$endc} { TARGET_OS_MAC }
  354. // Parameters for the AUMultiChannelMixer unit
  355. // these are available for both desktop and iphone
  356. const
  357. // Global, Linear Gain, 0->1, 1. (the volume value can actually be any finite number, including negative.)
  358. kMultiChannelMixerParam_Volume = 0;
  359. // Global, Boolean, 0->1, 1
  360. kMultiChannelMixerParam_Enable = 1;
  361. // Global, Pan, -1->1, 0
  362. kMultiChannelMixerParam_Pan = 2; // -1 - 0 - 1, only valid when output is not mono
  363. // setting kAudioUnitProperty_MatrixLevels overrides any
  364. // previously set kMultiChannelMixerParam_Pan and vice versa
  365. // read-only, Input or Output scope.
  366. // these report level in dB, as do the other mixers
  367. kMultiChannelMixerParam_PreAveragePower = 1000;
  368. kMultiChannelMixerParam_PrePeakHoldLevel = 2000;
  369. kMultiChannelMixerParam_PostAveragePower = 3000;
  370. kMultiChannelMixerParam_PostPeakHoldLevel = 4000;
  371. // Parameters for the AUMatrixMixer unit
  372. const
  373. kMatrixMixerParam_Volume = 0;
  374. kMatrixMixerParam_Enable = 1;
  375. // read-only
  376. // these report level in dB, as do the other mixers
  377. kMatrixMixerParam_PreAveragePower = 1000;
  378. kMatrixMixerParam_PrePeakHoldLevel = 2000;
  379. kMatrixMixerParam_PostAveragePower = 3000;
  380. kMatrixMixerParam_PostPeakHoldLevel = 4000;
  381. // these report linear levels - for "expert" use only.
  382. kMatrixMixerParam_PreAveragePowerLinear = 5000;
  383. kMatrixMixerParam_PrePeakHoldLevelLinear = 6000;
  384. kMatrixMixerParam_PostAveragePowerLinear = 7000;
  385. kMatrixMixerParam_PostPeakHoldLevelLinear = 8000;
  386. // Output Units
  387. // Parameters for the AudioDeviceOutput, DefaultOutputUnit, and SystemOutputUnit units
  388. const
  389. // Global, LinearGain, 0->1, 1
  390. kHALOutputParam_Volume = 14;
  391. // Parameters for the AUTimePitch, AUTimePitch (offline), AUPitch units
  392. const
  393. kTimePitchParam_Rate = 0;
  394. kTimePitchParam_Pitch = 1;
  395. kTimePitchParam_EffectBlend = 2; // only for the AUPitch unit
  396. // Parameters for AUNewTimePitch
  397. const
  398. // rate control.
  399. // Global, rate, 1/32 -> 32.0, 1.0
  400. kNewTimePitchParam_Rate = 0;
  401. // pitch shift in cents.
  402. // Global, Cents, -2400 -> 2400, 1.0
  403. kNewTimePitchParam_Pitch = 1;
  404. // Overlap is the number of overlapped spectral windows that are used to produce the output.
  405. // The value of overlap is directly proportional to CPU cost. More overlaps can make smooth
  406. // passages sound smoother. For percussive sound, a lower overlap may be better.
  407. // Global, generic, 3.0 -> 32.0, 8.0
  408. kNewTimePitchParam_Overlap = 4;
  409. // Peak locking enforces phase coherence of spectral peaks.
  410. // Peak locking adds some expense but results in a less "phasey"
  411. // or reverberant sound, sometimes also called loss of presence.
  412. // However the flip side is that it can sound more stuttery for some content.
  413. // Global, Boolean, 0->1, 1
  414. kNewTimePitchParam_EnablePeakLocking = 6;
  415. // Parameters for the AUSampler unit
  416. const
  417. // Global, dB, -90->12, 0
  418. kAUSamplerParam_Gain = 900;
  419. // Global, Semitones, -24->24, 0
  420. kAUSamplerParam_CoarseTuning = 901;
  421. // Global, Cents, -99->99, 0
  422. kAUSamplerParam_FineTuning = 902;
  423. // Global, -1.0->1.0, 0
  424. kAUSamplerParam_Pan = 903;
  425. // Effect units
  426. // The values for some effect unit parameters depend on the audio unit's sample rate.
  427. // For example, maximum values are typically the Nyquist frequency (indicated here as
  428. // SampleRate/2).
  429. // Parameters for the AUBandpass unit
  430. const
  431. // Global, Hz, 20->(SampleRate/2), 5000
  432. kBandpassParam_CenterFrequency = 0;
  433. // Global, Cents, 100->12000, 600
  434. kBandpassParam_Bandwidth = 1;
  435. // Parameters for the AUHipass unit
  436. const
  437. // Global, Hz, 10->(SampleRate/2), 6900
  438. kHipassParam_CutoffFrequency = 0;
  439. // Global, dB, -20->40, 0
  440. kHipassParam_Resonance = 1;
  441. // Parameters for the AULowpass unit
  442. const
  443. // Global, Hz, 10->(SampleRate/2), 6900
  444. kLowPassParam_CutoffFrequency = 0;
  445. // Global, dB, -20->40, 0
  446. kLowPassParam_Resonance = 1;
  447. // Parameters for the AUHighShelfFilter unit
  448. const
  449. // Global, Hz, 10000->(SampleRate/2), 10000
  450. kHighShelfParam_CutOffFrequency = 0;
  451. // Global, dB, -40->40, 0
  452. kHighShelfParam_Gain = 1;
  453. // Parameters for the AULowShelfFilter unit
  454. const
  455. // Global, Hz, 10->200, 80
  456. kAULowShelfParam_CutoffFrequency = 0;
  457. // Global, dB, -40->40, 0
  458. kAULowShelfParam_Gain = 1;
  459. // Parameters for the AUParametricEQ unit
  460. const
  461. // Global, Hz, 20->(SampleRate/2), 2000
  462. kParametricEQParam_CenterFreq = 0;
  463. // Global, Hz, 0.1->20, 1.0
  464. kParametricEQParam_Q = 1;
  465. // Global, dB, -20->20, 0
  466. kParametricEQParam_Gain = 2;
  467. // Parameters for the AUPeakLimiter unit
  468. const
  469. // Global, Secs, 0.001->0.03, 0.012
  470. kLimiterParam_AttackTime = 0;
  471. // Global, Secs, 0.001->0.06, 0.024
  472. kLimiterParam_DecayTime = 1;
  473. // Global, dB, -40->40, 0
  474. kLimiterParam_PreGain = 2;
  475. // Parameters for the AUDynamicsProcessor unit
  476. // Note that the dynamics processor does not have fixed compression ratios.
  477. // Instead, kDynamicsProcessorParam_HeadRoom adjusts the amount of compression.
  478. // Lower kDynamicsProcessorParam_HeadRoom values results in higher compression.
  479. // The compression ratio is automatically adjusted to not exceed kDynamicsProcessorParam_Threshold + kDynamicsProcessorParam_HeadRoom values.
  480. const
  481. // Global, dB, -40->20, -20
  482. kDynamicsProcessorParam_Threshold = 0;
  483. // Global, dB, 0.1->40.0, 5
  484. kDynamicsProcessorParam_HeadRoom = 1;
  485. // Global, rate, 1->50.0, 2
  486. kDynamicsProcessorParam_ExpansionRatio = 2;
  487. // Global, dB
  488. kDynamicsProcessorParam_ExpansionThreshold = 3;
  489. // Global, secs, 0.0001->0.2, 0.001
  490. kDynamicsProcessorParam_AttackTime = 4;
  491. // Global, secs, 0.01->3, 0.05
  492. kDynamicsProcessorParam_ReleaseTime = 5;
  493. // Global, dB, -40->40, 0
  494. kDynamicsProcessorParam_MasterGain = 6;
  495. // Global, dB, read-only parameter
  496. kDynamicsProcessorParam_CompressionAmount = 1000;
  497. kDynamicsProcessorParam_InputAmplitude = 2000;
  498. kDynamicsProcessorParam_OutputAmplitude = 3000;
  499. // Parameters for the AUVarispeed unit
  500. const
  501. // Global, Rate, 0.25 -> 4.0, 1.0
  502. kVarispeedParam_PlaybackRate = 0;
  503. // Global, Cents, -2400 -> 2400, 0.0
  504. kVarispeedParam_PlaybackCents = 1;
  505. // Parameters for the Distortion unit
  506. const
  507. // Global, Milliseconds, 0.1 -> 500, 0.1
  508. kDistortionParam_Delay = 0;
  509. // Global, Rate, 0.1 -> 50, 1.0
  510. kDistortionParam_Decay = 1;
  511. // Global, Percent, 0 -> 100, 50
  512. kDistortionParam_DelayMix = 2;
  513. // Global, Percent, 0 -> 100
  514. kDistortionParam_Decimation = 3;
  515. // Global, Percent, 0 -> 100, 0
  516. kDistortionParam_Rounding = 4;
  517. // Global, Percent, 0 -> 100, 50
  518. kDistortionParam_DecimationMix = 5;
  519. // Global, Linear Gain, 0 -> 1, 1
  520. kDistortionParam_LinearTerm = 6;
  521. // Global, Linear Gain, 0 -> 20, 0
  522. kDistortionParam_SquaredTerm = 7;
  523. // Global, Linear Gain, 0 -> 20, 0
  524. kDistortionParam_CubicTerm = 8;
  525. // Global, Percent, 0 -> 100, 50
  526. kDistortionParam_PolynomialMix = 9;
  527. // Global, Hertz, 0.5 -> 8000, 100
  528. kDistortionParam_RingModFreq1 = 10;
  529. // Global, Hertz, 0.5 -> 8000, 100
  530. kDistortionParam_RingModFreq2 = 11;
  531. // Global, Percent, 0 -> 100, 50
  532. kDistortionParam_RingModBalance = 12;
  533. // Global, Percent, 0 -> 100, 0
  534. kDistortionParam_RingModMix = 13;
  535. // Global, dB, -80 -> 20, -6
  536. kDistortionParam_SoftClipGain = 14;
  537. // Global, Percent, 0 -> 100, 50
  538. kDistortionParam_FinalMix = 15;
  539. // Parameters for the AUDelay unit
  540. const
  541. // Global, EqPow Crossfade, 0->100, 50
  542. kDelayParam_WetDryMix = 0;
  543. // Global, Secs, 0->2, 1
  544. kDelayParam_DelayTime = 1;
  545. // Global, Percent, -100->100, 50
  546. kDelayParam_Feedback = 2;
  547. // Global, Hz, 10->(SampleRate/2), 15000
  548. kDelayParam_LopassCutoff = 3;
  549. // Parameters for the AUNBandEQ unit
  550. // Note that the parameter IDs listed correspond to band 0 (zero) of the unit. The parameter IDs for
  551. // higher bands can be obtained by adding the zero-indexed band number to the corresponding band 0
  552. // parameter ID up to the number of bands minus one, where the number of bands is described by the
  553. // AUNBandEQ property kAUNBandEQProperty_NumberOfBands. For example, the parameter ID corresponding
  554. // to the filter type of band 4 would be kAUNBandEQParam_FilterType + 3.
  555. // kAUNBandEQParam_GlobalsGain is an overall gain and does not have a band.
  556. const
  557. // Global, dB, -96->24, 0
  558. kAUNBandEQParam_GlobalGain = 0;
  559. // Global, Boolean, 0 or 1, 1
  560. kAUNBandEQParam_BypassBand = 1000;
  561. // Global, Indexed, 0->kNumAUNBandEQFilterTypes-1, 0
  562. kAUNBandEQParam_FilterType = 2000;
  563. // Global, Hz, 20->(SampleRate/2), 1000
  564. kAUNBandEQParam_Frequency = 3000;
  565. // Global, dB, -96->24, 0
  566. kAUNBandEQParam_Gain = 4000;
  567. // Global, octaves, 0.05->5.0, 0.5
  568. kAUNBandEQParam_Bandwidth = 5000;
  569. {!
  570. @enum AUNBandEQ filter types
  571. @discussion Constants available as values for the kAUNBandEQParam_FilterType parameter defined above
  572. @constant kAUNBandEQFilterType_Parametric
  573. Parametric filter based on Butterworth analog prototype. Uses parameterization where
  574. the bandwidth is specifed as the relationship of the upper bandedge frequency to the
  575. lower bandedge frequency in octaves, where the upper and lower bandedge frequencies are
  576. the respective frequencies above and below the center frequency at which the gain is
  577. equal to half the peak gain.
  578. Applicable parameters:
  579. - kAUNBandEQParam_Frequency (center frequency)
  580. - kAUNBandEQParam_Gain (peak gain)
  581. - kAUNBandEQParam_Bandwidth
  582. @constant kAUNBandEQFilterType_2ndOrderButterworthLowPass
  583. Simple Butterworth 2nd order low pass filter
  584. Applicable parameters:
  585. - kAUNBandEQParam_Frequency (-3 dB cutoff frequency)
  586. @constant kAUNBandEQFilterType_2ndOrderButterworthHighPass
  587. Simple Butterworth 2nd order high pass filter
  588. Applicable parameters:
  589. - kAUNBandEQParam_Frequency (-3 dB cutoff frequency)
  590. @constant kAUNBandEQFilterType_ResonantLowPass
  591. Low pass filter with resonance support (via bandwidth parameter)
  592. Applicable parameters:
  593. - kAUNBandEQParam_Frequency (-3 dB cutoff frequency)
  594. - kAUNBandEQParam_Bandwidth
  595. @constant kAUNBandEQFilterType_ResonantHighPass
  596. High pass filter with resonance support (via bandwidth parameter)
  597. Applicable parameters:
  598. - kAUNBandEQParam_Frequency (-3 dB cutoff frequency)
  599. - kAUNBandEQParam_Bandwidth
  600. @constant kAUNBandEQFilterType_BandPass
  601. Band pass filter
  602. Applicable parameters:
  603. - kAUNBandEQParam_Frequency (center frequency)
  604. - kAUNBandEQParam_Bandwidth
  605. @constant kAUNBandEQFilterType_BandStop
  606. Band stop filter (aka "notch filter")
  607. Applicable parameters:
  608. - kAUNBandEQParam_Frequency (center frequency)
  609. - kAUNBandEQParam_Bandwidth
  610. @constant kAUNBandEQFilterType_LowShelf
  611. Low shelf filter
  612. Applicable parameters:
  613. - kAUNBandEQParam_Frequency (center frequency)
  614. - kAUNBandEQParam_Gain (shelf gain)
  615. @constant kAUNBandEQFilterType_HighShelf
  616. High shelf filter
  617. Applicable parameters:
  618. - kAUNBandEQParam_Frequency (center frequency)
  619. - kAUNBandEQParam_Gain (shelf gain)
  620. @constant kAUNBandEQFilterType_ResonantLowShelf
  621. Low shelf filter with resonance support (via bandwidth parameter)
  622. Applicable parameters:
  623. - kAUNBandEQParam_Frequency (center frequency)
  624. - kAUNBandEQParam_Gain (shelf gain)
  625. - kAUNBandEQParam_Bandwidth
  626. @constant kAUNBandEQFilterType_ResonantHighShelf
  627. High shelf filter with resonance support (via bandwidth parameter)
  628. Applicable parameters:
  629. - kAUNBandEQParam_Frequency (center frequency)
  630. - kAUNBandEQParam_Gain (shelf gain)
  631. - kAUNBandEQParam_Bandwidth
  632. }
  633. const
  634. kAUNBandEQFilterType_Parametric = 0;
  635. kAUNBandEQFilterType_2ndOrderButterworthLowPass = 1;
  636. kAUNBandEQFilterType_2ndOrderButterworthHighPass = 2;
  637. kAUNBandEQFilterType_ResonantLowPass = 3;
  638. kAUNBandEQFilterType_ResonantHighPass = 4;
  639. kAUNBandEQFilterType_BandPass = 5;
  640. kAUNBandEQFilterType_BandStop = 6;
  641. kAUNBandEQFilterType_LowShelf = 7;
  642. kAUNBandEQFilterType_HighShelf = 8;
  643. kAUNBandEQFilterType_ResonantLowShelf = 9;
  644. kAUNBandEQFilterType_ResonantHighShelf = 10;
  645. kNumAUNBandEQFilterTypes = 11;
  646. // Parameters for the AURoundTripAACParam unit
  647. const
  648. // Global, indexed : AAC, HE-AAC, HE-AACv2
  649. kRoundTripAACParam_Format = 0;
  650. // Global, indexed
  651. kRoundTripAACParam_EncodingStrategy = 1;
  652. // Global, indexed
  653. kRoundTripAACParam_RateOrQuality = 2;
  654. // These are deprecated:
  655. kRoundTripAACParam_BitRate = 1;
  656. kRoundTripAACParam_Quality = 2;
  657. kRoundTripAACParam_CompressedFormatSampleRate = 3;
  658. //#pragma mark Apple Specific - Desktop
  659. {$ifc TARGET_OS_MAC}
  660. // Some parameters for the AUGraphicEQ unit
  661. const
  662. // Global, Indexed, currently either 10 or 31
  663. kGraphicEQParam_NumberOfBands = 10000;
  664. // Parameters for the AUMatrixReverb unit
  665. const
  666. // Global, EqPow CrossFade, 0->100, 100
  667. kReverbParam_DryWetMix = 0;
  668. // Global, EqPow CrossFade, 0->100, 50
  669. kReverbParam_SmallLargeMix = 1;
  670. // Global, Secs, 0.005->0.020, 0.06
  671. kReverbParam_SmallSize = 2;
  672. // Global, Secs, 0.4->10.0, 3.07
  673. kReverbParam_LargeSize = 3;
  674. // Global, Secs, 0.001->0.03, 0.025
  675. kReverbParam_PreDelay = 4;
  676. // Global, Secs, 0.001->0.1, 0.035
  677. kReverbParam_LargeDelay = 5;
  678. // Global, Genr, 0->1, 0.28
  679. kReverbParam_SmallDensity = 6;
  680. // Global, Genr, 0->1, 0.82
  681. kReverbParam_LargeDensity = 7;
  682. // Global, Genr, 0->1, 0.3
  683. kReverbParam_LargeDelayRange = 8;
  684. // Global, Genr, 0.1->1, 0.96
  685. kReverbParam_SmallBrightness = 9;
  686. // Global, Genr, 0.1->1, 0.49
  687. kReverbParam_LargeBrightness = 10;
  688. // Global, Genr, 0->1 0.5
  689. kReverbParam_SmallDelayRange = 11;
  690. // Global, Hz, 0.001->2.0, 1.0
  691. kReverbParam_ModulationRate = 12;
  692. // Global, Genr, 0.0 -> 1.0, 0.2
  693. kReverbParam_ModulationDepth = 13;
  694. // Parameters for the AUMultibandCompressor unit
  695. const
  696. // Global, dB, -40 -> 40, 0
  697. kMultibandCompressorParam_Pregain = 0;
  698. // Global, dB, -40 -> 40, 0
  699. kMultibandCompressorParam_Postgain = 1;
  700. // Global, Hertz, 20 -> (SampleRate/2), 120.0
  701. kMultibandCompressorParam_Crossover1 = 2;
  702. // Global, Hertz, 20 -> (SampleRate/2), 700.0
  703. kMultibandCompressorParam_Crossover2 = 3;
  704. // Global, Hertz, 20 -> (SampleRate/2), 3000.0
  705. kMultibandCompressorParam_Crossover3 = 4;
  706. // Global, dB, -100.0 -> 0.0, -22.0
  707. kMultibandCompressorParam_Threshold1 = 5;
  708. // Global, dB, -100.0 -> 0.0, -32.0
  709. kMultibandCompressorParam_Threshold2 = 6;
  710. // Global, dB, -100.0 -> 0.0, -33.0
  711. kMultibandCompressorParam_Threshold3 = 7;
  712. // Global, dB, -100.0 -> 0.0, -36.0
  713. kMultibandCompressorParam_Threshold4 = 8;
  714. // Global, dB, 0.1 -> 40.0, 5.0
  715. kMultibandCompressorParam_Headroom1 = 9;
  716. // Global, dB, 0.1 -> 40.0, 12.0
  717. kMultibandCompressorParam_Headroom2 = 10;
  718. // Global, dB, 0.1 -> 40.0, 5.0
  719. kMultibandCompressorParam_Headroom3 = 11;
  720. // Global, dB, 0.1 -> 40.0, 7.5
  721. kMultibandCompressorParam_Headroom4 = 12;
  722. // Global, Secs, 0.001 -> 0.200, 0.080
  723. kMultibandCompressorParam_AttackTime = 13;
  724. // Global, Secs, 0.010 -> 3.0, 0.120
  725. kMultibandCompressorParam_ReleaseTime = 14;
  726. // Global, dB, -20 -> 20, 0
  727. kMultibandCompressorParam_EQ1 = 15;
  728. // Global, dB, -20 -> 20, 0
  729. kMultibandCompressorParam_EQ2 = 16;
  730. // Global, dB, -20 -> 20, 0
  731. kMultibandCompressorParam_EQ3 = 17;
  732. // Global, dB, -20 -> 20, 0
  733. kMultibandCompressorParam_EQ4 = 18;
  734. // read-only parameters
  735. // Global, dB, 0 -> 20
  736. kMultibandCompressorParam_CompressionAmount1 = 1000;
  737. // Global, dB, 0 -> 20
  738. kMultibandCompressorParam_CompressionAmount2 = 2000;
  739. // Global, dB, 0 -> 20
  740. kMultibandCompressorParam_CompressionAmount3 = 3000;
  741. // Global, dB, 0 -> 20
  742. kMultibandCompressorParam_CompressionAmount4 = 4000;
  743. // Global, dB, -120 -> 20
  744. kMultibandCompressorParam_InputAmplitude1 = 5000;
  745. // Global, dB, -120 -> 20
  746. kMultibandCompressorParam_InputAmplitude2 = 6000;
  747. // Global, dB, -120 -> 20
  748. kMultibandCompressorParam_InputAmplitude3 = 7000;
  749. // Global, dB, -120 -> 20
  750. kMultibandCompressorParam_InputAmplitude4 = 8000;
  751. // Global, dB, -120 -> 20
  752. kMultibandCompressorParam_OutputAmplitude1 = 9000;
  753. // Global, dB, -120 -> 20
  754. kMultibandCompressorParam_OutputAmplitude2 = 10000;
  755. // Global, dB, -120 -> 20
  756. kMultibandCompressorParam_OutputAmplitude3 = 11000;
  757. // Global, dB, -120 -> 20
  758. kMultibandCompressorParam_OutputAmplitude4 = 12000;
  759. // Parameters for the AUFilter unit
  760. const
  761. // Global, indexed, 0 -> 1, 0
  762. kMultibandFilter_LowFilterType = 0;
  763. // Global, Hertz, 10 -> (SampleRate/2), 100
  764. kMultibandFilter_LowFrequency = 1;
  765. // Global, dB, -18 -> +18, 0
  766. kMultibandFilter_LowGain = 2;
  767. // Global, Hertz, 10 -> (SampleRate/2), 100
  768. kMultibandFilter_CenterFreq1 = 3;
  769. // Global, dB, -18 -> +18, 0
  770. kMultibandFilter_CenterGain1 = 4;
  771. // Global, Octaves, 0.05 -> 3.0, 2.0
  772. kMultibandFilter_Bandwidth1 = 5;
  773. // Global, Hertz, 10 -> (SampleRate/2), 100
  774. kMultibandFilter_CenterFreq2 = 6;
  775. // Global, dB, -18 -> +18, 0
  776. kMultibandFilter_CenterGain2 = 7;
  777. // Global, Octaves, 0.05 -> 3.0, 2.0
  778. kMultibandFilter_Bandwidth2 = 8;
  779. // Global, Hertz, 10 -> (SampleRate/2), 100
  780. kMultibandFilter_CenterFreq3 = 9;
  781. // Global, dB, -18 -> +18, 0
  782. kMultibandFilter_CenterGain3 = 10;
  783. // Global, Octaves, 0.05 -> 3.0, 2.0
  784. kMultibandFilter_Bandwidth3 = 11;
  785. // Global, indexed, 0 -> 1, 0
  786. kMultibandFilter_HighFilterType = 12;
  787. // Global, Hertz, 10 -> (SampleRate/2), 100
  788. kMultibandFilter_HighFrequency = 13;
  789. // Global, dB, -18 -> +18, 0
  790. kMultibandFilter_HighGain = 14;
  791. // Parameters for AURogerBeep
  792. const
  793. // Global, dB, -80 -> 0, -6
  794. kRogerBeepParam_InGateThreshold = 0;
  795. // Global, Milliseconds, 0 -> 1000, 1000
  796. kRogerBeepParam_InGateThresholdTime = 1;
  797. // Global, dB, -80 -> 0, -6
  798. kRogerBeepParam_OutGateThreshold = 2;
  799. // Global, Milliseconds, 0 -> 1000, 1000
  800. kRogerBeepParam_OutGateThresholdTime = 3;
  801. // Global, indexed, 0 -> 2, 2
  802. kRogerBeepParam_Sensitivity = 4;
  803. // Global, indexed, 0 -> 2, 0
  804. kRogerBeepParam_RogerType = 5;
  805. // Global, dB, -80 -> 20, -6
  806. kRogerBeepParam_RogerGain = 6;
  807. // Mixer Units
  808. // Parameters for the Stereo Mixer unit
  809. const
  810. // Input/Output, Mixer Fader Curve, 0->1, 1
  811. kStereoMixerParam_Volume = 0;
  812. // Input, Pan, 0->1, 0.5
  813. kStereoMixerParam_Pan = 1;
  814. // read-only
  815. //
  816. // For each of the following, use the parameter ID for the left channel
  817. // and the parameter ID plus one for the right channel.
  818. // For example, kStereoMixerParam_PostAveragePower indicates the left channel
  819. // while kStereiMixerParam_PostAveragePower + 1 indicates the right channel.
  820. kStereoMixerParam_PreAveragePower = 1000;
  821. kStereoMixerParam_PrePeakHoldLevel = 2000;
  822. kStereoMixerParam_PostAveragePower = 3000;
  823. kStereoMixerParam_PostPeakHoldLevel = 4000;
  824. // Parameters for the AUNetReceive unit
  825. const
  826. // Global, indexed, 0 -> 5, read only
  827. kAUNetReceiveParam_Status = 0;
  828. kAUNetReceiveParam_NumParameters = 1;
  829. // Parameters for the AUNetSend unit
  830. const
  831. // Global, indexed, 0 -> 5, read only
  832. kAUNetSendParam_Status = 0;
  833. kAUNetSendParam_NumParameters = 1;
  834. // Status values for the AUNetSend and AUNetReceive units
  835. const
  836. kAUNetStatus_NotConnected = 0;
  837. kAUNetStatus_Connected = 1;
  838. kAUNetStatus_Overflow = 2;
  839. kAUNetStatus_Underflow = 3;
  840. kAUNetStatus_Connecting = 4;
  841. kAUNetStatus_Listening = 5;
  842. // Music Device
  843. // Parameters for the DLSMusicDevice unit - defined and reported in the global scope
  844. const
  845. // Global, Cents, -1200, 1200, 0
  846. kMusicDeviceParam_Tuning = 0;
  847. // Global, dB, -120->40, 0
  848. kMusicDeviceParam_Volume = 1;
  849. // Global, dB, -120->40, 0
  850. kMusicDeviceParam_ReverbVolume = 2;
  851. // In Mac OS X v10.5, the DLSMusicDevice audio unit does not report parameters in the Group scope.
  852. // However, parameter values can be set in Group scope that correspond to controller values defined
  853. // by the MIDI specification. This includes the standard MIDI Controller values (such as Volume and
  854. // Mod Wheel) as well as MIDI status messages (such as Pitch Bend and Channel Pressure) and the
  855. // MIDI RPN control messages.
  856. // For MIDI status messages, use a value of 0 for the "channel part" (lower four bits) when setting
  857. // these parameters. This allows audio units to distinguish these IDs from the 0-127
  858. // values used by MIDI controllers in the first byte of status messages.
  859. //
  860. // The element ID represents the group or channel number.
  861. //
  862. // You can use the MusicDeviceMIDIEvent function to send a MIDI formatted control command to a device.
  863. //
  864. // You can use the SetParameter API calls, declared in the AUComponent.h header file, as follows:
  865. //
  866. // scope == kAudioUnitScope_Group
  867. // element == groupID -> in MIDI equivalent to channel number 0->15,
  868. // but this is not a limitation of the MusicDevice and values greater than 15 can be specified
  869. // paramID == midi controller value (0->127), (status bytes corresponding to pitch bend, channel pressure)
  870. // value == typically the range associated with the corresponding MIDI message (7 bit, 0->127)
  871. // pitch bend is specified as a 14 bit value
  872. // See the MusicDevice.h header file for more about using the extended control semantics
  873. // of this API.
  874. // `Analog' AudioUnits
  875. // Parameters for the AURandom unit
  876. const
  877. kRandomParam_BoundA = 0;
  878. kRandomParam_BoundB = 1;
  879. kRandomParam_Curve = 2;
  880. {$endc} {TARGET_OS_MAC}
  881. //#pragma mark Apple Specific - iOS
  882. {$ifc TARGET_OS_IPHONE}
  883. // Parameters for the iOS reverb unit
  884. const
  885. // Global, CrossFade, 0->100, 100
  886. kReverb2Param_DryWetMix = 0;
  887. // Global, Decibels, -20->20, 0
  888. kReverb2Param_Gain = 1;
  889. // Global, Secs, 0.0001->1.0, 0.008
  890. kReverb2Param_MinDelayTime = 2;
  891. // Global, Secs, 0.0001->1.0, 0.050
  892. kReverb2Param_MaxDelayTime = 3;
  893. // Global, Secs, 0.001->20.0, 1.0
  894. kReverb2Param_DecayTimeAt0Hz = 4;
  895. // Global, Secs, 0.001->20.0, 0.5
  896. kReverb2Param_DecayTimeAtNyquist = 5;
  897. // Global, Integer, 1->1000
  898. kReverb2Param_RandomizeReflections = 6;
  899. {$endc} {TARGET_OS_IPHONE}
  900. {$ifc not defined MACOSALLINCLUDE or not MACOSALLINCLUDE}
  901. end.
  902. {$endc} {not MACOSALLINCLUDE}