summaryrefslogtreecommitdiff
path: root/muse2/muse
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2013-03-27 20:39:43 +0000
committerRobert Jonsson <spamatica@gmail.com>2013-03-27 20:39:43 +0000
commitf1648fa3c8ff5399750222dd416b416ceeb0888a (patch)
tree2a87a9143738e9367b01534ae3dda51ae5cd2ad3 /muse2/muse
parent8f0772bf78d72dd02d2f9b57696e2b9e5f9ce978 (diff)
fixed moving drum events
Diffstat (limited to 'muse2/muse')
-rw-r--r--muse2/muse/midiedit/dcanvas.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/muse2/muse/midiedit/dcanvas.cpp b/muse2/muse/midiedit/dcanvas.cpp
index c16375d1..ff30eb64 100644
--- a/muse2/muse/midiedit/dcanvas.cpp
+++ b/muse2/muse/midiedit/dcanvas.cpp
@@ -1281,7 +1281,7 @@ void DrumCanvas::modifySelected(NoteInfo::ValType type, int val, bool delta_mode
case NoteInfo::VAL_PITCH:
if (old_style_drummap_mode)
{
- int pitch = val;
+ int pitch = -val;
if(delta_mode)
pitch += event.pitch();
if (pitch > 127)
@@ -1291,7 +1291,17 @@ void DrumCanvas::modifySelected(NoteInfo::ValType type, int val, bool delta_mode
newEvent.setPitch(pitch);
}
else
- printf("DrumCanvas::modifySelected - MusEWidget::NoteInfo::VAL_PITCH not implemented for new style drum editors\n");
+ {
+ int direction = -val;
+ for (int i = 0; i < instrument_map.size(); ++i) {
+ if (instrument_map.at(i).pitch == event.pitch()) {
+ int nextPos = i + direction;
+ if (nextPos> -1 && nextPos < instrument_map.size())
+ newEvent.setPitch(instrument_map.at(nextPos).pitch);
+ break;
+ }
+ }
+ }
break;
}
MusEGlobal::song->changeEvent(event, newEvent, part);