Showing the changes to TestPlugin/Source/MyTest.cpp (1 of 5 files). Show all
Unified · Split
| @@ -38,6 +38,9 @@ tWaveset ws; · 37 unmodified lines | ||
| 38 | 38 | tBuffer samp; |
| 39 | 39 | tMBSampler sampler; |
| 40 | 40 | |
| 41 | +const int numWavetables = 1; | |
| 42 | +tWavetable wavetables[numWavetables]; | |
| 43 | + | |
| 41 | 44 | float gain; |
| 42 | 45 | float dtime; |
| 43 | 46 | bool buttonState; |
| @@ -54,6 +57,8 @@ LEAF leaf; · 10 unmodified lines | ||
| 54 | 57 | #define MSIZE 2048000 |
| 55 | 58 | char memory[MSIZE]; |
| 56 | 59 | |
| 60 | +int lastLoadedAudioSize = 0; | |
| 61 | + | |
| 57 | 62 | void LEAFTest_init (float sampleRate, int blockSize) |
| 58 | 63 | { |
| 59 | 64 | LEAF_init(&leaf, sampleRate, blockSize, memory, MSIZE, &getRandomFloat); |
| @@ -79,6 +84,9 @@ void LEAFTest_init (float sampleRate, int blockSize) · 19 unmodified lines | ||
| 79 | 84 | |
| 80 | 85 | tWaveset_init(&ws, set, 4, 2048, 10000.f, &leaf); |
| 81 | 86 | tWaveset_setIndexGain(&ws, 0, -1.0f); |
| 87 | + | |
| 88 | + lastLoadedAudioSize = 0; | |
| 89 | + loadedAudio.clear(); | |
| 82 | 90 | } |
| 83 | 91 | |
| 84 | 92 | inline double getSawFall(double angle) { |
| @@ -92,12 +100,12 @@ inline double getSawFall(double angle) { · 7 unmodified lines | ||
| 92 | 100 | |
| 93 | 101 | float LEAFTest_tick (float input) |
| 94 | 102 | { |
| 95 | −// return tRetune_tick(&retune, input)[0]; | |
| 96 | −// return tSimpleRetune_tick(&sretune, input); | |
| 97 | −// tMBPulse_sync(&bpulse, tPhasor_tick(&phasor) * 2.f - 1.f); | |
| 98 | −// return tMBPulse_tick(&bpulse); | |
| 99 | −// return tWavetable_tick(&wt); | |
| 100 | − return tWaveset_tick(&ws); | |
| 103 | + float out = 0.0f; | |
| 104 | + for (int i = 0; i < fmin(loadedAudio.size(), numWavetables); ++i) | |
| 105 | + { | |
| 106 | + out += tWavetable_tick(&wavetables[i]); | |
| 107 | + } | |
| 108 | + return out; | |
| 101 | 109 | } |
| 102 | 110 | |
| 103 | 111 | int firstFrame = 1; |
| @@ -121,6 +129,15 @@ void LEAFTest_block (void) · 17 unmodified lines | ||
| 121 | 129 | val = getSliderValue("slider3"); |
| 122 | 130 | // tRetune_setPitchFactor(&retune, val * 3.0f + 0.5f, 2); |
| 123 | 131 | |
| 132 | + | |
| 133 | + if (lastLoadedAudioSize < loadedAudio.size()) | |
| 134 | + { | |
| 135 | + int i = (loadedAudio.size() - 1) % numWavetables; | |
| 136 | + if (loadedAudio.size() - 1 >= numWavetables) tWavetable_free(&wavetables[i]); | |
| 137 | + tWavetable_init(&wavetables[i], loadedAudio[loadedAudio.size() - 1].getReadPointer(0), loadedAudio[loadedAudio.size() - 1].getNumSamples(), 20000, &leaf); | |
| 138 | + | |
| 139 | + lastLoadedAudioSize = loadedAudio.size(); | |
| 140 | + } | |
| 124 | 141 | } |
| 125 | 142 | |
| 126 | 143 | void LEAFTest_controllerInput (int cnum, float cval) |