diff options
author | Damien Zammit <damien@zamaudio.com> | 2018-03-06 21:45:10 +1100 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2018-03-06 21:45:10 +1100 |
commit | 9dbe977465ef6baa0dbadaf979d181df2fc7d11f (patch) | |
tree | ccab07b7cb7f8bb0df7a9305dad33f68f3322f70 /plugins/ZamGrains/ZamGrainsPlugin.cpp | |
parent | be6d7179d2ed1ad30f4418146128cbe6c73e0460 (diff) |
ZamGrains: Add moving parts to UI
Diffstat (limited to 'plugins/ZamGrains/ZamGrainsPlugin.cpp')
-rw-r--r-- | plugins/ZamGrains/ZamGrainsPlugin.cpp | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/plugins/ZamGrains/ZamGrainsPlugin.cpp b/plugins/ZamGrains/ZamGrainsPlugin.cpp index 7188e2e..da41328 100644 --- a/plugins/ZamGrains/ZamGrainsPlugin.cpp +++ b/plugins/ZamGrains/ZamGrainsPlugin.cpp @@ -80,6 +80,24 @@ void ZamGrainsPlugin::initParameter(uint32_t index, Parameter& parameter) parameter.ranges.min = -60.0f; parameter.ranges.max = 0.0f; break; + case paramGrainpos: + parameter.hints = kParameterIsOutput; + parameter.name = "Grain Position"; + parameter.symbol = "grpos"; + parameter.unit = " "; + parameter.ranges.def = 0.0f; + parameter.ranges.min = 0.0f; + parameter.ranges.max = 1.0f; + break; + case paramPlaypos: + parameter.hints = kParameterIsOutput; + parameter.name = "Playback Position"; + parameter.symbol = "playpos"; + parameter.unit = " "; + parameter.ranges.def = 0.0f; + parameter.ranges.min = 0.0f; + parameter.ranges.max = 1.0f; + break; } } @@ -102,6 +120,8 @@ void ZamGrainsPlugin::loadProgram(uint32_t index) playspeed = 1.f; grains = 1.f; gain = 0.f; + grainpos = 0.f; + playpos = 0.f; break; } @@ -130,6 +150,12 @@ float ZamGrainsPlugin::getParameterValue(uint32_t index) const case paramGain: return gain; break; + case paramGrainpos: + return grainpos; + break; + case paramPlaypos: + return playpos; + break; default: return 0.0f; } @@ -176,6 +202,8 @@ void ZamGrainsPlugin::activate() zidx2 = 0; zidxold = 0; zidx2old = 0; + grainpos = 0; + playpos = 0; } float ZamGrainsPlugin::sample_and_hold(int ctrl, float input, int *state) { @@ -241,7 +269,8 @@ void ZamGrainsPlugin::run(const float** inputs, float** outputs, uint32_t frames sampz * hanning(posphasor, windowsize) + sampz2 * hanning(outofphase, windowsize) ); - + grainpos = (float)zidx * 1000. / (srate * delaytime); + playpos = (float)posz * 1000. / (srate * delaytime); zidxold = zidx; zidx2old = zidx2; } |