Unified · Split
| @@ -235,8 +235,16 @@ extern "C" { · 234 unmodified lines | ||
| 235 | 235 | |
| 236 | 236 | float median3f(float a, float b, float c); |
| 237 | 237 | |
| 238 | − void place_step_dd(float *buffer, int index, float phase, float w, float scale); | |
| 239 | − void place_slope_dd(float *buffer, int index, float phase, float w, float slope_delta); | |
| 238 | +#ifdef ITCMRAM | |
| 239 | +void __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) place_step_dd(float *buffer, int index, float phase, float w, float scale); | |
| 240 | +#else | |
| 241 | +void place_step_dd(float *buffer, int index, float phase, float w, float scale); | |
| 242 | +#endif | |
| 243 | +#ifdef ITCMRAM | |
| 244 | +void __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) place_slope_dd(float *buffer, int index, float phase, float w, float slope_delta); | |
| 245 | +#else | |
| 246 | +void place_slope_dd(float *buffer, int index, float phase, float w, float slope_delta); | |
| 247 | +#endif | |
| 240 | 248 | //============================================================================== |
| 241 | 249 | |
| 242 | 250 | #ifdef __cplusplus |
| @@ -674,7 +674,9 @@ extern "C" { · 673 unmodified lines | ||
| 674 | 674 | //============================================================================== |
| 675 | 675 | |
| 676 | 676 | |
| 677 | −#define FILLEN 256 | |
| 677 | +#define FILLEN 128 //was 256 in dekrispator code, but it seems like it just needs to be longer than dd step length (72) and probably a power of 2. | |
| 678 | + // smaller buffer means refilling more often but a less intense load each time it refills | |
| 679 | + | |
| 678 | 680 | |
| 679 | 681 | /*! |
| 680 | 682 | @defgroup tmbpulse tMBPulse |
| @@ -799,7 +801,7 @@ extern "C" { · 118 unmodified lines | ||
| 799 | 801 | float sync; |
| 800 | 802 | float syncdir; |
| 801 | 803 | int softsync; |
| 802 | − float _p, _w, _b, _z; | |
| 804 | + float _p, _w, _b, _z, quarterwaveoffset; | |
| 803 | 805 | int _j, _k; |
| 804 | 806 | float _f [FILLEN + LONGEST_DD_PULSE_LENGTH]; |
| 805 | 807 | float invSampleRate; |
| @@ -954,7 +956,9 @@ extern "C" { · 148 unmodified lines | ||
| 954 | 956 | void tMBSawPulse_initToPool(tMBSawPulse* const osc, tMempool* const mempool); |
| 955 | 957 | void tMBSawPulse_free(tMBSawPulse* const osc); |
| 956 | 958 | |
| 959 | + | |
| 957 | 960 | float tMBSawPulse_tick(tMBSawPulse* const osc); |
| 961 | + float tMBSawPulse_sync(tMBSawPulse* const osc, float value); | |
| 958 | 962 | void tMBSawPulse_setFreq(tMBSawPulse* const osc, float f); |
| 959 | 963 | float tMBSawPulse_sync(tMBSawPulse* const osc, float sync); |
| 960 | 964 | void tMBSawPulse_setPhase(tMBSawPulse* const osc, float phase); |
| @@ -451,8 +451,9 @@ extern "C" { · 450 unmodified lines | ||
| 451 | 451 | @param sampler A pointer to the relevant tMBSampler. |
| 452 | 452 | |
| 453 | 453 | @} */ |
| 454 | − | |
| 455 | −#define FILLEN 256 | |
| 454 | +#ifndef FILLEN | |
| 455 | +#define FILLEN 128 | |
| 456 | +#endif | |
| 456 | 457 | |
| 457 | 458 | typedef struct _tMBSampler |
| 458 | 459 | { |
| @@ -114,7 +114,7 @@ extern "C" { · 113 unmodified lines | ||
| 114 | 114 | |
| 115 | 115 | /* in minblep_tables.c: */ |
| 116 | 116 | extern const float_value_delta step_dd_table[]; |
| 117 | − extern const float slope_dd_table[]; | |
| 117 | + extern const float slope_dd_table[]; | |
| 118 | 118 | |
| 119 | 119 | /*! @} */ |
| 120 | 120 | |
| @@ -124,7 +124,11 @@ float tOversampler_tick(tOversampler* const osr, float input, float* oversample, · 123 unmodified lines | ||
| 124 | 124 | } |
| 125 | 125 | |
| 126 | 126 | // From CMSIS DSP Library |
| 127 | +#ifdef ITCMRAM | |
| 128 | +void __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) tOversampler_upsample(tOversampler* const osr, float input, float* output) | |
| 129 | +#else | |
| 127 | 130 | void tOversampler_upsample(tOversampler* const osr, float input, float* output) |
| 131 | +#endif | |
| 128 | 132 | { |
| 129 | 133 | _tOversampler* os = *osr; |
| 130 | 134 | |
| @@ -223,7 +227,11 @@ void tOversampler_upsample(tOversampler* const osr, float input, float* output) · 92 unmodified lines | ||
| 223 | 227 | } |
| 224 | 228 | |
| 225 | 229 | // From CMSIS DSP Library |
| 230 | +#ifdef ITCMRAM | |
| 231 | +float __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) tOversampler_downsample(tOversampler *const osr, float* input) | |
| 232 | +#else | |
| 226 | 233 | float tOversampler_downsample(tOversampler *const osr, float* input) |
| 234 | +#endif | |
| 227 | 235 | { |
| 228 | 236 | _tOversampler* os = *osr; |
| 229 | 237 | |
| @@ -613,6 +621,7 @@ float tLockhartWavefolder_tick(tLockhartWavefolder* const wf, float in) · 383 unmodified lines | ||
| 613 | 621 | // CRUSHER |
| 614 | 622 | //============================================================================================================ |
| 615 | 623 | #define SCALAR 5000.f |
| 624 | +#define INV_SCALAR 0.0002f | |
| 616 | 625 | |
| 617 | 626 | void tCrusher_init (tCrusher* const cr, LEAF* const leaf) |
| 618 | 627 | { |
| @@ -680,14 +689,14 @@ void tCrusher_setQuality (tCrusher* const cr, float val) · 61 unmodified lines | ||
| 680 | 689 | |
| 681 | 690 | c->div = 0.01f + val * SCALAR; |
| 682 | 691 | |
| 683 | − c->gain = (c->div / SCALAR) * 0.7f + 0.3f; | |
| 692 | + c->gain = (c->div * INV_SCALAR) * 0.7f + 0.3f; | |
| 684 | 693 | } |
| 685 | 694 | |
| 686 | 695 | // what decimal to round to |
| 687 | 696 | void tCrusher_setRound (tCrusher* const cr, float rnd) |
| 688 | 697 | { |
| 689 | 698 | _tCrusher* c = *cr; |
| 690 | − c->rnd = fabsf(rnd); | |
| 699 | + c->rnd = rnd; | |
| 691 | 700 | } |
| 692 | 701 | |
| 693 | 702 | void tCrusher_setSamplingRatio (tCrusher* const cr, float ratio) |
| @@ -695,5 +704,4 @@ void tCrusher_setSamplingRatio (tCrusher* const cr, float ratio) · 1 unmodified line | ||
| 695 | 704 | _tCrusher* c = *cr; |
| 696 | 705 | c->srr = ratio; |
| 697 | 706 | tSampleReducer_setRatio(&c->sReducer, ratio); |
| 698 | − | |
| 699 | 707 | } |
| @@ -323,7 +323,7 @@ float LEAF_round (float input, float rnd) · 322 unmodified lines | ||
| 323 | 323 | |
| 324 | 324 | float scale = 1.f / rnd; |
| 325 | 325 | |
| 326 | − return roundf(input * scale) / scale; | |
| 326 | + return roundf(input * scale) * rnd; | |
| 327 | 327 | } |
| 328 | 328 | |
| 329 | 329 | |
| @@ -365,7 +365,11 @@ float LEAF_softClip(float val, float thresh) · 35 unmodified lines | ||
| 365 | 365 | } |
| 366 | 366 | } |
| 367 | 367 | |
| 368 | −float LEAF_clip(float min, float val, float max) | |
| 368 | +#ifdef ITCMRAM | |
| 369 | +float __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) LEAF_clip(float min, float val, float max) | |
| 370 | +#else | |
| 371 | +float LEAF_clip(float min, float val, float max) | |
| 372 | +#endif | |
| 369 | 373 | { |
| 370 | 374 | float tempmin = min; |
| 371 | 375 | float tempmax = max; |
| @@ -566,7 +570,9 @@ void LEAF_generate_exp(float* buffer, float base, float start, float end, float · 194 unmodified lines | ||
| 566 | 570 | } |
| 567 | 571 | |
| 568 | 572 | // |
| 569 | −void LEAF_generate_table_skew_non_sym(float* buffer, float start, float end, float center, int size) | |
| 573 | + | |
| 574 | + | |
| 575 | +void LEAF_generate_table_skew_non_sym_double(float* buffer, float start, float end, float center, int size) | |
| 570 | 576 | { |
| 571 | 577 | double skew = log (0.5) / log ((center - start) / (end - start)); |
| 572 | 578 | double increment = 1.0 / (double)(size-1); |
| @@ -581,6 +587,21 @@ void LEAF_generate_table_skew_non_sym(float* buffer, float start, float end, flo · 8 unmodified lines | ||
| 581 | 587 | } |
| 582 | 588 | |
| 583 | 589 | |
| 590 | +void LEAF_generate_table_skew_non_sym(float* buffer, float start, float end, float center, int size) | |
| 591 | +{ | |
| 592 | + float skew = logf (0.5) / logf ((center - start) / (end - start)); | |
| 593 | + float increment = 1.0 / (float)(size-1); | |
| 594 | + float x = 0.0; | |
| 595 | + float proportion = 0.0; | |
| 596 | + for (int i = 0; i < size; i++) | |
| 597 | + { | |
| 598 | + proportion = expf (logf(x) / skew); | |
| 599 | + buffer[i] = (float)(start + (end - start) * proportion); | |
| 600 | + x += increment; | |
| 601 | + } | |
| 602 | +} | |
| 603 | + | |
| 604 | + | |
| 584 | 605 | void LEAF_generate_atodb(float* buffer, int size) |
| 585 | 606 | { |
| 586 | 607 | float increment = 1.0f / (float)(size-1); |
| @@ -846,40 +867,48 @@ float median3f(float a, float b, float c) · 259 unmodified lines | ||
| 846 | 867 | #if LEAF_INCLUDE_MINBLEP_TABLES |
| 847 | 868 | /// MINBLEPS |
| 848 | 869 | // https://github.com/MrBlueXav/Dekrispator_v2 blepvco.c |
| 870 | +#ifdef ITCMRAM | |
| 871 | +void __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) place_step_dd(float *buffer, int index, float phase, float w, float scale) | |
| 872 | +#else | |
| 849 | 873 | void place_step_dd(float *buffer, int index, float phase, float w, float scale) |
| 850 | − { | |
| 851 | − float r; | |
| 852 | − long i; | |
| 853 | − | |
| 854 | − r = MINBLEP_PHASES * phase / w; | |
| 855 | − i = lrintf(r - 0.5f); | |
| 856 | − r -= (float)i; | |
| 857 | − i &= MINBLEP_PHASE_MASK; /* extreme modulation can cause i to be out-of-range */ | |
| 858 | − | |
| 859 | − while (i < MINBLEP_PHASES * STEP_DD_PULSE_LENGTH) { | |
| 860 | − buffer[index] += scale * (step_dd_table[i].value + r * step_dd_table[i].delta); | |
| 861 | − i += MINBLEP_PHASES; | |
| 862 | − index++; | |
| 863 | − } | |
| 864 | − } | |
| 874 | +#endif | |
| 875 | +{ | |
| 876 | + float r; | |
| 877 | + long i; | |
| 878 | + | |
| 879 | + r = MINBLEP_PHASES * phase / w; | |
| 880 | + i = lrintf(r - 0.5f); | |
| 881 | + r -= (float)i; | |
| 882 | + i &= MINBLEP_PHASE_MASK; /* extreme modulation can cause i to be out-of-range */ | |
| 883 | + | |
| 884 | + while (i < MINBLEP_PHASES * STEP_DD_PULSE_LENGTH) { | |
| 885 | + buffer[index] += scale * (step_dd_table[i].value + r * step_dd_table[i].delta); | |
| 886 | + i += MINBLEP_PHASES; | |
| 887 | + index++; | |
| 888 | + } | |
| 889 | +} | |
| 890 | +#ifdef ITCMRAM | |
| 891 | +void __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) place_slope_dd(float *buffer, int index, float phase, float w, float slope_delta) | |
| 892 | +#else | |
| 865 | 893 | void place_slope_dd(float *buffer, int index, float phase, float w, float slope_delta) |
| 866 | − { | |
| 867 | − float r; | |
| 868 | − long i; | |
| 869 | − | |
| 870 | − r = MINBLEP_PHASES * phase / w; | |
| 871 | − i = lrintf(r - 0.5f); | |
| 872 | − r -= (float)i; | |
| 873 | − i &= MINBLEP_PHASE_MASK; /* extreme modulation can cause i to be out-of-range */ | |
| 874 | − | |
| 875 | − slope_delta *= w; | |
| 876 | − | |
| 877 | − while (i < MINBLEP_PHASES * SLOPE_DD_PULSE_LENGTH) { | |
| 878 | − buffer[index] += slope_delta * (slope_dd_table[i] + r * (slope_dd_table[i + 1] - slope_dd_table[i])); | |
| 879 | − i += MINBLEP_PHASES; | |
| 880 | − index++; | |
| 881 | − } | |
| 894 | +#endif | |
| 895 | +{ | |
| 896 | + float r; | |
| 897 | + long i; | |
| 898 | + | |
| 899 | + r = MINBLEP_PHASES * phase / w; | |
| 900 | + i = lrintf(r - 0.5f); | |
| 901 | + r -= (float)i; | |
| 902 | + i &= MINBLEP_PHASE_MASK; /* extreme modulation can cause i to be out-of-range */ | |
| 903 | + | |
| 904 | + slope_delta *= w; | |
| 905 | + | |
| 906 | + while (i < MINBLEP_PHASES * SLOPE_DD_PULSE_LENGTH) { | |
| 907 | + buffer[index] += slope_delta * (slope_dd_table[i] + r * (slope_dd_table[i + 1] - slope_dd_table[i])); | |
| 908 | + i += MINBLEP_PHASES; | |
| 909 | + index++; | |
| 882 | 910 | } |
| 911 | +} | |
| 883 | 912 | #endif // LEAF_INCLUDE_MINBLEP_TABLES |
| 884 | 913 | /*! @} */ |
| 885 | 914 | |
| @@ -16,6 +16,8 @@ · 15 unmodified lines | ||
| 16 | 16 | |
| 17 | 17 | #endif |
| 18 | 18 | |
| 19 | + | |
| 20 | + | |
| 19 | 21 | #if LEAF_INCLUDE_SINE_TABLE |
| 20 | 22 | // Cycle |
| 21 | 23 | void tCycle_init(tCycle* const cy, LEAF* const leaf) |
| @@ -1249,6 +1251,7 @@ void tMBTriangle_initToPool(tMBTriangle* const osc, tMempool* const pool) · 1227 unmodified lines | ||
| 1249 | 1251 | c->_j = 0; |
| 1250 | 1252 | c->_p = 0.0f; /* phase [0, 1) */ |
| 1251 | 1253 | c->_w = c->freq * c->invSampleRate; /* phase increment */ |
| 1254 | + c->quarterwaveoffset = c->_w * 0.25f; | |
| 1252 | 1255 | c->_b = 0.5f * (1.0f + c->waveform); /* duty cycle (0, 1) */ |
| 1253 | 1256 | c->_k = 0.0f; /* output state, 0 = high (0.5f), 1 = low (-0.5f) */ |
| 1254 | 1257 | memset (c->_f, 0, (FILLEN + STEP_DD_PULSE_LENGTH) * sizeof (float)); |
| @@ -1286,7 +1289,7 @@ float tMBTriangle_tick(tMBTriangle* const osc) · 31 unmodified lines | ||
| 1286 | 1289 | invB1 = 1.0f / b1; |
| 1287 | 1290 | if (sync > 0.0f && c->softsync > 0) c->syncdir = -c->syncdir; |
| 1288 | 1291 | |
| 1289 | − sw = w * c->syncdir; | |
| 1292 | + sw = w * c->syncdir + c->quarterwaveoffset; | |
| 1290 | 1293 | p += sw - (int)sw; |
| 1291 | 1294 | |
| 1292 | 1295 | if (sync > 0.0f && c->softsync == 0) { /* sync to master */ |
| @@ -1478,6 +1481,7 @@ void tMBTriangle_setFreq(tMBTriangle* const osc, float f) · 185 unmodified lines | ||
| 1478 | 1481 | _tMBTriangle* c = *osc; |
| 1479 | 1482 | c->freq = f; |
| 1480 | 1483 | c->_w = c->freq * c->invSampleRate; /* phase increment */ |
| 1484 | + c->quarterwaveoffset = c->_w * 0.25f; | |
| 1481 | 1485 | } |
| 1482 | 1486 | |
| 1483 | 1487 | void tMBTriangle_setWidth(tMBTriangle* const osc, float w) |
| @@ -1742,8 +1746,11 @@ void tMBSawPulse_free(tMBSawPulse* const osc) · 258 unmodified lines | ||
| 1742 | 1746 | |
| 1743 | 1747 | |
| 1744 | 1748 | |
| 1745 | − | |
| 1749 | +#ifdef ITCMRAM | |
| 1750 | +float __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) tMBSawPulse_tick(tMBSawPulse* const osc) | |
| 1751 | +#else | |
| 1746 | 1752 | float tMBSawPulse_tick(tMBSawPulse* const osc) |
| 1753 | +#endif | |
| 1747 | 1754 | { |
| 1748 | 1755 | _tMBSawPulse* c = *osc; |
| 1749 | 1756 | |
| @@ -1982,7 +1989,11 @@ void tMBSawPulse_setFreq(tMBSawPulse* const osc, float f) · 232 unmodified lines | ||
| 1982 | 1989 | c->_w = c->freq * c->invSampleRate; /* phase increment */ |
| 1983 | 1990 | } |
| 1984 | 1991 | |
| 1992 | +#ifdef ITCMRAM | |
| 1993 | +float __attribute__ ((section(".itcmram"))) __attribute__ ((aligned (32))) tMBSawPulse_sync(tMBSawPulse* const osc, float value) | |
| 1994 | +#else | |
| 1985 | 1995 | float tMBSawPulse_sync(tMBSawPulse* const osc, float value) |
| 1996 | +#endif | |
| 1986 | 1997 | { |
| 1987 | 1998 | _tMBSawPulse* c = *osc; |
| 1988 | 1999 | |
| @@ -10043,7 +10043,7 @@ const float __leaf_table_attack_decay_inc[ATTACK_DECAY_INC_TABLE_SIZE] = { · 10042 unmodified lines | ||
| 10043 | 10043 | 0.166809f, 0.166807f, 0.166804f, 0.166802f, 0.166799f, 0.166796f, 0.166794f, 0.166791f, 0.166789f, 0.166786f, 0.166784f, 0.166781f, 0.166779f, 0.166776f, 0.166774f, 0.166771f, 0.166768f, 0.166766f, 0.166763f, 0.166761f, |
| 10044 | 10044 | 0.166758f, 0.166756f, 0.166753f, 0.166751f, 0.166748f, 0.166746f, 0.166743f, 0.16674f, 0.166738f, 0.166735f, 0.166733f, 0.16673f, 0.166728f, 0.166725f, 0.166723f, 0.16672f, 0.166718f, 0.166715f, 0.166712f, 0.16671f, |
| 10045 | 10045 | 0.166707f, 0.166705f, 0.166702f, 0.1667f, 0.166697f, 0.166695f, 0.166692f, 0.16669f, 0.166687f, 0.166684f, 0.166682f, 0.166679f, 0.166677f, 0.166674f, 0.166672f, 0.166669f, |
| 10046 | −}; | |
| 10046 | +} _CONSTANT_DATA_LOCATION; | |
| 10047 | 10047 | #endif // LEAF_INCLUDE_ADSR_TABLES |
| 10048 | 10048 | //this filter table assumes midinote input scaled from 16-130, then scaled into 12-bit (4096 values). So to convert midinote to this format, do this (cutoff-16.0f) * 35.929824561403509f |
| 10049 | 10049 | #if LEAF_INCLUDE_FILTERTAN_TABLE |
| @@ -10253,7 +10253,7 @@ const float __leaf_table_filtertan[FILTERTAN_TABLE_SIZE] = { · 203 unmodified lines | ||
| 10253 | 10253 | 1.24185f, 1.245509f, 1.249186f, 1.252883f, 1.256599f, 1.260335f, 1.26409f, 1.267865f, 1.27166f, 1.275476f, 1.279312f, 1.283168f, 1.287045f, 1.290943f, 1.294862f, 1.298802f, 1.302763f, 1.306747f, 1.310752f, 1.314779f, |
| 10254 | 10254 | 1.318828f, 1.3229f, 1.326994f, 1.331111f, 1.335252f, 1.339415f, 1.343602f, 1.347812f, 1.352046f, 1.356305f, 1.360587f, 1.364894f, 1.369226f, 1.373583f, 1.377965f, 1.382373f, 1.386806f, 1.391265f, 1.39575f, 1.400261f, |
| 10255 | 10255 | 1.4048f, 1.409365f, 1.413957f, 1.418577f, 1.423224f, 1.427899f, 1.432603f, 1.437335f, 1.442095f, 1.446885f, 1.451704f, 1.456553f, 1.461431f, 1.46634f, 1.471279f, 1.476249f, |
| 10256 | −}; | |
| 10256 | +} _CONSTANT_DATA_LOCATION; | |
| 10257 | 10257 | #endif // LEAF_INCLUDE_FILTERTAN_TABLE |
| 10258 | 10258 | |
| 10259 | 10259 | #if LEAF_INCLUDE_MTOF_TABLE |
| @@ -10462,7 +10462,7 @@ const float __leaf_table_mtof1[MTOF1_TABLE_SIZE] = {34.66965f, 34.722983f, 34.77 · 202 unmodified lines | ||
| 10462 | 10462 | 16732.85848f, 16758.598847f, 16784.37881f, 16810.198431f, 16836.057771f, 16861.95689f, 16887.895851f, 16913.874713f, 16939.89354f, 16965.952391f, 16992.051329f, 17018.190415f, 17044.369711f, 17070.58928f, 17096.849182f, 17123.14948f, 17149.490236f, 17175.871513f, 17202.293372f, 17228.755877f, |
| 10463 | 10463 | 17255.259088f, 17281.803071f, 17308.387886f, 17335.013596f, 17361.680266f, 17388.387957f, 17415.136733f, 17441.926657f, 17468.757792f, 17495.630202f, 17522.54395f, 17549.4991f, 17576.495715f, 17603.533859f, 17630.613597f, 17657.734992f, 17684.898107f, 17712.103009f, 17739.34976f, 17766.638424f, |
| 10464 | 10464 | 17793.969068f, 17821.341754f, 17848.756548f, 17876.213515f, 17903.712719f, 17931.254226f, 17958.8381f, 17986.464406f, 18014.133211f, 18041.844578f, 18069.598575f, 18097.395266f, 18125.234716f, 18153.116993f, 18181.042161f, 18209.010287f, 18237.021437f, 18265.075676f, 18293.173072f, 18321.31369f, |
| 10465 | −18349.497597f, 18377.72486f, 18405.995546f, 18434.30972f, 18462.667451f, 18491.068804f, 18519.513848f, 18548.002649f, 18576.535275f, 18605.111793f, 18633.73227f, 18662.396775f, 18691.105375f, 18719.858137f, 18748.655131f, 18777.496423f }; | |
| 10465 | +18349.497597f, 18377.72486f, 18405.995546f, 18434.30972f, 18462.667451f, 18491.068804f, 18519.513848f, 18548.002649f, 18576.535275f, 18605.111793f, 18633.73227f, 18662.396775f, 18691.105375f, 18719.858137f, 18748.655131f, 18777.496423f } _CONSTANT_DATA_LOCATION; | |
| 10466 | 10466 | #endif // LEAF_INCLUDE_MTOF_TABLE |
| 10467 | 10467 | |
| 10468 | 10468 | #if LEAF_INCLUDE_ADC_TABLE |
| @@ -13950,7 +13950,7 @@ const float __leaf_table_tanh1[TANH1_TABLE_SIZE] = {-0.964028f, -0.964023f, -0.9 · 3481 unmodified lines | ||
| 13950 | 13950 | 0.963703f, 0.963707f, 0.963711f, 0.963716f, 0.96372f, 0.963724f, 0.963729f, 0.963733f, 0.963738f, 0.963742f, 0.963746f, 0.963751f, 0.963755f, 0.963759f, 0.963764f, 0.963768f, 0.963772f, 0.963777f, 0.963781f, 0.963785f, |
| 13951 | 13951 | 0.96379f, 0.963794f, 0.963798f, 0.963803f, 0.963807f, 0.963811f, 0.963816f, 0.96382f, 0.963824f, 0.963829f, 0.963833f, 0.963837f, 0.963842f, 0.963846f, 0.96385f, 0.963855f, 0.963859f, 0.963863f, 0.963868f, 0.963872f, |
| 13952 | 13952 | 0.963876f, 0.963881f, 0.963885f, 0.963889f, 0.963894f, 0.963898f, 0.963902f, 0.963907f, 0.963911f, 0.963915f, 0.96392f, 0.963924f, 0.963928f, 0.963933f, 0.963937f, 0.963941f, 0.963946f, 0.96395f, 0.963954f, 0.963959f, |
| 13953 | −0.963963f, 0.963967f, 0.963971f, 0.963976f, 0.96398f, 0.963984f, 0.963989f, 0.963993f, 0.963997f, 0.964002f, 0.964006f, 0.96401f, 0.964015f, 0.964019f, 0.964023f, 0.964028f, }; | |
| 13953 | +0.963963f, 0.963967f, 0.963971f, 0.963976f, 0.96398f, 0.963984f, 0.963989f, 0.963993f, 0.963997f, 0.964002f, 0.964006f, 0.96401f, 0.964015f, 0.964019f, 0.964023f, 0.964028f, } _CONSTANT_DATA_LOCATION; | |
| 13954 | 13954 | #endif // LEAF_INCLUDE_TANH_TABLE |
| 13955 | 13955 | |
| 13956 | 13956 | #if LEAF_INCLUDE_SINE_TABLE |
| @@ -14057,7 +14057,7 @@ const float __leaf_table_sinewave[SINE_TABLE_SIZE] = {0.0f, 0.00305f, 0.00613f, · 100 unmodified lines | ||
| 14057 | 14057 | -0.14673f, -0.14371f, -0.14069f, -0.13763f, -0.13458f, -0.13156f, -0.12851f, -0.12546f, -0.12244f, -0.11938f, -0.11633f, -0.11328f, -0.11023f, -0.10718f, -0.10413f, -0.10107f, -0.09802f, -0.09497f, -0.09192f, -0.08887f, |
| 14058 | 14058 | -0.08582f, -0.08276f, -0.07968f, -0.07663f, -0.07358f, -0.07053f, -0.06744f, -0.06439f, -0.06134f, -0.05826f, -0.05521f, -0.05215f, -0.04907f, -0.04602f, -0.04294f, -0.03989f, -0.03683f, -0.03375f, -0.0307f, -0.02762f, |
| 14059 | 14059 | -0.02457f, -0.02148f, -0.01843f, -0.01535f, -0.0123f, -0.00922f, -0.00616f, -0.00308f |
| 14060 | −}; | |
| 14060 | +} _CONSTANT_DATA_LOCATION; | |
| 14061 | 14061 | #endif // LEAF_INCLUDE_SINE_TABLE |
| 14062 | 14062 | |
| 14063 | 14063 | #if LEAF_INCLUDE_MINBLEP_TABLES |
| @@ -14086,8 +14086,7 @@ const float __leaf_table_sinewave[SINE_TABLE_SIZE] = {0.0f, 0.00305f, 0.00613f, · 22 unmodified lines | ||
| 14086 | 14086 | * |
| 14087 | 14087 | * Brandt, "Hard Sync Without Aliasing" (2001) |
| 14088 | 14088 | */ |
| 14089 | − | |
| 14090 | −const float_value_delta | |
| 14089 | +const float_value_delta | |
| 14091 | 14090 | step_dd_table[MINBLEP_PHASES * STEP_DD_PULSE_LENGTH + 1] = |
| 14092 | 14091 | { |
| 14093 | 14092 | { 0.000000e+00, 0.000000e+00},{ 0.000000e+00, 0.000000e+00},{ 0.000000e+00, 0.000000e+00},{ 0.000000e+00, 0.000000e+00}, |
| @@ -15243,7 +15242,7 @@ step_dd_table[MINBLEP_PHASES * STEP_DD_PULSE_LENGTH + 1] = · 1149 unmodified lines | ||
| 15243 | 15242 | {-2.486342e-09, 3.908079e-10},{-2.095534e-09, 4.032922e-10},{-1.692242e-09, 4.148309e-10},{-1.277411e-09, 4.254000e-10}, |
| 15244 | 15243 | {-8.520110e-10, 4.349773e-10},{-4.170337e-10, 4.170337e-10},{ 0.000000e+00, 0.000000e+00},{ 0.000000e+00, 0.000000e+00}, |
| 15245 | 15244 | { 0.000000e+00, 0.000000e+00} |
| 15246 | −}; | |
| 15245 | +} _CONSTANT_DATA_LOCATION; | |
| 15247 | 15246 | |
| 15248 | 15247 | const float |
| 15249 | 15248 | slope_dd_table [MINBLEP_PHASES * SLOPE_DD_PULSE_LENGTH + 1] = |
| @@ -15817,5 +15816,5 @@ slope_dd_table [MINBLEP_PHASES * SLOPE_DD_PULSE_LENGTH + 1] = · 567 unmodified lines | ||
| 15817 | 15816 | 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, |
| 15818 | 15817 | 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, |
| 15819 | 15818 | 0.000000e+00 |
| 15820 | −}; | |
| 15819 | +} _CONSTANT_DATA_LOCATION; | |
| 15821 | 15820 | #endif // LEAF_INCLUDE_MINBLEP_TABLES |
| @@ -66,6 +66,10 @@ · 65 unmodified lines | ||
| 66 | 66 | #define LEAF_USE_DYNAMIC_ALLOCATION 0 |
| 67 | 67 | #endif |
| 68 | 68 | |
| 69 | +#ifndef _CONSTANT_DATA_LOCATION | |
| 70 | +#define _CONSTANT_DATA_LOCATION | |
| 71 | +#endif | |
| 72 | + | |
| 69 | 73 | //============================================================================== |
| 70 | 74 | |
| 71 | 75 | #endif // LEAF_CONFIG_H_INCLUDED |