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 | tBuffer samp; | 38 | tBuffer samp; |
| 39 | tMBSampler sampler; | 39 | tMBSampler sampler; |
| 40 | 40 | ||
| 41 | const int numWavetables = 1; | ||
| 42 | tWavetable wavetables[numWavetables]; | ||
| 43 | |||
| 41 | float gain; | 44 | float gain; |
| 42 | float dtime; | 45 | float dtime; |
| 43 | bool buttonState; | 46 | bool buttonState; |
| @@ -54,6 +57,8 @@ LEAF leaf; · 10 unmodified lines | |||
| 54 | #define MSIZE 2048000 | 57 | #define MSIZE 2048000 |
| 55 | char memory[MSIZE]; | 58 | char memory[MSIZE]; |
| 56 | 59 | ||
| 60 | int lastLoadedAudioSize = 0; | ||
| 61 | |||
| 57 | void LEAFTest_init (float sampleRate, int blockSize) | 62 | void LEAFTest_init (float sampleRate, int blockSize) |
| 58 | { | 63 | { |
| 59 | LEAF_init(&leaf, sampleRate, blockSize, memory, MSIZE, &getRandomFloat); | 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 | tWaveset_init(&ws, set, 4, 2048, 10000.f, &leaf); | 85 | tWaveset_init(&ws, set, 4, 2048, 10000.f, &leaf); |
| 81 | tWaveset_setIndexGain(&ws, 0, -1.0f); | 86 | tWaveset_setIndexGain(&ws, 0, -1.0f); |
| 87 | |||
| 88 | lastLoadedAudioSize = 0; | ||
| 89 | loadedAudio.clear(); | ||
| 82 | } | 90 | } |
| 83 | 91 | ||
| 84 | inline double getSawFall(double angle) { | 92 | inline double getSawFall(double angle) { |
| @@ -92,12 +100,12 @@ inline double getSawFall(double angle) { · 7 unmodified lines | |||
| 92 | 100 | ||
| 93 | float LEAFTest_tick (float input) | 101 | float LEAFTest_tick (float input) |
| 94 | { | 102 | { |
| 95 | // return tRetune_tick(&retune, input)[0]; | 103 | float out = 0.0f; |
| 96 | // return tSimpleRetune_tick(&sretune, input); | 104 | for (int i = 0; i < fmin(loadedAudio.size(), numWavetables); ++i) |
| 97 | // tMBPulse_sync(&bpulse, tPhasor_tick(&phasor) * 2.f - 1.f); | 105 | { |
| 98 | // return tMBPulse_tick(&bpulse); | 106 | out += tWavetable_tick(&wavetables[i]); |
| 99 | // return tWavetable_tick(&wt); | 107 | } |
| 100 | return tWaveset_tick(&ws); | 108 | return out; |
| 101 | } | 109 | } |
| 102 | 110 | ||
| 103 | int firstFrame = 1; | 111 | int firstFrame = 1; |
| @@ -121,6 +129,15 @@ void LEAFTest_block (void) · 17 unmodified lines | |||
| 121 | val = getSliderValue("slider3"); | 129 | val = getSliderValue("slider3"); |
| 122 | // tRetune_setPitchFactor(&retune, val * 3.0f + 0.5f, 2); | 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 | void LEAFTest_controllerInput (int cnum, float cval) | 143 | void LEAFTest_controllerInput (int cnum, float cval) |