1 /** 2 Adds a chorus audio effect. 3 4 Copyright: 5 Copyright (c) 2007-2018 Juan Linietsky, Ariel Manzur. 6 Copyright (c) 2014-2018 Godot Engine contributors (cf. AUTHORS.md) 7 Copyright (c) 2017-2018 Godot-D contributors 8 9 License: $(LINK2 https://opensource.org/licenses/MIT, MIT License) 10 11 12 */ 13 module godot.audioeffectchorus; 14 import std.meta : AliasSeq, staticIndexOf; 15 import std.traits : Unqual; 16 import godot.d.meta; 17 import godot.core; 18 import godot.c; 19 import godot.d.bind; 20 import godot.d.reference; 21 import godot.object; 22 import godot.classdb; 23 import godot.audioeffect; 24 import godot.resource; 25 import godot.reference; 26 /** 27 Adds a chorus audio effect. 28 29 The effect applies a filter with voices to duplicate the audio source and manipulate it through the filter. 30 */ 31 @GodotBaseClass struct AudioEffectChorus 32 { 33 enum string _GODOT_internal_name = "AudioEffectChorus"; 34 public: 35 @nogc nothrow: 36 union { godot_object _godot_object; AudioEffect _GODOT_base; } 37 alias _GODOT_base this; 38 alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses); 39 package(godot) __gshared bool _classBindingInitialized = false; 40 package(godot) static struct _classBinding 41 { 42 __gshared: 43 @GodotName("set_voice_count") GodotMethod!(void, long) setVoiceCount; 44 @GodotName("get_voice_count") GodotMethod!(long) getVoiceCount; 45 @GodotName("set_voice_delay_ms") GodotMethod!(void, long, double) setVoiceDelayMs; 46 @GodotName("get_voice_delay_ms") GodotMethod!(double, long) getVoiceDelayMs; 47 @GodotName("set_voice_rate_hz") GodotMethod!(void, long, double) setVoiceRateHz; 48 @GodotName("get_voice_rate_hz") GodotMethod!(double, long) getVoiceRateHz; 49 @GodotName("set_voice_depth_ms") GodotMethod!(void, long, double) setVoiceDepthMs; 50 @GodotName("get_voice_depth_ms") GodotMethod!(double, long) getVoiceDepthMs; 51 @GodotName("set_voice_level_db") GodotMethod!(void, long, double) setVoiceLevelDb; 52 @GodotName("get_voice_level_db") GodotMethod!(double, long) getVoiceLevelDb; 53 @GodotName("set_voice_cutoff_hz") GodotMethod!(void, long, double) setVoiceCutoffHz; 54 @GodotName("get_voice_cutoff_hz") GodotMethod!(double, long) getVoiceCutoffHz; 55 @GodotName("set_voice_pan") GodotMethod!(void, long, double) setVoicePan; 56 @GodotName("get_voice_pan") GodotMethod!(double, long) getVoicePan; 57 @GodotName("set_wet") GodotMethod!(void, double) setWet; 58 @GodotName("get_wet") GodotMethod!(double) getWet; 59 @GodotName("set_dry") GodotMethod!(void, double) setDry; 60 @GodotName("get_dry") GodotMethod!(double) getDry; 61 } 62 bool opEquals(in AudioEffectChorus other) const { return _godot_object.ptr is other._godot_object.ptr; } 63 AudioEffectChorus opAssign(T : typeof(null))(T n) { _godot_object.ptr = null; } 64 bool opEquals(typeof(null) n) const { return _godot_object.ptr is null; } 65 mixin baseCasts; 66 static AudioEffectChorus _new() 67 { 68 static godot_class_constructor constructor; 69 if(constructor is null) constructor = _godot_api.godot_get_class_constructor("AudioEffectChorus"); 70 if(constructor is null) return typeof(this).init; 71 return cast(AudioEffectChorus)(constructor()); 72 } 73 @disable new(size_t s); 74 /** 75 76 */ 77 void setVoiceCount(in long voices) 78 { 79 checkClassBinding!(typeof(this))(); 80 ptrcall!(void)(_classBinding.setVoiceCount, _godot_object, voices); 81 } 82 /** 83 84 */ 85 long getVoiceCount() const 86 { 87 checkClassBinding!(typeof(this))(); 88 return ptrcall!(long)(_classBinding.getVoiceCount, _godot_object); 89 } 90 /** 91 92 */ 93 void setVoiceDelayMs(in long voice_idx, in double delay_ms) 94 { 95 checkClassBinding!(typeof(this))(); 96 ptrcall!(void)(_classBinding.setVoiceDelayMs, _godot_object, voice_idx, delay_ms); 97 } 98 /** 99 100 */ 101 double getVoiceDelayMs(in long voice_idx) const 102 { 103 checkClassBinding!(typeof(this))(); 104 return ptrcall!(double)(_classBinding.getVoiceDelayMs, _godot_object, voice_idx); 105 } 106 /** 107 108 */ 109 void setVoiceRateHz(in long voice_idx, in double rate_hz) 110 { 111 checkClassBinding!(typeof(this))(); 112 ptrcall!(void)(_classBinding.setVoiceRateHz, _godot_object, voice_idx, rate_hz); 113 } 114 /** 115 116 */ 117 double getVoiceRateHz(in long voice_idx) const 118 { 119 checkClassBinding!(typeof(this))(); 120 return ptrcall!(double)(_classBinding.getVoiceRateHz, _godot_object, voice_idx); 121 } 122 /** 123 124 */ 125 void setVoiceDepthMs(in long voice_idx, in double depth_ms) 126 { 127 checkClassBinding!(typeof(this))(); 128 ptrcall!(void)(_classBinding.setVoiceDepthMs, _godot_object, voice_idx, depth_ms); 129 } 130 /** 131 132 */ 133 double getVoiceDepthMs(in long voice_idx) const 134 { 135 checkClassBinding!(typeof(this))(); 136 return ptrcall!(double)(_classBinding.getVoiceDepthMs, _godot_object, voice_idx); 137 } 138 /** 139 140 */ 141 void setVoiceLevelDb(in long voice_idx, in double level_db) 142 { 143 checkClassBinding!(typeof(this))(); 144 ptrcall!(void)(_classBinding.setVoiceLevelDb, _godot_object, voice_idx, level_db); 145 } 146 /** 147 148 */ 149 double getVoiceLevelDb(in long voice_idx) const 150 { 151 checkClassBinding!(typeof(this))(); 152 return ptrcall!(double)(_classBinding.getVoiceLevelDb, _godot_object, voice_idx); 153 } 154 /** 155 156 */ 157 void setVoiceCutoffHz(in long voice_idx, in double cutoff_hz) 158 { 159 checkClassBinding!(typeof(this))(); 160 ptrcall!(void)(_classBinding.setVoiceCutoffHz, _godot_object, voice_idx, cutoff_hz); 161 } 162 /** 163 164 */ 165 double getVoiceCutoffHz(in long voice_idx) const 166 { 167 checkClassBinding!(typeof(this))(); 168 return ptrcall!(double)(_classBinding.getVoiceCutoffHz, _godot_object, voice_idx); 169 } 170 /** 171 172 */ 173 void setVoicePan(in long voice_idx, in double pan) 174 { 175 checkClassBinding!(typeof(this))(); 176 ptrcall!(void)(_classBinding.setVoicePan, _godot_object, voice_idx, pan); 177 } 178 /** 179 180 */ 181 double getVoicePan(in long voice_idx) const 182 { 183 checkClassBinding!(typeof(this))(); 184 return ptrcall!(double)(_classBinding.getVoicePan, _godot_object, voice_idx); 185 } 186 /** 187 188 */ 189 void setWet(in double amount) 190 { 191 checkClassBinding!(typeof(this))(); 192 ptrcall!(void)(_classBinding.setWet, _godot_object, amount); 193 } 194 /** 195 196 */ 197 double getWet() const 198 { 199 checkClassBinding!(typeof(this))(); 200 return ptrcall!(double)(_classBinding.getWet, _godot_object); 201 } 202 /** 203 204 */ 205 void setDry(in double amount) 206 { 207 checkClassBinding!(typeof(this))(); 208 ptrcall!(void)(_classBinding.setDry, _godot_object, amount); 209 } 210 /** 211 212 */ 213 double getDry() const 214 { 215 checkClassBinding!(typeof(this))(); 216 return ptrcall!(double)(_classBinding.getDry, _godot_object); 217 } 218 /** 219 The amount of voices in the effect. 220 */ 221 @property long voiceCount() 222 { 223 return getVoiceCount(); 224 } 225 /// ditto 226 @property void voiceCount(long v) 227 { 228 setVoiceCount(v); 229 } 230 /** 231 The effect's raw signal. 232 */ 233 @property double dry() 234 { 235 return getDry(); 236 } 237 /// ditto 238 @property void dry(double v) 239 { 240 setDry(v); 241 } 242 /** 243 The effect's processed signal. 244 */ 245 @property double wet() 246 { 247 return getWet(); 248 } 249 /// ditto 250 @property void wet(double v) 251 { 252 setWet(v); 253 } 254 /** 255 The voice's signal delay. 256 */ 257 @property double voice1DelayMs() 258 { 259 return getVoiceDelayMs(0); 260 } 261 /// ditto 262 @property void voice1DelayMs(double v) 263 { 264 setVoiceDelayMs(0, v); 265 } 266 /** 267 The voice's filter rate. 268 */ 269 @property double voice1RateHz() 270 { 271 return getVoiceRateHz(0); 272 } 273 /// ditto 274 @property void voice1RateHz(double v) 275 { 276 setVoiceRateHz(0, v); 277 } 278 /** 279 The voice filter's depth. 280 */ 281 @property double voice1DepthMs() 282 { 283 return getVoiceDepthMs(0); 284 } 285 /// ditto 286 @property void voice1DepthMs(double v) 287 { 288 setVoiceDepthMs(0, v); 289 } 290 /** 291 The voice's volume. 292 */ 293 @property double voice1LevelDb() 294 { 295 return getVoiceLevelDb(0); 296 } 297 /// ditto 298 @property void voice1LevelDb(double v) 299 { 300 setVoiceLevelDb(0, v); 301 } 302 /** 303 The voice's cutoff frequency. 304 */ 305 @property double voice1CutoffHz() 306 { 307 return getVoiceCutoffHz(0); 308 } 309 /// ditto 310 @property void voice1CutoffHz(double v) 311 { 312 setVoiceCutoffHz(0, v); 313 } 314 /** 315 The voice's pan level. 316 */ 317 @property double voice1Pan() 318 { 319 return getVoicePan(0); 320 } 321 /// ditto 322 @property void voice1Pan(double v) 323 { 324 setVoicePan(0, v); 325 } 326 /** 327 The voice's signal delay. 328 */ 329 @property double voice2DelayMs() 330 { 331 return getVoiceDelayMs(1); 332 } 333 /// ditto 334 @property void voice2DelayMs(double v) 335 { 336 setVoiceDelayMs(1, v); 337 } 338 /** 339 The voice's filter rate. 340 */ 341 @property double voice2RateHz() 342 { 343 return getVoiceRateHz(1); 344 } 345 /// ditto 346 @property void voice2RateHz(double v) 347 { 348 setVoiceRateHz(1, v); 349 } 350 /** 351 The voice filter's depth. 352 */ 353 @property double voice2DepthMs() 354 { 355 return getVoiceDepthMs(1); 356 } 357 /// ditto 358 @property void voice2DepthMs(double v) 359 { 360 setVoiceDepthMs(1, v); 361 } 362 /** 363 The voice's volume. 364 */ 365 @property double voice2LevelDb() 366 { 367 return getVoiceLevelDb(1); 368 } 369 /// ditto 370 @property void voice2LevelDb(double v) 371 { 372 setVoiceLevelDb(1, v); 373 } 374 /** 375 The voice's cutoff frequency. 376 */ 377 @property double voice2CutoffHz() 378 { 379 return getVoiceCutoffHz(1); 380 } 381 /// ditto 382 @property void voice2CutoffHz(double v) 383 { 384 setVoiceCutoffHz(1, v); 385 } 386 /** 387 The voice's pan level. 388 */ 389 @property double voice2Pan() 390 { 391 return getVoicePan(1); 392 } 393 /// ditto 394 @property void voice2Pan(double v) 395 { 396 setVoicePan(1, v); 397 } 398 /** 399 The voice's signal delay. 400 */ 401 @property double voice3DelayMs() 402 { 403 return getVoiceDelayMs(2); 404 } 405 /// ditto 406 @property void voice3DelayMs(double v) 407 { 408 setVoiceDelayMs(2, v); 409 } 410 /** 411 The voice's filter rate. 412 */ 413 @property double voice3RateHz() 414 { 415 return getVoiceRateHz(2); 416 } 417 /// ditto 418 @property void voice3RateHz(double v) 419 { 420 setVoiceRateHz(2, v); 421 } 422 /** 423 The voice filter's depth. 424 */ 425 @property double voice3DepthMs() 426 { 427 return getVoiceDepthMs(2); 428 } 429 /// ditto 430 @property void voice3DepthMs(double v) 431 { 432 setVoiceDepthMs(2, v); 433 } 434 /** 435 The voice's volume. 436 */ 437 @property double voice3LevelDb() 438 { 439 return getVoiceLevelDb(2); 440 } 441 /// ditto 442 @property void voice3LevelDb(double v) 443 { 444 setVoiceLevelDb(2, v); 445 } 446 /** 447 The voice's cutoff frequency. 448 */ 449 @property double voice3CutoffHz() 450 { 451 return getVoiceCutoffHz(2); 452 } 453 /// ditto 454 @property void voice3CutoffHz(double v) 455 { 456 setVoiceCutoffHz(2, v); 457 } 458 /** 459 The voice's pan level. 460 */ 461 @property double voice3Pan() 462 { 463 return getVoicePan(2); 464 } 465 /// ditto 466 @property void voice3Pan(double v) 467 { 468 setVoicePan(2, v); 469 } 470 /** 471 The voice's signal delay. 472 */ 473 @property double voice4DelayMs() 474 { 475 return getVoiceDelayMs(3); 476 } 477 /// ditto 478 @property void voice4DelayMs(double v) 479 { 480 setVoiceDelayMs(3, v); 481 } 482 /** 483 The voice's filter rate. 484 */ 485 @property double voice4RateHz() 486 { 487 return getVoiceRateHz(3); 488 } 489 /// ditto 490 @property void voice4RateHz(double v) 491 { 492 setVoiceRateHz(3, v); 493 } 494 /** 495 The voice filter's depth. 496 */ 497 @property double voice4DepthMs() 498 { 499 return getVoiceDepthMs(3); 500 } 501 /// ditto 502 @property void voice4DepthMs(double v) 503 { 504 setVoiceDepthMs(3, v); 505 } 506 /** 507 The voice's volume. 508 */ 509 @property double voice4LevelDb() 510 { 511 return getVoiceLevelDb(3); 512 } 513 /// ditto 514 @property void voice4LevelDb(double v) 515 { 516 setVoiceLevelDb(3, v); 517 } 518 /** 519 The voice's cutoff frequency. 520 */ 521 @property double voice4CutoffHz() 522 { 523 return getVoiceCutoffHz(3); 524 } 525 /// ditto 526 @property void voice4CutoffHz(double v) 527 { 528 setVoiceCutoffHz(3, v); 529 } 530 /** 531 The voice's pan level. 532 */ 533 @property double voice4Pan() 534 { 535 return getVoicePan(3); 536 } 537 /// ditto 538 @property void voice4Pan(double v) 539 { 540 setVoicePan(3, v); 541 } 542 }