説明を見る。 1
2
3
4
5
6
7
8
9
10
11
16
17
18 #ifndef CRI_ATOM_ASR_H_INCLUDED
19 #define CRI_ATOM_ASR_H_INCLUDED
20
21
22
23
24
25 #include <cri_le_xpt.h>
26 #include <cri_le_atom.h>
27 #include <cri_le_atom_ex.h>
28
29
30
31
32
39 #define CRIATOMEXASR_MAX_CHANNELS (8)
40
47 #define CRIATOMEXASR_DEFAULT_NUM_BUSES (8)
48
55 #define CRIATOMEXASR_MAX_BUSES (64)
56
64 #define CRIATOMEXASR_RACK_DEFAULT_ID (0)
65
73 #define CRIATOMEXASR_RACK_ILLEGAL_ID (-1)
74
82 #define CRIATOMEXASR_MAX_NUM_USER_EFFECT_INTERFACES (256)
83
84
85
86
91 #define CRIATOMEXASR_AMPLITUDE_ANALYZER_NAME "CRIWARE/AmplitudeAnalyzer"
92
97 #define CRIATOMEXASR_BIQUAD_FILTER_NAME "CRIWARE/Biquad"
98
103 #define CRIATOMEXASR_BANDPASS_FILTER_NAME "CRIWARE/Bandpass"
104
109 #define CRIATOMEXASR_CHORUS_NAME "CRIWARE/Chorus"
110
115 #define CRIATOMEXASR_FLANGER_NAME "CRIWARE/Flanger"
116
121 #define CRIATOMEXASR_COMPRESSOR_NAME "CRIWARE/Compressor"
122
127 #define CRIATOMEXASR_LIMITER_NAME "CRIWARE/Limiter"
128
133 #define CRIATOMEXASR_DELAY_NAME "CRIWARE/Delay"
134
139 #define CRIATOMEXASR_ECHO_NAME "CRIWARE/Echo"
140
145 #define CRIATOMEXASR_MULTITAP_DELAY_NAME "CRIWARE/MultiTapDelay"
146
151 #define CRIATOMEXASR_DISTORTION_NAME "CRIWARE/Distortion"
152
157 #define CRIATOMEXASR_I3DL2_REVERB_NAME "CRIWARE/I3DL2Reverb"
158
163 #define CRIATOMEXASR_MATRIX_NAME "CRIWARE/Matrix"
164
169 #define CRIATOMEXASR_3BANDS_EQUALIZER_NAME "CRIWARE/3BandsEQ"
170
175 #define CRIATOMEXASR_32BANDS_EQUALIZER_NAME "CRIWARE/32BandsEQ"
176
181 #define CRIATOMEXASR_PITCH_SHIFTER_NAME "CRIWARE/PitchShifter"
182
187 #define CRIATOMEXASR_REVERB_NAME "CRIWARE/Reverb"
188
193 #define CRIATOMEXASR_SURROUNDER_NAME "CRIWARE/Surrounder"
194
199 #define CRIATOMEXASR_BIT_CRUSHER_NAME "CRIWARE/BitCrusher"
200
205 #define CRIATOMEXASR_PHASER_NAME "CRIWARE/Phaser"
206
207
208
209
233 #define CRIATOMEXASR_AMPLITUDE_ANALYZER_PARAMETER_SIDE_CHAIN_TABLE_ID (0)
234
241 #define CRIATOMEXASR_AMPLITUDE_ANALYZER_NUM_PARAMETERS (1)
242
256 #define CRIATOMEXASR_BIQUAD_FILTER_PARAMETER_TYPE (0)
257
269 #define CRIATOMEXASR_BIQUAD_FILTER_PARAMETER_FREQUENCY (1)
270
278 #define CRIATOMEXASR_BIQUAD_FILTER_PARAMETER_QUALITY_FACTOR (2)
279
288 #define CRIATOMEXASR_BIQUAD_FILTER_PARAMETER_GAIN (3)
289
296 #define CRIATOMEXASR_BIQUAD_FILTER_NUM_PARAMETERS (4)
297
302 #define CRIATOMEXASR_BIQUAD_FILTER_TYPE_LOWPASS (0)
303
308 #define CRIATOMEXASR_BIQUAD_FILTER_TYPE_HIGHPASS (1)
309
314 #define CRIATOMEXASR_BIQUAD_FILTER_TYPE_NOTCH (2)
315
320 #define CRIATOMEXASR_BIQUAD_FILTER_TYPE_LOWSHELF (3)
321
326 #define CRIATOMEXASR_BIQUAD_FILTER_TYPE_HIGHSHELF (4)
327
332 #define CRIATOMEXASR_BIQUAD_FILTER_TYPE_PEAKING (5)
333
341 #define CRIATOMEXASR_BANDPASS_FILTER_PARAMETER_LOW_FREQ (0)
342
350 #define CRIATOMEXASR_BANDPASS_FILTER_PARAMETER_HIGH_FREQ (1)
351
358 #define CRIATOMEXASR_BANDPASS_FILTER_NUM_PARAMETERS (2)
359
373 #define CRIATOMEXASR_CHORUS_PARAMETER_DELAY_TIME_MS (0)
374
382 #define CRIATOMEXASR_CHORUS_PARAMETER_DEPTH (1)
383
391 #define CRIATOMEXASR_CHORUS_PARAMETER_RATE (2)
392
400 #define CRIATOMEXASR_CHORUS_PARAMETER_FEEDBACK (3)
401
409 #define CRIATOMEXASR_CHORUS_PARAMETER_DRY_MIX (4)
410
415 #define CRIATOMEXASR_CHORUS_NUM_PARAMETERS (8)
416
424 #define CRIATOMEXASR_FLANGER_PARAMETER_DELAY_TIME_MS (0)
425
433 #define CRIATOMEXASR_FLANGER_PARAMETER_DEPTH (1)
434
442 #define CRIATOMEXASR_FLANGER_PARAMETER_RATE (2)
443
451 #define CRIATOMEXASR_FLANGER_PARAMETER_FEEDBACK (3)
452
460 #define CRIATOMEXASR_FLANGER_PARAMETER_DRY_MIX (4)
461
469 #define CRIATOMEXASR_FLANGER_PARAMETER_WET_MIX (5)
470
475 #define CRIATOMEXASR_FLANGER_NUM_PARAMETERS (6)
476
491 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_THRESHOLD (0)
492
500 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_RATIO (1)
501
509 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_ATTACK_TIME_MS (2)
510
518 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_RELEASE_TIME_MS (3)
519
527 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_OUTPUT_GAIN (4)
528
537 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_SURROUND_LINK (5)
538
547 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_SPLIT_EQ_TYPE (6)
548
556 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_SPLIT_EQ_FREQUENCY (7)
557
565 #define CRIATOMEXASR_COMPRESSOR_PARAMETER_SPLIT_EQ_QUALITY_FACTOR (8)
566
571 #define CRIATOMEXASR_COMPRESSOR_NUM_PARAMETERS (9)
572
577 #define CRIATOMEXASR_COMPRESSOR_SPLIT_EQ_TYPE_NONE (0)
578
583 #define CRIATOMEXASR_COMPRESSOR_SPLIT_EQ_TYPE_LOWPASS (1)
584
589 #define CRIATOMEXASR_COMPRESSOR_SPLIT_EQ_TYPE_HIGHPASS (2)
590
595 #define CRIATOMEXASR_COMPRESSOR_SPLIT_EQ_TYPE_BANDPASS (3)
596
601 #define CRIATOMEXASR_COMPRESSOR_SPLIT_EQ_TYPE_NOTCH (4)
602
607 #define CRIATOMEXASR_COMPRESSOR_MODE_NORMAL (0)
608
613 #define CRIATOMEXASR_COMPRESSOR_MODE_SIDE_CHAIN (1)
614
619 #define CRIATOMEXASR_COMPRESSOR_TYPE_PEAK (0)
620
625 #define CRIATOMEXASR_COMPRESSOR_TYPE_RMS (1)
626
633 #define CRIATOMEXASR_LIMITER_PARAMETER_THRESHOLD (0)
634
642 #define CRIATOMEXASR_LIMITER_PARAMETER_ATTACK_TIME_MS (1)
643
651 #define CRIATOMEXASR_LIMITER_PARAMETER_RELEASE_TIME_MS (2)
652
660 #define CRIATOMEXASR_LIMITER_PARAMETER_OUTPUT_GAIN (3)
661
670 #define CRIATOMEXASR_LIMITER_PARAMETER_SURROUND_LINK (4)
671
679 #define CRIATOMEXASR_LIMITER_PARAMETER_TYPE (5)
680
685 #define CRIATOMEXASR_LIMITER_NUM_PARAMETERS (6)
686
691 #define CRIATOMEXASR_LIMITER_MODE_NORMAL (0)
692
697 #define CRIATOMEXASR_LIMITER_MODE_SIDE_CHAIN (1)
698
703 #define CRIATOMEXASR_LIMITER_TYPE_PEAK (0)
704
709 #define CRIATOMEXASR_LIMITER_TYPE_RMS (1)
710
724 #define CRIATOMEXASR_DELAY_PARAMETER_DELAY_TIME_MS (0)
725
730 #define CRIATOMEXASR_DELAY_NUM_PARAMETERS (1)
731
736 #define CRIATOMEXASR_DELAY_PARAMETER_MIN_DELAY_TIME_MS (50.0f)
737
743 #define CRIATOMEXASR_DELAY_PARAMETER_MAX_DELAY_TIME_MS (1000.0f)
744
751 #define CRIATOMEXASR_ECHO_PARAMETER_DELAY_TIME_MS (0)
752
762 #define CRIATOMEXASR_ECHO_PARAMETER_FB_GAIN (1)
763
768 #define CRIATOMEXASR_ECHO_NUM_PARAMETERS (2)
769
774 #define CRIATOMEXASR_ECHO_PARAMETER_MIN_DELAY_TIME_MS (0.0f)
775
781 #define CRIATOMEXASR_ECHO_PARAMETER_MAX_DELAY_TIME_MS (1000.0f)
782
787 #define CRIATOMEXASR_ECHO_PARAMETER_MIN_FB_GAIN (-0.99f)
788
793 #define CRIATOMEXASR_ECHO_PARAMETER_MAX_FB_GAIN (0.99f)
794
799 #define CRIATOMEXASR_MULTITAP_DELAY_NUM_TAPS (4)
800
807 #define CRIATOMEXASR_MULTITAP_DELAY_NUM_CHANNELS (4)
808
814 #define CRIATOMEXASR_MULTITAP_DELAY_PARAMETER_MAX_DELAY_TIME_MS (10000.0f)
815
820 #define CRIATOMEXASR_MULTITAP_DELAY_NUM_PARAMETER_PAR_TAP (4)
821
829 #define CRIATOMEXASR_MULTITAP_DELAY_PARAMETER_MAX_SUM_FEEDBACK_GAIN (0.90f)
830
835 #define CRIATOMEXASR_MULTITAP_DELAY_NUM_PARAMETERS \
836 (CRIATOMEXASR_MULTITAP_DELAY_NUM_PARAMETER_PAR_TAP * CRIATOMEXASR_MULTITAP_DELAY_NUM_TAPS)
837
851 #define CRIATOMEXASR_DISTORTION_PARAMETER_DRIVE_DB (0)
852
860 #define CRIATOMEXASR_DISTORTION_PARAMETER_DRY_MIX (1)
861
869 #define CRIATOMEXASR_DISTORTION_PARAMETER_WET_MIX (2)
870
878 #define CRIATOMEXASR_DISTORTION_PARAMETER_OUTPUT_GAIN (3)
879
884 #define CRIATOMEXASR_DISTORTION_NUM_PARAMETERS (4)
885
901 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_ROOM (0)
902
910 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_ROOM_HF (1)
911
919 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_DECAY_TIME (2)
920
928 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_DECAY_HF_RATIO (3)
929
937 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_REFLECTIONS (4)
938
946 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_REFLECTIONS_DELAY (5)
947
955 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_REVERB (6)
956
964 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_REVERB_DELAY (7)
965
973 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_DIFFUSION (8)
974
982 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_DENSITY (9)
983
991 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_HF_REFERENCE (10)
992
1001 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_FRONT_INPUT (11)
1002
1011 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_REAR_INPUT (12)
1012
1021 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_CENTER_INPUT (13)
1022
1031 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_FRONT_OUTPUT (14)
1032
1041 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_REAR_OUTPUT (15)
1042
1051 #define CRIATOMEXASR_I3DL2_REVERB_PARAMETER_CENTER_OUTPUT (16)
1052
1057 #define CRIATOMEXASR_I3DL2_REVERB_NUM_PARAMETERS (17)
1058
1063 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_GENERIC \
1064 { -1000, -100, 1.49f, 0.83f, -2602, 0.007f, 200, 0.011f, 100.0f, 100.0f, 5000.0f}
1065
1070 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_PADDEDCELL \
1071 { -1000, -6000, 0.17f, 0.10f, -1204, 0.001f, 207, 0.002f, 100.0f, 100.0f, 5000.0f}
1072
1077 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_ROOM \
1078 { -1000, -454, 0.40f, 0.83f, -1646, 0.002f, 53, 0.003f, 100.0f, 100.0f, 5000.0f}
1079
1084 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_BATHROOM \
1085 { -1000, -1200, 1.49f, 0.54f, -370, 0.007f, 1030, 0.011f, 100.0f, 60.0f, 5000.0f}
1086
1091 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_LIVINGROOM \
1092 { -1000, -6000, 0.50f, 0.10f, -1376, 0.003f, -1104, 0.004f, 100.0f, 100.0f, 5000.0f}
1093
1098 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_STONEROOM \
1099 { -1000, -300, 2.31f, 0.64f, -711, 0.012f, 83, 0.017f, 100.0f, 100.0f, 5000.0f}
1100
1105 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_AUDITORIUM \
1106 { -1000, -476, 4.32f, 0.59f, -789, 0.020f, -289, 0.030f, 100.0f, 100.0f, 5000.0f}
1107
1112 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_CONCERTHALL \
1113 { -1000, -500, 3.92f, 0.70f, -1230, 0.020f, -2, 0.029f, 100.0f, 100.0f, 5000.0f}
1114
1119 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_CAVE \
1120 { -1000, 0, 2.91f, 1.30f, -602, 0.015f, -302, 0.022f, 100.0f, 100.0f, 5000.0f}
1121
1126 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_ARENA \
1127 { -1000, -698, 7.24f, 0.33f, -1166, 0.020f, 16, 0.030f, 100.0f, 100.0f, 5000.0f}
1128
1133 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_HANGAR \
1134 { -1000, -1000, 10.05f, 0.23f, -602, 0.020f, 198, 0.030f, 100.0f, 100.0f, 5000.0f}
1135
1140 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_CARPETEDHALLWAY \
1141 { -1000, -4000, 0.30f, 0.10f, -1831, 0.002f, -1630, 0.030f, 100.0f, 100.0f, 5000.0f}
1142
1147 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_HALLWAY \
1148 { -1000, -300, 1.49f, 0.59f, -1219, 0.007f, 441, 0.011f, 100.0f, 100.0f, 5000.0f}
1149
1154 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_STONECORRIDOR \
1155 { -1000, -237, 2.70f, 0.79f, -1214, 0.013f, 395, 0.020f, 100.0f, 100.0f, 5000.0f}
1156
1161 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_ALLEY \
1162 { -1000, -270, 1.49f, 0.86f, -1204, 0.007f, -4, 0.011f, 100.0f, 100.0f, 5000.0f}
1163
1168 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_FOREST \
1169 { -1000, -3300, 1.49f, 0.54f, -2560, 0.162f, -613, 0.088f, 79.0f, 100.0f, 5000.0f}
1170
1175 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_CITY \
1176 { -1000, -800, 1.49f, 0.67f, -2273, 0.007f, -2217, 0.011f, 50.0f, 100.0f, 5000.0f}
1177
1182 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_MOUNTAINS \
1183 { -1000, -2500, 1.49f, 0.21f, -2780, 0.300f, -2014, 0.100f, 27.0f, 100.0f, 5000.0f}
1184
1189 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_QUARRY \
1190 { -1000, -1000, 1.49f, 0.83f, -10000, 0.061f, 500, 0.025f, 100.0f, 100.0f, 5000.0f}
1191
1196 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_PLAIN \
1197 { -1000, -2000, 1.49f, 0.50f, -2466, 0.179f, -2514, 0.100f, 21.0f, 100.0f, 5000.0f}
1198
1203 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_PARKINGLOT \
1204 { -1000, 0, 1.65f, 1.50f, -1363, 0.008f, -1153, 0.012f, 100.0f, 100.0f, 5000.0f}
1205
1210 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_SEWERPIPE \
1211 { -1000, -1000, 2.81f, 0.14f, 429, 0.014f, 648, 0.021f, 80.0f, 60.0f, 5000.0f}
1212
1217 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_UNDERWATER \
1218 { -1000, -4000, 1.49f, 0.10f, -449, 0.007f, 1700, 0.011f, 100.0f, 100.0f, 5000.0f}
1219
1224 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_SMALLROOM \
1225 { -1000, -600, 1.10f, 0.83f, -400, 0.005f, 500, 0.010f, 100.0f, 100.0f, 5000.0f}
1226
1231 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_MEDIUMROOM \
1232 { -1000, -600, 1.30f, 0.83f, -1000, 0.010f, -200, 0.020f, 100.0f, 100.0f, 5000.0f}
1233
1238 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_LARGEROOM \
1239 { -1000, -600, 1.50f, 0.83f, -1600, 0.020f, -1000, 0.040f, 100.0f, 100.0f, 5000.0f}
1240
1245 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_MEDIUMHALL \
1246 { -1000, -600, 1.80f, 0.70f, -1300, 0.015f, -800, 0.030f, 100.0f, 100.0f, 5000.0f}
1247
1252 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_LARGEHALL \
1253 { -1000, -600, 1.80f, 0.70f, -2000, 0.030f, -1400, 0.060f, 100.0f, 100.0f, 5000.0f}
1254
1259 #define CRIATOMEXASR_I3DL2_REVERB_PRESET_PLATE \
1260 { -1000, -200, 1.30f, 0.90f, 0, 0.002f, 0, 0.010f, 100.0f, 75.0f, 5000.0f}
1261
1275 #define CRIATOMEXASR_MATRIX_MAX_NUM_CHANNELS (8)
1276
1281 #define CRIATOMEXASR_MATRIX_NUM_PARAMETERS \
1282 (CRIATOMEXASR_MATRIX_MAX_NUM_CHANNELS * CRIATOMEXASR_MATRIX_MAX_NUM_CHANNELS)
1283
1295 #define CRIATOMEXASR_MULTIBANDS_EQ_BAND_FILTER_TYPE_LOWSHELF (0)
1296
1301 #define CRIATOMEXASR_MULTIBANDS_EQ_BAND_FILTER_TYPE_HIGHSHELF (1)
1302
1307 #define CRIATOMEXASR_MULTIBANDS_EQ_BAND_FILTER_TYPE_PEAKING (2)
1308
1313 #define CRIATOMEXASR_MULTIBANDS_EQ_NUM_PARAMETER_PAR_BAND (4)
1314
1329 #define CRIATOMEXASR_PITCH_SHIFTER_PARAMETER_PITCH_RATIO (0)
1330
1339 #define CRIATOMEXASR_PITCH_SHIFTER_PARAMETER_FORMANT_RATIO (1)
1340
1349 #define CRIATOMEXASR_PITCH_SHIFTER_PARAMETER_MODE (2)
1350
1358 #define CRIATOMEXASR_PITCH_SHIFTER_PARAMETER_DATA_PITCH_FREQUENCY (3)
1359
1364 #define CRIATOMEXASR_PITCH_SHIFTER_NUM_PARAMETERS (4)
1365
1372 #define CRIATOMEXASR_PITCH_SHIFTER_MODE_MUSIC (0)
1373
1380 #define CRIATOMEXASR_PITCH_SHIFTER_MODE_VOCAL (1)
1381
1388 #define CRIATOMEXASR_PITCH_SHIFTER_MODE_SE (2)
1389
1396 #define CRIATOMEXASR_PITCH_SHIFTER_MODE_SPEECH (3)
1397
1411 #define CRIATOMEXASR_REVERB_PARAMETER_REVERB_TIME_MS (0)
1412
1420 #define CRIATOMEXASR_REVERB_PARAMETER_ROOM_SIZE_M (1)
1421
1429 #define CRIATOMEXASR_REVERB_PARAMETER_PRE_DELAY_TIME_MS (2)
1430
1438 #define CRIATOMEXASR_REVERB_PARAMETER_LOW_COF (3)
1439
1447 #define CRIATOMEXASR_REVERB_PARAMETER_HIGH_COF (4)
1448
1453 #define CRIATOMEXASR_REVERB_NUM_PARAMETERS (5)
1454
1461 #define CRIATOMEXASR_REVERB_MODE_DEF_SURROUND (0)
1462
1469 #define CRIATOMEXASR_REVERB_MODE_DEF_STEREO (1)
1470
1477 #define CRIATOMEXASR_REVERB_MODE_DEF_REAR_ONLY (2)
1478
1485 #define CRIATOMEXASR_REVERB_MODE_DEF_CENTER_ONLY (3)
1486
1500 #define CRIATOMEXASR_SURROUNDER_PARAMETER_MODE (0)
1501
1509 #define CRIATOMEXASR_SURROUNDER_PARAMETER_DELAY_TIME_MS (1)
1510
1518 #define CRIATOMEXASR_SURROUNDER_PARAMETER_GAIN (2)
1519
1524 #define CRIATOMEXASR_SURROUNDER_NUM_PARAMETERS (3)
1525
1526
1533 #define CRIATOMEXASR_SURROUNDER_MODE_STRAIGHT (0)
1534
1541 #define CRIATOMEXASR_SURROUNDER_MODE_CROSS (1)
1542
1549 #define CRIATOMEXASR_SURROUNDER_MODE_MATRIX (2)
1550
1564 #define CRIATOMEXASR_BIT_CRUSHER_PARAMETER_DRIVE_DB (0)
1565
1574 #define CRIATOMEXASR_BIT_CRUSHER_PARAMETER_DEPTH_BITS (1)
1575
1584 #define CRIATOMEXASR_BIT_CRUSHER_PARAMETER_DOWN_SAMPLING (2)
1585
1593 #define CRIATOMEXASR_BIT_CRUSHER_PARAMETER_DRY_MIX (3)
1594
1602 #define CRIATOMEXASR_BIT_CRUSHER_PARAMETER_WET_MIX (4)
1603
1611 #define CRIATOMEXASR_BIT_CRUSHER_PARAMETER_OUTPUT_GAIN (5)
1612
1617 #define CRIATOMEXASR_BIT_CRUSHER_NUM_PARAMETERS (6)
1618
1632 #define CRIATOMEXASR_PHASER_PARAMETER_STAGES (0)
1633
1641 #define CRIATOMEXASR_PHASER_PARAMETER_DEPTH (1)
1642
1650 #define CRIATOMEXASR_PHASER_PARAMETER_RATE (2)
1651
1659 #define CRIATOMEXASR_PHASER_PARAMETER_FEEDBACK (3)
1660
1668 #define CRIATOMEXASR_PHASER_PARAMETER_DRY_MIX (4)
1669
1677 #define CRIATOMEXASR_PHASER_PARAMETER_WET_MIX (5)
1678
1683 #define CRIATOMEXASR_PHASER_NUM_PARAMETERS (6)
1684
1685
1686
1687
1688
1689
1690
1691
1700 #define criAtomExAsr_SetDefaultConfig(p_config) \
1701 {\
1702 (p_config)->server_frequency = 60.0f;\
1703 (p_config)->num_buses = CRIATOMEXASR_DEFAULT_NUM_BUSES; \
1704 (p_config)->output_channels = CRIATOM_DEFAULT_OUTPUT_CHANNELS;\
1705 (p_config)->output_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
1706 (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_NATIVE;\
1707 (p_config)->context = NULL;\
1708 (p_config)->max_racks = 8;\
1709 (p_config)->ambisonics_order_type = CRIATOMAMBISONICS_ORDER_TYPE_NONE;\
1710 }
1711
1720 #define criAtomExAsr_SetDefaultConfigForBusAnalyzer(p_config) \
1721 {\
1722 (p_config)->interval = 50;\
1723 (p_config)->peak_hold_time = 1000;\
1724 }
1725
1726
1727
1728
1739 #define criAtomExAsrRack_SetDefaultConfig(p_config) \
1740 {\
1741 (p_config)->server_frequency = 60.0f;\
1742 (p_config)->num_buses = CRIATOMEXASR_DEFAULT_NUM_BUSES; \
1743 (p_config)->output_channels = CRIATOM_DEFAULT_OUTPUT_CHANNELS;\
1744 (p_config)->output_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
1745 (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_NATIVE;\
1746 (p_config)->output_rack_id = 0;\
1747 (p_config)->context = NULL;\
1748 }
1749
1750
1751
1752
1763 #define criAtomAsr_SetDefaultConfig(p_config) \
1764 {\
1765 (p_config)->server_frequency = 60.0f;\
1766 (p_config)->num_buses = CRIATOMEXASR_DEFAULT_NUM_BUSES; \
1767 (p_config)->output_channels = CRIATOM_DEFAULT_OUTPUT_CHANNELS;\
1768 (p_config)->output_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
1769 (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_NATIVE;\
1770 (p_config)->context = NULL;\
1771 (p_config)->max_racks = 8;\
1772 (p_config)->ambisonics_order_type = CRIATOMAMBISONICS_ORDER_TYPE_NONE;\
1773 }
1774
1775
1776
1777
1787 #define criAtomEx_SetDefaultConfigForUserPcmOutput(p_config) \
1788 { \
1789 criAtomEx_SetDefaultConfig(&(p_config)->atom_ex); \
1790 criAtomExAsr_SetDefaultConfig(&(p_config)->asr); \
1791 criAtomExHcaMx_SetDefaultConfig(&(p_config)->hca_mx); \
1792 }
1793
1794
1795
1796
1805 #define CRIATOMEXASR_CHORUS_PARAMETER_WET_MIX(tap_index) \
1806 ((tap_index) + 5)
1807
1817 #define CRIATOMEXASR_MATRIX_PARAMETER_LEVELS(input_ch, output_ch) \
1818 ((input_ch) * CRIATOMEXASR_MATRIX_MAX_NUM_CHANNELS + (output_ch))
1819
1830 #define CRIATOMEXASR_MULTIBANDS_EQ_PARAMETER_TYPE(band_index) \
1831 (CRIATOMEXASR_MULTIBANDS_EQ_NUM_PARAMETER_PAR_BAND * (band_index))
1832
1841 #define CRIATOMEXASR_MULTIBANDS_EQ_PARAMETER_FREQUENCY(band_index) \
1842 (CRIATOMEXASR_MULTIBANDS_EQ_NUM_PARAMETER_PAR_BAND * (band_index) + 1)
1843
1853 #define CRIATOMEXASR_MULTIBANDS_EQ_PARAMETER_QUALITY_FACTOR(band_index) \
1854 (CRIATOMEXASR_MULTIBANDS_EQ_NUM_PARAMETER_PAR_BAND * (band_index) + 2)
1855
1865 #define CRIATOMEXASR_MULTIBANDS_EQ_PARAMETER_GAIN(band_index) \
1866 (CRIATOMEXASR_MULTIBANDS_EQ_NUM_PARAMETER_PAR_BAND * (band_index) + 3)
1867
1873 #define CRIATOMEXASR_MULTIBANDS_EQ_NUM_PARAMETERS(num_bands) \
1874 ((num_bands) * CRIATOMEXASR_MULTIBANDS_EQ_NUM_PARAMETER_PAR_BAND)
1875
1884 #define CRIATOMEXASR_MULTITAP_DELAY_PARAMETER_DELAY_TIME_MS(i_tap) \
1885 (0 + (i_tap) * CRIATOMEXASR_MULTITAP_DELAY_NUM_PARAMETER_PAR_TAP)
1886
1895 #define CRIATOMEXASR_MULTITAP_DELAY_PARAMETER_LEVEL(i_tap) \
1896 (1 + (i_tap) * CRIATOMEXASR_MULTITAP_DELAY_NUM_PARAMETER_PAR_TAP)
1897
1907 #define CRIATOMEXASR_MULTITAP_DELAY_PARAMETER_AZIMUTH(i_tap) \
1908 (2 + (i_tap) * CRIATOMEXASR_MULTITAP_DELAY_NUM_PARAMETER_PAR_TAP)
1909
1919 #define CRIATOMEXASR_MULTITAP_DELAY_PARAMETER_FEEDBACK(i_tap) \
1920 (3 + (i_tap) * CRIATOMEXASR_MULTITAP_DELAY_NUM_PARAMETER_PAR_TAP)
1921
1922
1923
1924
1925
1926
1927
1928
1944 typedef struct CriAtomExAsrConfigTag {
1954 CriFloat32 server_frequency;
1955
1964 CriSint32 num_buses;
1965
1971 CriSint32 output_channels;
1972
1981 CriSint32 output_sampling_rate;
1982
1992 CriAtomSoundRendererType sound_renderer_type;
1993
2002 void *context;
2003
2009 CriSint32 max_racks;
2010
2025 CriAtomAmbisonicsOrderType ambisonics_order_type;
2026 } CriAtomExAsrConfig;
2027
2043 typedef struct {
2049 CriSint32 interval;
2050
2056 CriSint32 peak_hold_time;
2057 } CriAtomExAsrBusAnalyzerConfig;
2058
2070 typedef struct CriAtomExAsrBusAnalyzerInfoTag {
2076 CriSint32 num_channels;
2077
2084 CriFloat32 rms_levels[CRIATOMEXASR_MAX_CHANNELS];
2085
2091 CriFloat32 peak_levels[CRIATOMEXASR_MAX_CHANNELS];
2092
2098 CriFloat32 peak_hold_levels[CRIATOMEXASR_MAX_CHANNELS];
2099 } CriAtomExAsrBusAnalyzerInfo;
2100
2155 typedef void (*CriAtomExAsrBusFilterCbFunc)(void *obj, CriAtomPcmFormat format,
2156 CriSint32 num_channels, CriSint32 num_samples, void *data[]);
2157
2164 typedef const struct CriAfxInterfaceWithVersionTag* CriAtomExAsrAfxInterfaceWithVersionPtr;
2165
2166
2167
2168
2169
2178 typedef CriSint32 CriAtomExAsrRackId;
2179
2195 typedef struct CriAtomExAsrRackConfigTag {
2205 CriFloat32 server_frequency;
2206
2214 CriSint32 num_buses;
2215
2222 CriSint32 output_channels;
2223
2232 CriSint32 output_sampling_rate;
2233
2241 CriAtomSoundRendererType sound_renderer_type;
2242
2249 CriAtomExAsrRackId output_rack_id;
2250
2259 void *context;
2260 } CriAtomExAsrRackConfig;
2261
2262
2263
2264
2280 typedef struct CriAtomAsrConfigTag {
2290 CriFloat32 server_frequency;
2291
2299 CriSint32 num_buses;
2300
2307 CriSint32 output_channels;
2308
2317 CriSint32 output_sampling_rate;
2318
2328 CriAtomSoundRendererType sound_renderer_type;
2329
2338 void *context;
2339
2345 CriSint32 max_racks;
2346
2361 CriAtomAmbisonicsOrderType ambisonics_order_type;
2362 } CriAtomAsrConfig;
2363
2364
2365
2366
2374 typedef struct CriAtomExConfigForUserPcmOutputTag {
2375 CriAtomExConfig atom_ex;
2376 CriAtomExAsrConfig asr;
2377 CriAtomExHcaMxConfig hca_mx;
2378 } CriAtomExConfigForUserPcmOutput;
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389 #ifdef __cplusplus
2390 extern "C" {
2391 #endif
2392
2393
2394
2420 CriSint32 CRIAPI criAtomExAsr_CalculateWorkSize(const CriAtomExAsrConfig *config);
2421
2478 void CRIAPI criAtomExAsr_SetConfigForWorkSizeCalculation(const CriAtomExAsrConfig *config);
2479
2509 void CRIAPI criAtomExAsr_Initialize(
2510 const CriAtomExAsrConfig *config, void *work, CriSint32 work_size);
2511
2529 void CRIAPI criAtomExAsr_Finalize(void);
2530
2548 void CRIAPI criAtomExAsr_SetBusVolumeByName(const CriChar8* bus_name, CriFloat32 volume);
2549
2562 void CRIAPI criAtomExAsr_GetBusVolumeByName(const CriChar8* bus_name, CriFloat32 *volume);
2563
2584 void CRIAPI criAtomExAsr_SetBusPan3dByName(const CriChar8* bus_name,
2585 CriFloat32 pan3d_angle, CriFloat32 pan3d_distance, CriFloat32 pan3d_volume);
2586
2597 void CRIAPI criAtomExAsr_GetBusPan3dByName(const CriChar8* bus_name,
2598 CriFloat32 *pan3d_angle, CriFloat32 *pan3d_distance, CriFloat32 *pan3d_volume);
2599
2625 void CRIAPI criAtomExAsr_SetBusMatrixByName(const CriChar8* bus_name,
2626 CriSint32 input_channels, CriSint32 output_channels, const CriFloat32 matrix[]);
2627
2645 void CRIAPI criAtomExAsr_SetBusSendLevelByName(
2646 const CriChar8* bus_name, const CriChar8* sendto_bus_name, CriFloat32 level);
2647
2665 void CRIAPI criAtomExAsr_SetEffectParameter(
2666 const CriChar8* bus_name, const CriChar8* effect_name,
2667 const CriUint32 parameter_index, const CriFloat32 parameter_value);
2668
2679 void CRIAPI criAtomExAsr_UpdateEffectParameters(const CriChar8* bus_name, const CriChar8* effect_name);
2680
2696 CriFloat32 CRIAPI criAtomExAsr_GetEffectParameter(
2697 const CriChar8* bus_name, const CriChar8* effect_name,
2698 const CriUint32 parameter_index);
2699
2716 void CRIAPI criAtomExAsr_SetEffectBypass(
2717 const CriChar8* bus_name, const CriChar8* effect_name,
2718 const CriBool bypass);
2719
2772 void CRIAPI criAtomExAsr_AttachBusAnalyzerByName(
2773 const CriChar8* bus_name, const CriAtomExAsrBusAnalyzerConfig* config);
2774
2783 void CRIAPI criAtomExAsr_DetachBusAnalyzerByName(const CriChar8* bus_name);
2784
2794 void CRIAPI criAtomExAsr_GetBusAnalyzerInfoByName(
2795 const CriChar8* bus_name, CriAtomExAsrBusAnalyzerInfo *info);
2796
2818 void CRIAPI criAtomExAsr_SetBusFilterCallbackByName(const CriChar8* bus_name,
2819 CriAtomExAsrBusFilterCbFunc pre_func, CriAtomExAsrBusFilterCbFunc post_func, void *obj);
2820
2834 CriSint32 CRIAPI criAtomExAsr_GetNumBuses(void);
2835
2858 CriBool CRIAPI criAtomExAsr_RegisterEffectInterface(CriAtomExAsrAfxInterfaceWithVersionPtr afx_interface);
2859
2875 void CRIAPI criAtomExAsr_UnregisterEffectInterface(CriAtomExAsrAfxInterfaceWithVersionPtr afx_interface);
2876
2877
2878
2879
2905 CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSize(const CriAtomExAsrRackConfig *config);
2906
2926 CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSettingFromConfig(
2927 const CriAtomExAsrRackConfig *config, const CriChar8 *setting);
2928
2949 CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSettingFromAcfDataAndConfig(
2950 void *acf_data, CriSint32 acf_data_size,
2951 const CriAtomExAsrRackConfig *rack_config, const CriChar8 *setting);
2952
2988 CriAtomExAsrRackId CRIAPI criAtomExAsrRack_Create(
2989 const CriAtomExAsrRackConfig *config, void *work, CriSint32 work_size);
2990
3008 void CRIAPI criAtomExAsrRack_Destroy(CriAtomExAsrRackId rack_id);
3009
3028 CriSint32 CRIAPI criAtomExAsrRack_CalculateWorkSizeForDspBusSetting(
3029 CriAtomExAsrRackId rack_id, const CriChar8 *setting);
3030
3052 void CRIAPI criAtomExAsrRack_AttachDspBusSetting(CriAtomExAsrRackId rack_id,
3053 const CriChar8 *setting, void *work, CriSint32 work_size);
3054
3072 void CRIAPI criAtomExAsrRack_DetachDspBusSetting(CriAtomExAsrRackId rack_id);
3073
3085 void CRIAPI criAtomExAsrRack_ApplyDspBusSnapshot(CriAtomExAsrRackId rack_id,
3086 const CriChar8 *snapshot_name, CriSint32 time_ms);
3087
3097 const CriChar8* CRIAPI criAtomExAsrRack_GetAppliedDspBusSnapshotName(CriAtomExAsrRackId rack_id);
3098
3117 void CRIAPI criAtomExAsrRack_SetBusVolumeByName(CriAtomExAsrRackId rack_id,
3118 const CriChar8* bus_name, CriFloat32 volume);
3119
3133 void CRIAPI criAtomExAsrRack_GetBusVolumeByName(CriAtomExAsrRackId rack_id,
3134 const CriChar8* bus_name, CriFloat32* volume);
3135
3157 void CRIAPI criAtomExAsrRack_SetBusPan3dByName(CriAtomExAsrRackId rack_id, const CriChar8* bus_name,
3158 CriFloat32 pan3d_angle, CriFloat32 pan3d_distance, CriFloat32 pan3d_volume);
3159
3171 void CRIAPI criAtomExAsrRack_GetBusPan3dByName(CriAtomExAsrRackId rack_id, const CriChar8* bus_name,
3172 CriFloat32 *pan3d_angle, CriFloat32 *pan3d_distance, CriFloat32 *pan3d_volume);
3173
3200 void CRIAPI criAtomExAsrRack_SetBusMatrixByName(
3201 CriAtomExAsrRackId rack_id, const CriChar8* bus_name, CriSint32 input_channels,
3202 CriSint32 output_channels, const CriFloat32 matrix[]);
3203
3222 void CRIAPI criAtomExAsrRack_SetBusSendLevelByName(CriAtomExAsrRackId rack_id,
3223 const CriChar8* bus_name, const CriChar8* sendto_bus_name, CriFloat32 level);
3224
3242 void CRIAPI criAtomExAsrRack_SetEffectParameter(CriAtomExAsrRackId rack_id,
3243 const CriChar8* bus_name, const CriChar8* effect_name,
3244 const CriUint32 parameter_index, const CriFloat32 parameter_value);
3245
3257 void CRIAPI criAtomExAsrRack_UpdateEffectParameters(CriAtomExAsrRackId rack_id,
3258 const CriChar8* bus_name, const CriChar8* effect_name);
3259
3276 CriFloat32 CRIAPI criAtomExAsrRack_GetEffectParameter(CriAtomExAsrRackId rack_id,
3277 const CriChar8* bus_name, const CriChar8* effect_name,
3278 const CriUint32 parameter_index);
3279
3297 void CRIAPI criAtomExAsrRack_SetEffectBypass(CriAtomExAsrRackId rack_id,
3298 const CriChar8* bus_name, const CriChar8* effect_name, const CriBool bypass);
3299
3322 void CRIAPI criAtomExAsrRack_AttachBusAnalyzerByName(CriAtomExAsrRackId rack_id,
3323 const CriChar8* bus_name, const CriAtomExAsrBusAnalyzerConfig* config);
3324
3334 void CRIAPI criAtomExAsrRack_DetachBusAnalyzerByName(
3335 CriAtomExAsrRackId rack_id, const CriChar8* bus_name);
3336
3347 void CRIAPI criAtomExAsrRack_GetBusAnalyzerInfoByName(CriAtomExAsrRackId rack_id,
3348 const CriChar8* bus_name, CriAtomExAsrBusAnalyzerInfo *info);
3349
3372 void CRIAPI criAtomExAsrRack_SetBusFilterCallbackByName(CriAtomExAsrRackId rack_id,
3373 const CriChar8* bus_name, CriAtomExAsrBusFilterCbFunc pre_func,
3374 CriAtomExAsrBusFilterCbFunc post_func, void *obj);
3375
3391 void CRIAPI criAtomExAsrRack_SetAlternateRackId(
3392 CriAtomExAsrRackId rack_id, CriAtomExAsrRackId alt_rack_id);
3393
3408 CriSint32 CRIAPI criAtomExAsrRack_GetNumBuses(CriAtomExAsrRackId rack_id);
3409
3434 CriSint32 CRIAPI criAtomExAsr_GetPcmDataFloat32(
3435 CriSint32 output_channels, CriSint32 output_samples, CriFloat32 *output_buffer[]);
3436
3445 CriSint32 CRIAPI criAtomExAsr_GetNumBufferedSamples(void);
3446
3478 void CRIAPI criAtomExAsr_SetPcmBufferSize(CriSint32 num_samples);
3479
3505 CriSint32 CRIAPI criAtomExAsrRack_GetPcmDataFloat32(CriAtomExAsrRackId rack_id,
3506 CriSint32 output_channels, CriSint32 output_samples, CriFloat32 *output_buffer[]);
3507
3516 CriSint32 CRIAPI criAtomExAsrRack_GetNumBufferedSamples(CriAtomExAsrRackId rack_id);
3517
3518
3519
3520
3546 CriSint32 CRIAPI criAtomAsr_CalculateWorkSize(const CriAtomAsrConfig *config);
3547
3579 void CRIAPI criAtomAsr_Initialize(
3580 const CriAtomAsrConfig *config, void *work, CriSint32 work_size);
3581
3599 void CRIAPI criAtomAsr_Finalize(void);
3600
3601
3602
3603
3626 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForUserPcmOutput(
3627 const CriAtomExConfigForUserPcmOutput *config);
3628
3652 void CRIAPI criAtomEx_InitializeForUserPcmOutput(
3653 const CriAtomExConfigForUserPcmOutput *config, void *work, CriSint32 work_size);
3654
3667 void CRIAPI criAtomEx_FinalizeForUserPcmOutput(void);
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677 void CRIAPI criAtomExAsr_PauseOutputVoice(CriBool sw);
3678 CriBool CRIAPI criAtomExAsrRack_GetNumOutputSamples(
3679 CriAtomExAsrRackId rack_id, CriSint64 *num_samples, CriSint32 *sampling_rate);
3680 CriSint32 CRIAPI criAtomExAsrRack_GetOutputChannels(CriAtomExAsrRackId rack_id);
3681 CriUint16 CRIAPI criAtomExAsrRack_GetBusNumber(
3682 CriAtomExAsrRackId rack_id, const CriChar8 *bus_name);
3683 void CRIAPI criAtomAsr_PauseOutputVoice(CriBool sw);
3684 CriSint32 CRIAPI criAtomExAsrRack_GetAmbisonicRackId(void);
3685
3686 #ifdef __cplusplus
3687 }
3688 #endif
3689
3690
3691
3692
3693
3694 #define CRIATOMEXASR_DEFAULT_NUM_BASES (CRIATOMEXASR_DEFAULT_NUM_BUSES)
3695 #define CRIATOMEXASR_MAX_BASES (CRIATOMEXASR_MAX_BUSES)
3696 #define criAtomExAsr_CalculateWorkSizeForDspBusSettingFromAcfData(acf_data, acf_buffer_size, setting_name) \
3697 criAtomEx_CalculateWorkSizeForDspBusSettingFromAcfData((acf_data), (acf_buffer_size), (setting_name))
3698 #define criAtomExAsr_CalculateWorkSizeForDspBusSetting(setting) \
3699 criAtomEx_CalculateWorkSizeForDspBusSetting(setting)
3700 #define criAtomExAsr_AttachDspBusSetting(setting, work, work_size) \
3701 criAtomEx_AttachDspBusSetting(setting, work, work_size)
3702 #define criAtomExAsr_DetachDspBusSetting() \
3703 criAtomEx_DetachDspBusSetting()
3704
3705 #define criAtomExAsr_SetDownmixMode(downmix_mode)
3706 #define criAtomExAsrRack_SetDownmixMode(rack_id, downmix_mode)
3707
3708
3709 #define CRIATOMEXASR_BIQUAD_FILTER_ANALYZER_NAME "CRIWARE/Biquad"
3710 #define CRIATOMEXASR_BANDPASS_FILTER_PARAMETER_TYPE (-1)
3711 #define CRIATOMEXASR_BUTTERWORTH_FILTER_PARAMETER_TYPE (-1)
3712 #define CRIATOMEXASR_BUTTERWORTH_FILTER_PARAMETER_LOW_FREQ (0)
3713 #define CRIATOMEXASR_BUTTERWORTH_FILTER_PARAMETER_HIGH_FREQ (1)
3714 #define CRIATOMEXASR_BUTTERWORTH_FILTER_NUM_PARAMETERS (2)
3715
3716
3717
3718
3719
3720
3721
3722 typedef enum {
3723 CRIATOMEXASR_DSP_ID_INVALID = 0,
3724 CRIATOMEXASR_DSP_ID_BANDPASS_FILTER,
3725 CRIATOMEXASR_DSP_ID_BIQUAD_FILTER,
3726 CRIATOMEXASR_DSP_ID_DELAY,
3727 CRIATOMEXASR_DSP_ID_ECHO,
3728 CRIATOMEXASR_DSP_ID_REVERB,
3729 CRIATOMEXASR_DSP_ID_PITCH_SHIFTER,
3730 CRIATOMEXASR_DSP_ID_3BAND_EQ,
3731 CRIATOMEXASR_DSP_ID_COMPRESSOR,
3732 CRIATOMEXASR_DSP_ID_COMPRESSOR_EX,
3733 CRIATOMEXASR_DSP_ID_CHORUS,
3734 CRIATOMEXASR_DSP_ID_FLANGER,
3735 CRIATOMEXASR_DSP_ID_DISTORTION,
3736 CRIATOMEXASR_DSP_ID_AMPLITUDE_ANALYZER,
3737 CRIATOMEXASR_DSP_ID_SURROUNDER,
3738 CRIATOMEXASR_DSP_ID_I3DL2_REVERB,
3739 CRIATOMEXASR_DSP_ID_MULTI_TAP_DELAY,
3740 CRIATOMEXASR_DSP_ID_LIMITER,
3741 CRIATOMEXASR_DSP_ID_MATRIX,
3742 CRIATOMEXASR_DSP_ID_32BANDS_EQ,
3743 CRIATOMEXASR_DSP_ID_BIT_CRUSHER,
3744 CRIATOMEXASR_DSP_ID_PHASER,
3745 CRIATOMEXASR_DSP_ID_NO_TYPE = 0xFF,
3746 CRIATOMEXASR_DSP_ID_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3747 } CriAtomExAsrDspId;
3748
3749 typedef struct CriAtomExAsrBandpassFilterParameterTag {
3750 CriFloat32 cof_high;
3751 CriFloat32 cof_low;
3752 } CriAtomExAsrBandpassFilterParameter;
3753
3754 typedef struct CriAtomExAsrBiquadFilterParameterTag {
3755 CriAtomExBiquadFilterType type;
3756 CriFloat32 frequency;
3757 CriFloat32 q_value;
3758 CriFloat32 gain;
3759 } CriAtomExAsrBiquadFilterParameter;
3760
3761 typedef struct CriAtomExAsrDelayParameterTag {
3762 CriFloat32 max_delay_time_ms;
3763 CriFloat32 delay_time_ms;
3764 } CriAtomExAsrDelayParameter;
3765
3766 typedef struct CriAtomExAsrEchoParameterTag {
3767 CriFloat32 max_delay_time_ms;
3768 CriFloat32 delay_time_ms;
3769 CriFloat32 gain;
3770 } CriAtomExAsrEchoParameter;
3771
3772 typedef enum {
3773 CRIATOMEXASR_REVERB_MODE_SURROUND = 0,
3774 CRIATOMEXASR_REVERB_MODE_STEREO,
3775 CRIATOMEXASR_REVERB_MODE_REAR_ONLY,
3776 CRIATOMEXASR_REVERB_MODE_CENTER_ONLY,
3777 CRIATOMEXASR_REVERB_MODE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3778 } CriAtomExAsrReverbMode;
3779
3780 typedef struct CriAtomExAsrReverbParameterTag {
3781 CriFloat32 max_predelay_time_ms;
3782 CriFloat32 max_room_size;
3783 CriAtomExAsrReverbMode mode;
3784 CriFloat32 reverb_time_ms;
3785 CriFloat32 room_size;
3786 CriFloat32 predelay_time_ms;
3787 CriFloat32 cof_low;
3788 CriFloat32 cof_high;
3789 } CriAtomExAsrReverbParameter;
3790
3791 typedef enum {
3792 CRIATOMEXASR_PITCHSHIFTER_WINDOW_WIDTH_128 = 0,
3793 CRIATOMEXASR_PITCHSHIFTER_WINDOW_WIDTH_256,
3794 CRIATOMEXASR_PITCHSHIFTER_WINDOW_WIDTH_512,
3795 CRIATOMEXASR_PITCHSHIFTER_WINDOW_WIDTH_1024,
3796 CRIATOMEXASR_PITCHSHIFTER_WINDOW_WIDTH_2048,
3797 CRIATOMEXASR_PITCHSHIFTER_WINDOW_WIDTH_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3798 } CriAtomExAsrPitchShifterWindowWidthType;
3799
3800 typedef enum {
3801 CRIATOMEXASR_PITCHSHIFTER_OVERLAP_1 = 0,
3802 CRIATOMEXASR_PITCHSHIFTER_OVERLAP_2,
3803 CRIATOMEXASR_PITCHSHIFTER_OVERLAP_4,
3804 CRIATOMEXASR_PITCHSHIFTER_OVERLAP_8,
3805 CRIATOMEXASR_PITCHSHIFTER_OVERLAP_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3806 } CriAtomExAsrPitchShifterOverlapType;
3807
3808 typedef struct CriAtomExAsrPitchShifterParameterTag {
3809 CriFloat32 pitch_cent;
3810 CriFloat32 formant_cent;
3811 CriSint32 mode;
3812 CriAtomExAsrPitchShifterWindowWidthType window_width;
3813 CriAtomExAsrPitchShifterOverlapType overlap;
3814 } CriAtomExAsrPitchShifterParameter;
3815
3816 typedef enum {
3817 CRIATOMEX_EQ_BAND_TYPE_LOWSHELF = 0,
3818 CRIATOMEX_EQ_BAND_TYPE_HIGHSHELF = 1,
3819 CRIATOMEX_EQ_BAND_TYPE_PEAKING = 2,
3820 CRIATOMEX_EQ_BAND_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3821 } CriAtomExAsrEqBandType;
3822
3823 typedef struct CriAtomExAsr3BandsEqParameterTag {
3824 struct {
3825 CriAtomExAsrEqBandType type;
3826 CriFloat32 frequency;
3827 CriFloat32 q_value;
3828 CriFloat32 gain;
3829 } bands[3];
3830 } CriAtomExAsr3BandsEqParameter;
3831
3832 typedef struct CriAtomExAsr32BandsEqParameterTag {
3833 CriSint32 num_used_bands;
3834 struct {
3835 CriAtomExAsrEqBandType type;
3836 CriFloat32 frequency;
3837 CriFloat32 q_value;
3838 CriFloat32 gain;
3839 } bands[32];
3840 } CriAtomExAsr32BandsEqParameter;
3841
3842 typedef struct CriAtomExAsrCompressorParameterTag {
3843 CriFloat32 threshold;
3844 CriFloat32 ratio;
3845 CriFloat32 attack_time;
3846 CriFloat32 release_time;
3847 CriFloat32 output_gain;
3848 CriFloat32 surround_link;
3849 CriSint32 side_chain_input_bus_no;
3850 } CriAtomExAsrCompressorParameter;
3851
3852 typedef enum {
3853 CRIATOMEXASR_SPLIT_EQ_NONE = 0,
3854 CRIATOMEXASR_SPLIT_EQ_LOWPASS = 1,
3855 CRIATOMEXASR_SPLIT_EQ_HIGHPASS = 2,
3856 CRIATOMEXASR_SPLIT_EQ_BANDPASS = 3,
3857 CRIATOMEXASR_SPLIT_EQ_NOTCH = 4,
3858 CRIATOMEXASR_SPLIT_EQ_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3859 } CriAtomExAsrSplitEqType;
3860
3861 typedef struct CriAtomExAsrCompressorExParameterTag {
3862 CriAtomExAsrCompressorParameter base;
3863 CriAtomExAsrSplitEqType eq_type;
3864 CriFloat32 frequency;
3865 CriFloat32 q_value;
3866 } CriAtomExAsrCompressorExParameter;
3867
3868 typedef struct CriAtomExAsrChorusParameterTag {
3869 CriFloat32 max_delay_time_ms;
3870 CriFloat32 delay_time_ms;
3871 CriFloat32 rate;
3872 CriFloat32 depth;
3873 CriFloat32 feedback;
3874 CriFloat32 dry_mix;
3875 CriFloat32 wet_mix1;
3876 CriFloat32 wet_mix2;
3877 CriFloat32 wet_mix3;
3878 } CriAtomExAsrChorusParameter;
3879
3880 typedef struct CriAtomExAsrFlangerParameterTag {
3881 CriFloat32 delay_time_ms;
3882 CriFloat32 rate;
3883 CriFloat32 depth;
3884 CriFloat32 feedback;
3885 CriFloat32 dry_mix;
3886 CriFloat32 wet_mix;
3887 } CriAtomExAsrFlangerParameter;
3888
3889 typedef struct CriAtomExAsrDistortionParameterTag {
3890 CriFloat32 drive;
3891 CriFloat32 dry_mix;
3892 CriFloat32 wet_mix;
3893 CriFloat32 output_gain;
3894 } CriAtomExAsrDistortionParameter;
3895
3896 typedef enum {
3897 CRIATOMEX_SURROUNDER_MODE_STRAIGHT = 0,
3898 CRIATOMEX_SURROUNDER_MODE_CROSS = 1,
3899 CRIATOMEX_SURROUNDER_MODE_MATRIX = 2,
3900 CRIATOMEX_SURROUNDER_MODE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3901 } CriAtomExAsrSurrounderMode;
3902
3903 typedef struct CriAtomExAsrSurrounderParameterTag {
3904 CriFloat32 max_delay_time_ms;
3905 CriFloat32 delay_time_ms;
3906 CriFloat32 gain;
3907 CriAtomExAsrSurrounderMode mode;
3908 } CriAtomExAsrSurrounderParameter;
3909
3910 typedef struct CriAtomExAsrI3DL2ReverbParameterTag {
3911 CriFloat32 room;
3912 CriFloat32 room_hf;
3913 CriFloat32 decay_time;
3914 CriFloat32 decay_hf_ratio;
3915 CriFloat32 reflections;
3916 CriFloat32 reflections_delay;
3917 CriFloat32 reverb;
3918 CriFloat32 reverb_delay;
3919 CriFloat32 diffusion;
3920 CriFloat32 density;
3921 CriFloat32 hf_reference;
3922 CriFloat32 front_input;
3923 CriFloat32 rear_input;
3924 CriFloat32 center_input;
3925 CriFloat32 front_output;
3926 CriFloat32 rear_output;
3927 CriFloat32 center_output;
3928 } CriAtomExAsrI3DL2ReverbParameter;
3929
3930 typedef struct CriAtomExAsrMultiTapDelayParameterTag {
3931 CriFloat32 max_delay_time_ms;
3932 struct {
3933 CriFloat32 delay_time_ms;
3934 CriFloat32 level;
3935 CriFloat32 pan;
3936 CriFloat32 feedback;
3937 } taps[4];
3938 } CriAtomExAsrMultiTapDelayParameter;
3939
3940 typedef enum {
3941 CRIATOMEX_LIMITER_TYPE_PEAK = 0,
3942 CRIATOMEX_LIMITER_TYPE_RMS = 1,
3943 CRIATOMEX_LIMITER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
3944 } CriAtomExAsrLimiterType;
3945
3946 typedef struct CriAtomExAsrLimiterParameterTag {
3947 CriAtomExAsrLimiterType type;
3948 CriFloat32 threshold;
3949 CriFloat32 attack_time;
3950 CriFloat32 release_time;
3951 CriFloat32 output_gain;
3952 CriFloat32 surround_link;
3953 CriSint32 side_chain_input_bus_no;
3954 } CriAtomExAsrLimiterParameter;
3955
3956 typedef struct CriAtomExAsrMatrixParameterTag {
3957 CriFloat32 levels[CRIATOMEXASR_MAX_CHANNELS][CRIATOMEXASR_MAX_CHANNELS];
3958 } CriAtomExAsrMatrixParameter;
3959
3960 #ifdef __cplusplus
3961 extern "C" {
3962 #endif
3963
3970 void CRIAPI criAtomExAsr_SetDspParameter(
3971 CriSint32 bus_no, CriAtomExAsrDspId dsp_id, const void* parameter);
3972
3979 void CRIAPI criAtomExAsr_SetDspParameterByName(
3980 const CriChar8* bus_name, CriAtomExAsrDspId dsp_id, const void* parameter);
3981
3988 void CRIAPI criAtomExAsr_GetDspParameter(
3989 CriSint32 bus_no, CriAtomExAsrDspId dsp_id, void* parameter_buf, CriSint32 parameter_size);
3990
3997 void CRIAPI criAtomExAsr_GetDspParameterByName(
3998 const CriChar8* bus_name, CriAtomExAsrDspId dsp_id, void* parameter_buf, CriSint32 parameter_size);
3999
4006 void CRIAPI criAtomExAsr_SetDspBypass(
4007 CriSint32 bus_no, CriAtomExAsrDspId dsp_id, CriBool bypass);
4008
4015 void CRIAPI criAtomExAsr_SetDspBypassByName(
4016 const CriChar8* bus_name, CriAtomExAsrDspId dsp_id, CriBool bypass);
4017
4023 void CRIAPI criAtomExAsr_SetBusVolume(CriSint32 bus_no, CriFloat32 volume);
4024
4030 void CRIAPI criAtomExAsr_GetBusVolume(CriSint32 bus_no, CriFloat32 *volume);
4031
4037 void CRIAPI criAtomExAsr_SetBusPan3d(CriSint32 bus_no,
4038 CriFloat32 pan3d_angle, CriFloat32 pan3d_distance, CriFloat32 pan3d_volume);
4039
4045 void CRIAPI criAtomExAsr_GetBusPan3d(CriSint32 bus_no,
4046 CriFloat32 *pan3d_angle, CriFloat32 *pan3d_distance, CriFloat32 *pan3d_volume);
4047
4053 void CRIAPI criAtomExAsr_SetBusMatrix(CriSint32 bus_no,
4054 CriSint32 input_channels, CriSint32 output_channels, const CriFloat32 matrix[]);
4055
4061 void CRIAPI criAtomExAsr_SetBusSendLevel(
4062 CriSint32 bus_no, CriSint32 sendto_no, CriFloat32 level);
4069 void CRIAPI criAtomExAsr_AttachBusAnalyzer(
4070 CriSint32 bus_no, const CriAtomExAsrBusAnalyzerConfig* config);
4071
4077 void CRIAPI criAtomExAsr_DetachBusAnalyzer(CriSint32 bus_no);
4078
4084 void CRIAPI criAtomExAsr_GetBusAnalyzerInfo(
4085 CriSint32 bus_no, CriAtomExAsrBusAnalyzerInfo *info);
4086
4092 void CRIAPI criAtomExAsr_SetBusFilterCallback(CriSint32 bus_no,
4093 CriAtomExAsrBusFilterCbFunc pre_func, CriAtomExAsrBusFilterCbFunc post_func, void *obj);
4094
4101 void CRIAPI criAtomExAsrRack_SetDspParameter(CriAtomExAsrRackId rack_id,
4102 CriSint32 bus_no, CriAtomExAsrDspId dsp_id, const void* parameter);
4103
4110 void CRIAPI criAtomExAsrRack_SetDspParameterByName(CriAtomExAsrRackId rack_id,
4111 const CriChar8* bus_name, CriAtomExAsrDspId dsp_id, const void* parameter);
4112
4119 void CRIAPI criAtomExAsrRack_GetDspParameter(CriAtomExAsrRackId rack_id,
4120 CriSint32 bus_no, CriAtomExAsrDspId dsp_id, void* parameter_buf, CriSint32 parameter_size);
4121
4128 void CRIAPI criAtomExAsrRack_GetDspParameterByName(CriAtomExAsrRackId rack_id,
4129 const CriChar8* bus_name, CriAtomExAsrDspId dsp_id, void* parameter_buf, CriSint32 parameter_size);
4130
4137 void CRIAPI criAtomExAsrRack_SetDspBypass(CriAtomExAsrRackId rack_id,
4138 CriSint32 bus_no, CriAtomExAsrDspId dsp_id, CriBool bypass);
4139
4146 void CRIAPI criAtomExAsrRack_SetDspBypassByName(CriAtomExAsrRackId rack_id,
4147 const CriChar8* bus_name, CriAtomExAsrDspId dsp_id, CriBool bypass);
4148
4154 void CRIAPI criAtomExAsrRack_SetBusVolume(CriAtomExAsrRackId rack_id,
4155 CriSint32 bus_no, CriFloat32 volume);
4156
4162 void CRIAPI criAtomExAsrRack_GetBusVolume(CriAtomExAsrRackId rack_id,
4163 CriSint32 bus_no, CriFloat32* volume);
4164
4170 void CRIAPI criAtomExAsrRack_SetBusPan3d(CriAtomExAsrRackId rack_id, CriSint32 bus_no,
4171 CriFloat32 pan3d_angle, CriFloat32 pan3d_distance, CriFloat32 pan3d_volume);
4172
4178 void CRIAPI criAtomExAsrRack_GetBusPan3d(CriAtomExAsrRackId rack_id, CriSint32 bus_no,
4179 CriFloat32 *pan3d_angle, CriFloat32 *pan3d_distance, CriFloat32 *pan3d_volume);
4180
4186 void CRIAPI criAtomExAsrRack_SetBusMatrix(
4187 CriAtomExAsrRackId rack_id, CriSint32 bus_no, CriSint32 input_channels,
4188 CriSint32 output_channels, const CriFloat32 matrix[]);
4189
4195 void CRIAPI criAtomExAsrRack_SetBusSendLevel(CriAtomExAsrRackId rack_id,
4196 CriSint32 bus_no, CriSint32 sendto_no, CriFloat32 level);
4197
4203 void CRIAPI criAtomExAsrRack_AttachBusAnalyzer(CriAtomExAsrRackId rack_id,
4204 CriSint32 bus_no, const CriAtomExAsrBusAnalyzerConfig* config);
4205
4211 void CRIAPI criAtomExAsrRack_DetachBusAnalyzer(
4212 CriAtomExAsrRackId rack_id, CriSint32 bus_no);
4213
4219 void CRIAPI criAtomExAsrRack_GetBusAnalyzerInfo(CriAtomExAsrRackId rack_id,
4220 CriSint32 bus_no, CriAtomExAsrBusAnalyzerInfo *info);
4221
4227 void CRIAPI criAtomExAsrRack_SetBusFilterCallback(CriAtomExAsrRackId rack_id,
4228 CriSint32 bus_no, CriAtomExAsrBusFilterCbFunc pre_func,
4229 CriAtomExAsrBusFilterCbFunc post_func, void *obj);
4230
4231 #ifdef __cplusplus
4232 }
4233 #endif
4234
4235
4236 #endif
4237
4238 -stdin