Don't auto-quantize notes when recording MIDI input (#6714)

* Don't auto-quantize notes when recording MIDI input.

* Add midi:autoquantize to config file and a widget to set it in the MIDI settings.

* Quantize notes during recording if midi:autoquantize is enabled.

* Apply suggestions from code review: Formatting

Style formatting

Co-authored-by: saker <sakertooth@gmail.com>

* Cache the auto quantization setting in a PianoRoll member variable, and update it on ConfigManager::valueChanged()

* Apply suggestions from code review: Formatting & temp variable

One formatting change, and reusing an existing variable instead of introducting a new local one.

Co-authored-by: saker <sakertooth@gmail.com>
Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Update src/gui/modals/SetupDialog.cpp

Good catch.

Co-authored-by: IanCaio <iancaio_dev@hotmail.com>

* Fix logic bug in PianoRoll's midi/autoquantize value observer.

* Use '!' instead of 'not' to please MSVC.

* autoquantize: Add an explicit check for consistency with the rest of the PR, and give the setting a default value in SetupDialog constructor.

* Integrate MIDI auto-quantize checkbox into the resizable layout, and add a tool tip.

---------

Co-authored-by: saker <sakertooth@gmail.com>
Co-authored-by: IanCaio <iancaio_dev@hotmail.com>
This commit is contained in:
Levin Oehlmann
2024-04-09 01:17:26 +02:00
committed by GitHub
parent 2472e9ee4e
commit 1f5f28fd8a
4 changed files with 41 additions and 4 deletions

View File

@@ -376,6 +376,7 @@ private:
TimePos m_currentPosition;
bool m_recording;
bool m_doAutoQuantization{false};
QList<Note> m_recordingNotes;
Note * m_currentNote;

View File

@@ -109,6 +109,7 @@ private slots:
// MIDI settings widget.
void midiInterfaceChanged(const QString & driver);
void toggleMidiAutoQuantization(bool enabled);
// Paths settings widget.
void openWorkingDir();
@@ -190,6 +191,7 @@ private:
MswMap m_midiIfaceSetupWidgets;
trMap m_midiIfaceNames;
QComboBox * m_assignableMidiDevices;
bool m_midiAutoQuantize;
// Paths settings widgets.
QString m_workingDir;