修訂 | 837d41e90100e8ea3c7f7ee3316c493e7c2672dc (tree) |
---|---|
時間 | 2018-06-09 22:29:10 |
作者 | Teru Kamogashira <tkamogashira@user...> |
Commiter | Teru Kamogashira |
New Reflection Added
@@ -383,11 +383,11 @@ | ||
383 | 383 | p->fOSRCFact = value; |
384 | 384 | factorp = (long)std::ceil(value); if(factorp == 0) factorp = 1; |
385 | 385 | if(factorp != dsp_prev->getOSFactor()) |
386 | - { | |
387 | - lock(); | |
388 | - dsp_prev->setOSFactor((int)factorp, converter_type); | |
389 | - unlock(); | |
390 | - } | |
386 | + { | |
387 | + lock(); | |
388 | + dsp_prev->setOSFactor((int)factorp, converter_type); | |
389 | + unlock(); | |
390 | + } | |
391 | 391 | break; |
392 | 392 | case KODry: |
393 | 393 | dryDB = (p->fODry = value); |
@@ -487,38 +487,31 @@ | ||
487 | 487 | case KOReverbType: |
488 | 488 | type = (long)std::ceil(value); |
489 | 489 | switch(type) |
490 | - { | |
491 | - case 2: | |
492 | - dsp_prev->setReverbType(FV3_REVTYPE_ZREV); | |
493 | - p->fOReverbType = 2; | |
494 | - break; | |
495 | - case 1: | |
496 | - default: | |
497 | - dsp_prev->setReverbType(FV3_REVTYPE_ZREV2); | |
498 | - p->fOReverbType = 1; | |
499 | - break; | |
500 | - } | |
490 | + { | |
491 | + case 2: | |
492 | + dsp_prev->setReverbType(FV3_REVTYPE_ZREV); | |
493 | + p->fOReverbType = 2; | |
494 | + break; | |
495 | + case 1: | |
496 | + default: | |
497 | + dsp_prev->setReverbType(FV3_REVTYPE_ZREV2); | |
498 | + p->fOReverbType = 1; | |
499 | + break; | |
500 | + } | |
501 | 501 | break; |
502 | 502 | |
503 | 503 | case KOERType: |
504 | - type = (long)std::ceil(value); | |
504 | + type = (long)std::floor(value); | |
505 | 505 | lock(); |
506 | - switch(type) | |
507 | - { | |
506 | + //switch(type) | |
507 | + // { | |
508 | 508 | // case 3: |
509 | 509 | // dsp_eref->loadPresetReflection(FV3_EARLYREF_PRESET_2); |
510 | 510 | // p->fOERType = 3; |
511 | 511 | // break; |
512 | - case 2: | |
513 | - dsp_eref->loadPresetReflection(FV3_EARLYREF_PRESET_1); | |
514 | - p->fOERType = 2; | |
515 | - break; | |
516 | - case 1: | |
517 | - default: | |
518 | - dsp_eref->loadPresetReflection(FV3_EARLYREF_PRESET_0); | |
519 | - p->fOERType = 1; | |
520 | - break; | |
521 | - } | |
512 | + dsp_eref->loadPresetReflection(type); | |
513 | + type = dsp_eref->getCurrentPreset(); | |
514 | + p->fOERType = type; | |
522 | 515 | unlock(); |
523 | 516 | break; |
524 | 517 |
@@ -617,10 +610,13 @@ | ||
617 | 610 | else return LINCV(0,100,0,1,value); |
618 | 611 | |
619 | 612 | case KOReverbType: |
620 | - case KOERType: | |
621 | 613 | if(p2m) return LINCV(0,1,1,6,value); |
622 | 614 | else return LINCV(1,6,0,1,value); |
623 | 615 | |
616 | + case KOERType: | |
617 | + if(p2m) return LINCV(0,1,0,40,value); | |
618 | + else return LINCV(0,40,0,1,value); | |
619 | + | |
624 | 620 | case KOSpinFact: |
625 | 621 | case KOLFOFact: |
626 | 622 | case KOERefSend: |
@@ -652,8 +648,10 @@ | ||
652 | 648 | case KOSRCFact: |
653 | 649 | snprintf(text, kVstMaxParamStrLen, "%ld", dsp_prev->getOSFactor()); |
654 | 650 | break; |
651 | + case KOERType: | |
652 | + snprintf(text, kVstMaxParamStrLen, "%ld", dsp_eref->getCurrentPreset()); | |
653 | + break; | |
655 | 654 | case KOReverbType: |
656 | - case KOERType: | |
657 | 655 | int2string((VstInt32)p->getParameterValue(index), text, kVstMaxParamStrLen); |
658 | 656 | break; |
659 | 657 | default: |
@@ -731,10 +729,10 @@ | ||
731 | 729 | { |
732 | 730 | lock(); |
733 | 731 | try |
734 | - { | |
735 | - tmp1Block.alloc(sampleFrames, 2); | |
736 | - tmp2Block.alloc(sampleFrames, 2); | |
737 | - } | |
732 | + { | |
733 | + tmp1Block.alloc(sampleFrames, 2); | |
734 | + tmp2Block.alloc(sampleFrames, 2); | |
735 | + } | |
738 | 736 | catch(std::bad_alloc){ unlock(); return; } |
739 | 737 | unlock(); |
740 | 738 | } |
@@ -743,17 +741,17 @@ | ||
743 | 741 | { |
744 | 742 | dsp_eref->processreplace(inL,inR,tmp1Block.L,tmp1Block.R,(long int)sampleFrames); |
745 | 743 | for(long i = 0;i < sampleFrames;i ++) |
746 | - { | |
747 | - tmp2Block.L[i] = tmp1Block.L[i]*vERtoLate + inL[i]; | |
748 | - tmp2Block.R[i] = tmp1Block.R[i]*vERtoLate + inR[i]; | |
749 | - } | |
744 | + { | |
745 | + tmp2Block.L[i] = tmp1Block.L[i]*vERtoLate + inL[i]; | |
746 | + tmp2Block.R[i] = tmp1Block.R[i]*vERtoLate + inR[i]; | |
747 | + } | |
750 | 748 | dsp_prev->processreplace(tmp2Block.L,tmp2Block.R,outL,outR,(long int)sampleFrames); |
751 | 749 | pfloat_t dryR = UTILS::dB2R(dryDB), erR = UTILS::dB2R(erDB); |
752 | 750 | for(long i = 0;i < sampleFrames;i ++) |
753 | - { | |
754 | - outL[i] += tmp1Block.L[i]*erR + inL[i]*dryR; | |
755 | - outR[i] += tmp1Block.R[i]*erR + inR[i]*dryR; | |
756 | - } | |
751 | + { | |
752 | + outL[i] += tmp1Block.L[i]*erR + inL[i]*dryR; | |
753 | + outR[i] += tmp1Block.R[i]*erR + inR[i]*dryR; | |
754 | + } | |
757 | 755 | unlock(); |
758 | 756 | } |
759 | 757 | } |
@@ -29,6 +29,7 @@ | ||
29 | 29 | #include <vector> |
30 | 30 | #include <string> |
31 | 31 | #include <cstdio> |
32 | +#include <cmath> | |
32 | 33 | #include <typeinfo> |
33 | 34 | #include <audioeffectx.h> |
34 | 35 | #include <freeverb/earlyref.hpp> |
@@ -279,7 +279,7 @@ | ||
279 | 279 | dnl Uses static library |
280 | 280 | |
281 | 281 | CFLAGS="$CFLAGS $SPFLAGS $DEFINE" |
282 | -CXXFLAGS="$CFLAGS $CXXFLAGS" | |
282 | +CXXFLAGS="-std=gnu++03 $CFLAGS $CXXFLAGS" | |
283 | 283 | OBJCFLAGS="$CFLAGS $OBJCFLAGS" |
284 | 284 | OBJCXXFLAGS="$CFLAGS $OBJCXXFLAGS" |
285 | 285 | LDFLAGS="$LDFLAGS $SPFLAGS" |