18 this->
findSample = [](
float triggerLevel, std::vector<float> currentlyDisplayedData)
24 this->
findSample = [](
float triggerLevel, std::vector<float> currentlyDisplayedData)
34 this->
findSample = [](
float triggerLevel, std::vector<float> currentlyDisplayedData)
40 this->
findSample = [](
float triggerLevel, std::vector<float> currentlyDisplayedData)
56 std::vector<float> currentlyDisplayedData)
79 auto data = currentlyDisplayedData.begin();
80 auto numSamples = currentlyDisplayedData.size();
81 std::vector<float>::iterator firstToPlot;
84 auto condition = [](
float x,
float subseq,
float trig)
86 bool firstCondition = std::abs(x - trig) < 0.05;
87 bool secondCondition = subseq > x;
88 return firstCondition && secondCondition;
92 for (
auto i = currentlyDisplayedData.begin(); i < currentlyDisplayedData.end() - 1; ++i)
96 if (condition(i[0], i[1], triggerLevel))
98 int distance = std::distance(currentlyDisplayedData.begin(), firstToPlot);
110 float max = *std::max_element(currentlyDisplayedData.begin(), currentlyDisplayedData.end());
111 float triggerPoint = max * triggerLevel;
112 std::vector<float>::iterator firstToPlot;
114 auto data = currentlyDisplayedData.begin();
115 auto numSamples = currentlyDisplayedData.size();
118 auto condition = [](
float x,
float subseq,
float trig)
120 bool firstCondition = std::abs(x - trig) < 0.05;
121 bool secondCondition = subseq > x;
122 return firstCondition && secondCondition;
126 for (
auto i = currentlyDisplayedData.begin(); i < currentlyDisplayedData.end() - 1; ++i)
130 if (condition(i[0], i[1], triggerPoint))
132 int distance = std::distance(currentlyDisplayedData.begin(), firstToPlot);
145 auto data = currentlyDisplayedData.begin();
146 auto numSamples = currentlyDisplayedData.size();
147 std::vector<float>::iterator firstToPlot;
150 auto condition = [](
float x,
float subseq,
float trig)
152 bool firstCondition = std::abs(x - trig) < 0.05;
153 bool secondCondition = subseq < x;
154 return firstCondition && secondCondition;
158 for (
auto i = currentlyDisplayedData.begin(); i < currentlyDisplayedData.end() - 1; ++i)
162 if (condition(i[0], i[1], triggerLevel))
164 int distance = std::distance(currentlyDisplayedData.begin(), firstToPlot);
177 float max = *std::max_element(currentlyDisplayedData.begin(), currentlyDisplayedData.end());
178 float triggerPoint = max * triggerLevel;
179 std::vector<float>::iterator firstToPlot;
181 auto data = currentlyDisplayedData.begin();
182 auto numSamples = currentlyDisplayedData.size();
185 auto condition = [](
float x,
float subseq,
float trig)
187 bool firstCondition = std::abs(x - trig) < 0.05;
188 bool secondCondition = subseq < x;
189 return firstCondition && secondCondition;
193 for (
auto i = currentlyDisplayedData.begin(); i < currentlyDisplayedData.end() - 1; ++i)
197 if (condition(i[0], i[1], triggerPoint))
199 int distance = std::distance(currentlyDisplayedData.begin(), firstToPlot);
212 return this->
findSample(triggerLevel, currentlyDisplayedData);
void parameterChanged(const juce::String ¶meterID, float newValue) override
std::function< int(float, std::vector< float >)> findSample
int findFirstSample(float triggerLevel, std::vector< float > currentlyDisplayedData)
void parameterChanged(const juce::String ¶meterID, float newValue) override
ManualSampleFinder manualFinder
AutoSampleFinder autoFinder
SampleFinder(bool isCrescent, bool isAuto)
void parameterChanged(const juce::String ¶meterID, float newValue) override
int findFirstSample(float triggerLevel, std::vector< float > currentlyDisplayedData)
BaseFinder * currentFinder
int autoCrescentFirst(float triggerLevel, std::vector< float > currentlyDisplayedData)
int crescentFirst(float triggerLevel, std::vector< float > currentlyDisplayedData)
int autoDecrescentFirst(float triggerLevel, std::vector< float > currentlyDisplayedData)
int decrescentFirst(float triggerLevel, std::vector< float > currentlyDisplayedData)