From 653d1ee2d649b18901bd6d284802a6703e78501d Mon Sep 17 00:00:00 2001 From: rj Date: Thu, 3 Oct 2013 20:16:31 +0200 Subject: added shortcuts for step record, midi input, play events, inc/dev velocity --- ChangeLog | 4 ++++ muse2/muse/midiedit/drumedit.cpp | 28 ++++++++++++++++++++++++++++ muse2/muse/midiedit/pianoroll.cpp | 28 ++++++++++++++++++++++++++++ muse2/muse/midieditor.cpp | 21 +++++++++++++++++++++ muse2/muse/midieditor.h | 2 ++ muse2/muse/shortcuts.cpp | 7 +++++++ muse2/muse/shortcuts.h | 8 ++++++++ 7 files changed, 98 insertions(+) diff --git a/ChangeLog b/ChangeLog index be8ac3cd..dddee0a8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +03.10.2013: + - Added keyboard shortcuts in midi editors for functions, Step record, Midi input, + Play events, Inc/Dec velocity (rj) + 28.09.2013: - Changed default shortcut in PianoRoll for moving to current position from C to I the former was conflicting with the default global shortcut for metronome (rj) diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp index 175287cb..b45c8be4 100644 --- a/muse2/muse/midiedit/drumedit.cpp +++ b/muse2/muse/midiedit/drumedit.cpp @@ -1680,6 +1680,34 @@ void DrumEdit::keyPressEvent(QKeyEvent* event) else return; } + else if (key == shortcuts[SHRT_MOVE_PLAY_TO_NOTE].key){ + movePlayPointerToSelectedEvent(); + return; + } + else if (key == shortcuts[SHRT_STEP_RECORD].key) { + canvas->setSteprec(!srec->isChecked()); + srec->setChecked(!srec->isChecked()); + return; + } + else if (key == shortcuts[SHRT_MIDI_INPUT].key) { + canvas->setMidiin(!midiin->isChecked()); + midiin->setChecked(!midiin->isChecked()); + return; + + } + else if (key == shortcuts[SHRT_PLAY_EVENTS].key) { + canvas->playEvents(!speaker->isChecked()); + speaker->setChecked(!speaker->isChecked()); + return; + } + else if (key == shortcuts[SHRT_INC_VELOCITY].key) { + modify_velocity(partlist_to_set(parts()), 1, 100, 1); + return; + } + else if (key == shortcuts[SHRT_DEC_VELOCITY].key) { + modify_velocity(partlist_to_set(parts()), 1, 100, -1); + return; + } else { //Default: event->ignore(); return; diff --git a/muse2/muse/midiedit/pianoroll.cpp b/muse2/muse/midiedit/pianoroll.cpp index d0cb3f2a..7f281712 100644 --- a/muse2/muse/midiedit/pianoroll.cpp +++ b/muse2/muse/midiedit/pianoroll.cpp @@ -1311,6 +1311,34 @@ void PianoRoll::keyPressEvent(QKeyEvent* event) else return; } + else if (key == shortcuts[SHRT_MOVE_PLAY_TO_NOTE].key){ + movePlayPointerToSelectedEvent(); + return; + } + else if (key == shortcuts[SHRT_STEP_RECORD].key) { + canvas->setSteprec(!srec->isChecked()); + srec->setChecked(!srec->isChecked()); + return; + } + else if (key == shortcuts[SHRT_MIDI_INPUT].key) { + canvas->setMidiin(!midiin->isChecked()); + midiin->setChecked(!midiin->isChecked()); + return; + + } + else if (key == shortcuts[SHRT_PLAY_EVENTS].key) { + canvas->playEvents(!speaker->isChecked()); + speaker->setChecked(!speaker->isChecked()); + return; + } + else if (key == shortcuts[SHRT_INC_VELOCITY].key) { + modify_velocity(partlist_to_set(parts()), 1, 100, 1); + return; + } + else if (key == shortcuts[SHRT_DEC_VELOCITY].key) { + modify_velocity(partlist_to_set(parts()), 1, 100, -1); + return; + } else { //Default: event->ignore(); return; diff --git a/muse2/muse/midieditor.cpp b/muse2/muse/midieditor.cpp index a4052d90..5b332741 100644 --- a/muse2/muse/midieditor.cpp +++ b/muse2/muse/midieditor.cpp @@ -89,6 +89,27 @@ void MidiEditor::genPartlist() } } +//--------------------------------------------------------- +// addPart +//--------------------------------------------------------- +void MidiEditor::movePlayPointerToSelectedEvent() +{ + const MusECore::EventList & evl = curCanvasPart()->events(); + int tickPos = -1; + for (MusECore::ciEvent ev=evl.begin(); ev!=evl.end(); ev++) { + if (ev->second.selected()) { + tickPos = ev->second.tick(); + printf("found selected event, moving to pos %d\n", tickPos); + break; + } + } + if (tickPos > -1) + { + MusECore::Pos p0(curCanvasPart()->tick() + tickPos, true); + MusEGlobal::song->setPos(0, p0); + } +} + //--------------------------------------------------------- // addPart //--------------------------------------------------------- diff --git a/muse2/muse/midieditor.h b/muse2/muse/midieditor.h index 39feeedf..76d18d11 100644 --- a/muse2/muse/midieditor.h +++ b/muse2/muse/midieditor.h @@ -59,6 +59,7 @@ class MidiEditor : public TopWin { std::set _parts; int _curDrumInstrument; // currently selected instrument if drum // editor + protected: MusEGui::ScrollScale* hscroll; MusEGui::ScrollScale* vscroll; @@ -74,6 +75,7 @@ class MidiEditor : public TopWin { virtual void writeStatus(int, MusECore::Xml&) const; void writePartList(int, MusECore::Xml&) const; void genPartlist(); + void movePlayPointerToSelectedEvent(); private slots: void addNewParts(const std::map< const MusECore::Part*, std::set >&); diff --git a/muse2/muse/shortcuts.cpp b/muse2/muse/shortcuts.cpp index 83e5541a..d9178ba8 100644 --- a/muse2/muse/shortcuts.cpp +++ b/muse2/muse/shortcuts.cpp @@ -196,6 +196,12 @@ void initShortCuts() defShrt(SHRT_SCROLL_LEFT, Qt::Key_H, QT_TRANSLATE_NOOP("shortcuts", "View: Scroll left"), PROLL_SHRT + DEDIT_SHRT + WAVE_SHRT, "scroll_left"); defShrt(SHRT_SCROLL_RIGHT, Qt::Key_L, QT_TRANSLATE_NOOP("shortcuts", "View: Scroll left"), PROLL_SHRT + DEDIT_SHRT + WAVE_SHRT, "scroll_right"); + defShrt(SHRT_STEP_RECORD, Qt::CTRL + Qt::Key_R, QT_TRANSLATE_NOOP("shortcuts", "Transport: Step record"), PROLL_SHRT + DEDIT_SHRT, "step_record"); + defShrt(SHRT_MIDI_INPUT, Qt::CTRL + Qt::Key_U, QT_TRANSLATE_NOOP("shortcuts", "Transport: Midi input"), PROLL_SHRT + DEDIT_SHRT, "midi_input"); + defShrt(SHRT_PLAY_EVENTS, Qt::CTRL + Qt::Key_L, QT_TRANSLATE_NOOP("shortcuts", "Transport: Play events"), PROLL_SHRT + DEDIT_SHRT, "play_events"); + defShrt(SHRT_INC_VELOCITY, Qt::ALT + Qt::Key_Up, QT_TRANSLATE_NOOP("shortcuts", "Edit: Increase velocity"), PROLL_SHRT + DEDIT_SHRT, "increase_velocity"); + defShrt(SHRT_DEC_VELOCITY, Qt::ALT + Qt::Key_Down, QT_TRANSLATE_NOOP("shortcuts", "Edit: Decrease velocity"), PROLL_SHRT + DEDIT_SHRT, "decrease_velocity"); + //----------------------------------------------------------- //Drum: //----------------------------------------------------------- @@ -220,6 +226,7 @@ void initShortCuts() defShrt(SHRT_DELETE_MEASURE, 0, QT_TRANSLATE_NOOP("shortcuts", "Edit: Delete Measure"), PROLL_SHRT + DEDIT_SHRT, "midi_delete_measure"); defShrt(SHRT_CREATE_MEASURE, 0, QT_TRANSLATE_NOOP("shortcuts", "Edit: Create Measure"), PROLL_SHRT + DEDIT_SHRT, "midi_create_measure"); defShrt(SHRT_EVENT_COLOR, Qt::Key_E, QT_TRANSLATE_NOOP("shortcuts", "Edit: Change Event Color"), PROLL_SHRT + SCORE_SHRT, "change_event_color"); + defShrt(SHRT_MOVE_PLAY_TO_NOTE, Qt::CTRL + Qt::Key_M, QT_TRANSLATE_NOOP("shortcuts", "Move: Move to selected note"), PROLL_SHRT + DEDIT_SHRT, "move_to_note"); // Shortcuts for tools diff --git a/muse2/muse/shortcuts.h b/muse2/muse/shortcuts.h index 465d479e..c57cfe2c 100644 --- a/muse2/muse/shortcuts.h +++ b/muse2/muse/shortcuts.h @@ -218,6 +218,12 @@ enum { SHRT_DEC_PITCH, SHRT_INC_POS, SHRT_DEC_POS, + + SHRT_STEP_RECORD, + SHRT_MIDI_INPUT, + SHRT_PLAY_EVENTS, + SHRT_INC_VELOCITY, + SHRT_DEC_VELOCITY, SHRT_POS_INC_NOSNAP, SHRT_POS_DEC_NOSNAP, @@ -299,6 +305,8 @@ enum { SHRT_EVENT_COLOR, //e + SHRT_MOVE_PLAY_TO_NOTE, + // Shortcuts for tools // global SHRT_TOOL_POINTER, // -- cgit v1.2.1