faker 1968
/
Effector_110613
Embed:
(wiki syntax)
Show/hide line numbers
Distotion_Unit.cpp
00001 /*****************************************************/ 00002 /* Distotion_Unit.cpp */ 00003 /* */ 00004 /*****************************************************/ 00005 00006 #define DIST_MAIN 00007 #include "Distotion_Unit.h" 00008 00009 #define LIMIT_P (32767) 00010 #define LIMIT_N (-32768) 00011 00012 int distotion(int iEffectIn) { 00013 00014 int iSignal; 00015 int iClip; 00016 00017 // Bypass ? 00018 if(g_iDistBypass == 0)return iEffectIn; 00019 00020 // Input Gain 00021 iSignal = iEffectIn * g_iDistInputGain / 10; 00022 00023 iClip = 32767 * g_iDistClipLevel / 100; 00024 00025 // Clip 00026 switch(g_iDistMode){ 00027 case 1: if (iSignal < 0)iSignal *= (-1); 00028 if (iSignal >= iClip)iSignal = iClip; 00029 break; 00030 case 2: if (iSignal >= iClip)iSignal = iClip; 00031 if (iSignal <= -iClip)iSignal = -iClip; 00032 break; 00033 case 3: if (iSignal >= iClip)iSignal = iClip; 00034 if (iSignal <= (-iClip / 2))iSignal = (-iClip / 2); 00035 break; 00036 default:break; 00037 } 00038 00039 // Output Gain 00040 iSignal = iSignal * g_iDistOutputGain / 10; 00041 if (iSignal >= LIMIT_P)iSignal = LIMIT_P; 00042 if (iSignal <= LIMIT_N)iSignal = LIMIT_N; 00043 00044 return iSignal; 00045 00046 } 00047 00048 #undef DIST_MAIN
Generated on Sat Jul 16 2022 21:12:01 by 1.7.2