chan color in piano and real volume chan feedback (w/ gamma correction)

now i can recreate the bee video! :>
This commit is contained in:
Eknous-P 2025-11-14 18:37:23 +04:00
parent 44ec4f70da
commit f93dd893c8
5 changed files with 50 additions and 14 deletions

View file

@ -666,7 +666,8 @@ void FurnaceGUI::drawPattern() {
if (!muted) {
int note=e->getChanState(i)->note+60;
if (note>=0 && note<180) {
pianoKeyHit[note]=1.0;
pianoKeyHit[note].value=1.0;
pianoKeyHit[note].chan=i;
}
}
}
@ -679,7 +680,8 @@ void FurnaceGUI::drawPattern() {
if (!muted) {
int note=e->getChanState(i)->note+60;
if (note>=0 && note<180) {
pianoKeyHit[note]=amount;
pianoKeyHit[note].value=amount;
pianoKeyHit[note].chan=i;
}
}
} else if (settings.channelFeedbackStyle==3 && e->isRunning()) {
@ -688,7 +690,19 @@ void FurnaceGUI::drawPattern() {
if (!muted) {
int note=e->getChanState(i)->note+60;
if (note>=0 && note<180) {
pianoKeyHit[note]=active?1.0f:0.0f;
pianoKeyHit[note].value=active?1.0f:0.0f;
pianoKeyHit[note].chan=i;
}
}
} else if (settings.channelFeedbackStyle==4 && e->isRunning()) {
float amount=powf(chanOscVol[i],settings.channelFeedbackGamma);
if (!e->getChanState(i)->keyOn) amount=0.0f;
keyHit[i]=amount*0.2f;
if (!muted) {
int note=e->getChanState(i)->note+60;
if (note>=0 && note<180) {
pianoKeyHit[note].value=amount;
pianoKeyHit[note].chan=i;
}
}
}