| @@ -3024,7 +3024,7 @@ void tTriLFO_initToPool (tTriLFO* const cy, tMempool* const mp) · 3023 unmodified lines |
| 3024 | 3024 | c->phase = 0; |
| 3025 | 3025 | c->invSampleRate = leaf->invSampleRate; |
| 3026 | 3026 | c->invSampleRateTimesTwoTo32 = (c->invSampleRate * TWO_TO_32); |
| 3027 | | − c->mask = TRI_TABLE_SIZE - 1; |
| 3027 | + //c->mask = TRI_TABLE_SIZE - 1; |
| 3028 | 3028 | tTriLFO_setFreq(cy, 220); |
| 3029 | 3029 | } |
| 3030 | 3030 | |
| @@ -3039,10 +3039,20 @@ void tTriLFO_free (tTriLFO* const cy) · 8 unmodified lines |
| 3039 | 3039 | float tTriLFO_tick(tTriLFO* const cy) |
| 3040 | 3040 | { |
| 3041 | 3041 | _tTriLFO* c = *cy; |
| 3042 | | − uint32_t idx; |
| 3043 | | − float frac, samp0, samp1; |
| 3042 | + //uint32_t idx; |
| 3043 | + //float frac, samp0, samp1; |
| 3044 | 3044 | // Phasor increment |
| 3045 | 3045 | c->phase += c->inc; |
| 3046 | + |
| 3047 | + //bitmask fun |
| 3048 | + // |
| 3049 | + uint32_t mask = c->phase >> 31; |
| 3050 | + int32_t val2 = c->phase + mask; |
| 3051 | + int32_t test = val2 ^ mask; |
| 3052 | + float output =( ((float)test * INV_TWO_TO_31)-0.5f) * 2.0f; |
| 3053 | + return output; |
| 3054 | + |
| 3055 | + /* |
| 3046 | 3056 | // Wavetable synthesis |
| 3047 | 3057 | idx = c->phase >> 21; |
| 3048 | 3058 | uint32_t idx2 = (idx + 1) & c->mask; |
| @@ -3054,7 +3064,9 @@ float tTriLFO_tick(tTriLFO* const cy) · 5 unmodified lines |
| 3054 | 3064 | float oct0 = (samp0 + (samp1 - samp0) * frac); |
| 3055 | 3065 | |
| 3056 | 3066 | |
| 3057 | | − return oct0; |
| 3067 | + return oct0; |
| 3068 | + */ |
| 3069 | + |
| 3058 | 3070 | } |
| 3059 | 3071 | |
| 3060 | 3072 | void tTriLFO_setFreq(tTriLFO* const cy, float freq) |
| @@ -3112,7 +3124,7 @@ float tSineTriLFO_tick (tSineTriLFO* const cy) · 51 unmodified lines |
| 3112 | 3124 | _tSineTriLFO* c = *cy; |
| 3113 | 3125 | float a = tCycle_tick(&c->sine); |
| 3114 | 3126 | float b = tTriLFO_tick(&c->tri); |
| 3115 | | − return (1 - c->shape) * a + c->shape * b; |
| 3127 | + return (1 - c->shape) * a + c->shape * -1.0f * b; |
| 3116 | 3128 | } |
| 3117 | 3129 | void tSineTriLFO_setFreq (tSineTriLFO* const cy, float freq) |
| 3118 | 3130 | { |