mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-02 02:52:40 +00:00
add compatibility flag for arp phase reset on new note
This commit is contained in:
parent
85c5cffde8
commit
a2c9ec78d3
3 changed files with 10 additions and 2 deletions
|
@ -1067,7 +1067,9 @@ void DivEngine::processRow(int i, bool afterDelay) {
|
||||||
}
|
}
|
||||||
} else if (!chan[i].noteOnInhibit) {
|
} else if (!chan[i].noteOnInhibit) {
|
||||||
dispatchCmd(DivCommand(DIV_CMD_NOTE_ON,i,chan[i].note,chan[i].volume>>8));
|
dispatchCmd(DivCommand(DIV_CMD_NOTE_ON,i,chan[i].note,chan[i].volume>>8));
|
||||||
chan[i].arpStage=-1;
|
if (song.resetArpPhaseOnNewNote) {
|
||||||
|
chan[i].arpStage=-1;
|
||||||
|
}
|
||||||
chan[i].goneThroughNote=true;
|
chan[i].goneThroughNote=true;
|
||||||
chan[i].wentThroughNote=true;
|
chan[i].wentThroughNote=true;
|
||||||
keyHit[i]=true;
|
keyHit[i]=true;
|
||||||
|
|
|
@ -377,6 +377,7 @@ struct DivSong {
|
||||||
bool brokenPortaLegato;
|
bool brokenPortaLegato;
|
||||||
bool brokenFMOff;
|
bool brokenFMOff;
|
||||||
bool preNoteNoEffect;
|
bool preNoteNoEffect;
|
||||||
|
bool resetArpPhaseOnNewNote;
|
||||||
|
|
||||||
std::vector<DivInstrument*> ins;
|
std::vector<DivInstrument*> ins;
|
||||||
std::vector<DivWavetable*> wave;
|
std::vector<DivWavetable*> wave;
|
||||||
|
@ -496,7 +497,8 @@ struct DivSong {
|
||||||
patchbayAuto(true),
|
patchbayAuto(true),
|
||||||
brokenPortaLegato(false),
|
brokenPortaLegato(false),
|
||||||
brokenFMOff(false),
|
brokenFMOff(false),
|
||||||
preNoteNoEffect(false) {
|
preNoteNoEffect(false),
|
||||||
|
resetArpPhaseOnNewNote(false) {
|
||||||
for (int i=0; i<DIV_MAX_CHIPS; i++) {
|
for (int i=0; i<DIV_MAX_CHIPS; i++) {
|
||||||
system[i]=DIV_SYSTEM_NULL;
|
system[i]=DIV_SYSTEM_NULL;
|
||||||
systemVol[i]=1.0;
|
systemVol[i]=1.0;
|
||||||
|
|
|
@ -328,6 +328,10 @@ void FurnaceGUI::drawCompatFlags() {
|
||||||
if (ImGui::IsItemHovered()) {
|
if (ImGui::IsItemHovered()) {
|
||||||
ImGui::SetTooltip("when enabled, the pitch macro of an instrument is in frequency/period space.");
|
ImGui::SetTooltip("when enabled, the pitch macro of an instrument is in frequency/period space.");
|
||||||
}
|
}
|
||||||
|
ImGui::Checkbox("Reset arpeggio phase on new note",&e->song.resetArpPhaseOnNewNote);
|
||||||
|
if (ImGui::IsItemHovered()) {
|
||||||
|
ImGui::SetTooltip("when enabled, the arpeggio phase is reset on a new note."); // TODO: Better description
|
||||||
|
}
|
||||||
ImGui::EndTabItem();
|
ImGui::EndTabItem();
|
||||||
}
|
}
|
||||||
ImGui::EndTabBar();
|
ImGui::EndTabBar();
|
||||||
|
|
Loading…
Reference in a new issue