@@ -1399,7 +1399,7 @@ void FurnaceGUI::noteInput(int num, int key, int vol, int chanOff) {
13991399 int tick=0 ;
14001400 int speed=0 ;
14011401
1402- if (chanOff>0 && noteInputChord ) {
1402+ if (chanOff>0 && noteInputMode==GUI_NOTE_INPUT_CHORD ) {
14031403 ch=e->getViableChannel (ch,chanOff,curIns);
14041404 if ((!e->isPlaying () || !followPattern)) {
14051405 y-=editStep;
@@ -1466,7 +1466,7 @@ void FurnaceGUI::noteInput(int num, int key, int vol, int chanOff) {
14661466 pat->newData [y][DIV_PAT_VOL]=-1 ;
14671467 }
14681468 }
1469- if ((!e->isPlaying () || !followPattern) && (chanOff<1 || !noteInputChord )) {
1469+ if ((!e->isPlaying () || !followPattern) && (chanOff<1 || noteInputMode!=GUI_NOTE_INPUT_CHORD )) {
14701470 editAdvance ();
14711471 }
14721472 makeUndo (GUI_UNDO_PATTERN_EDIT,UndoRegion (ord,ch,y,ord,ch,y));
@@ -7657,7 +7657,7 @@ bool FurnaceGUI::init() {
76577657
76587658 initSystemPresets ();
76597659
7660- e->setAutoNotePoly (noteInputPoly );
7660+ e->setAutoNotePoly (noteInputMode!=GUI_NOTE_INPUT_MONO );
76617661
76627662 SDL_SetHint (SDL_HINT_VIDEO_ALLOW_SCREENSAVER," 1" );
76637663#if SDL_VERSION_ATLEAST(2,0,17)
@@ -8326,8 +8326,10 @@ void FurnaceGUI::syncState() {
83268326 orderLock=e->getConfBool (" orderLock" ,false );
83278327 followOrders=e->getConfBool (" followOrders" ,true );
83288328 followPattern=e->getConfBool (" followPattern" ,true );
8329- noteInputPoly=e->getConfBool (" noteInputPoly" ,true );
8330- noteInputChord=e->getConfBool (" noteInputChord" ,false );
8329+ noteInputMode=e->getConfInt (" noteInputMode" ,GUI_NOTE_INPUT_POLY);
8330+ if (noteInputMode!=GUI_NOTE_INPUT_MONO && noteInputMode!=GUI_NOTE_INPUT_POLY && noteInputMode!=GUI_NOTE_INPUT_CHORD) {
8331+ noteInputMode=GUI_NOTE_INPUT_POLY;
8332+ }
83318333 filePlayerSync=e->getConfBool (" filePlayerSync" ,true );
83328334 audioExportOptions.loops =e->getConfInt (" exportLoops" ,0 );
83338335 if (audioExportOptions.loops <0 ) audioExportOptions.loops =0 ;
@@ -8489,8 +8491,7 @@ void FurnaceGUI::commitState(DivConfig& conf) {
84898491 conf.set (" followOrders" ,followOrders);
84908492 conf.set (" followPattern" ,followPattern);
84918493 conf.set (" orderEditMode" ,orderEditMode);
8492- conf.set (" noteInputPoly" ,noteInputPoly);
8493- conf.set (" noteInputChord" ,noteInputChord);
8494+ conf.set (" noteInputMode" ,(int )noteInputMode);
84948495 conf.set (" filePlayerSync" ,filePlayerSync);
84958496 if (settings.persistFadeOut ) {
84968497 conf.set (" exportLoops" ,audioExportOptions.loops );
@@ -8665,8 +8666,7 @@ FurnaceGUI::FurnaceGUI():
86658666 preserveChanPos(false ),
86668667 sysDupCloneChannels(true ),
86678668 sysDupEnd(false ),
8668- noteInputPoly(true ),
8669- noteInputChord(false ),
8669+ noteInputMode(GUI_NOTE_INPUT_POLY),
86708670 notifyWaveChange(false ),
86718671 notifySampleChange(false ),
86728672 recalcTimestamps(true ),
0 commit comments