add visual scope
This commit is contained in:
@@ -28,18 +28,22 @@ void Synth::process(float* out, size_t nFrames) {
|
||||
handleNoteEvent(noteEvent);
|
||||
}
|
||||
|
||||
// size_t lowestVoice = 0;
|
||||
// float lowestFreq = 100000.0f;
|
||||
// for(size_t i = 0; i < voices_.size(); i++) {
|
||||
// if(!voices_[i].isActive()) continue;
|
||||
// float currentFreq = voices_[i].frequency();
|
||||
// if(currentFreq < lowestFreq) {
|
||||
// lowestVoice = i;
|
||||
// lowestFreq = currentFreq;
|
||||
// }
|
||||
// }
|
||||
size_t lowestVoice = 0;
|
||||
float lowestFreq = 100000.0f;
|
||||
for(size_t i = 0; i < voices_.size(); i++) {
|
||||
if(!voices_[i].isActive()) continue;
|
||||
float currentFreq = voices_[i].frequency();
|
||||
if(currentFreq < lowestFreq) {
|
||||
lowestVoice = i;
|
||||
lowestFreq = currentFreq;
|
||||
}
|
||||
}
|
||||
|
||||
scope_->spinlock(true);
|
||||
|
||||
float sampleOut = 0.0f;
|
||||
bool triggered = false;
|
||||
bool once = false;
|
||||
for(size_t i = 0; i < nFrames; i++) {
|
||||
|
||||
float mix = 0.0f;
|
||||
@@ -47,7 +51,7 @@ void Synth::process(float* out, size_t nFrames) {
|
||||
bool temp = false;
|
||||
//if(!voices_[j].isActive()) continue;
|
||||
mix += voices_[j].process(temp);
|
||||
// if(j == lowestVoice) triggered = temp;
|
||||
if(j == lowestVoice) triggered = temp;
|
||||
}
|
||||
mix = tanh(mix/4.0f); // prevent clipping
|
||||
|
||||
@@ -55,14 +59,15 @@ void Synth::process(float* out, size_t nFrames) {
|
||||
out[2*i] = sampleOut;
|
||||
out[2*i+1] = sampleOut;
|
||||
|
||||
// if(scope_) scope_->push(sampleOut);
|
||||
// if(triggered && !once) {
|
||||
// scope_->setTrigger(i);
|
||||
// once = true;
|
||||
// }
|
||||
|
||||
if(scope_) scope_->push(sampleOut);
|
||||
if(triggered && !once) {
|
||||
scope_->setTrigger(i);
|
||||
once = true;
|
||||
}
|
||||
}
|
||||
|
||||
scope_->spinlock(false);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user