From fa27945706de2f72c082b7157ffdc658f84f58bd Mon Sep 17 00:00:00 2001 From: Robert Jonsson Date: Wed, 21 Jul 2010 09:38:59 +0000 Subject: see changelog --- muse/ChangeLog | 4 ++ muse/muse/driver/dummyaudio.cpp | 1 + muse/muse/midiedit/piano.cpp | 148 +++++++++++++++++++++++++++++++++++++++- muse/muse/midiedit/piano.h | 1 + muse/muse/midiedit/prcanvas.cpp | 6 +- muse/muse/shortcuts.cpp | 4 +- 6 files changed, 159 insertions(+), 5 deletions(-) diff --git a/muse/ChangeLog b/muse/ChangeLog index 09b431f8..cc28a4c4 100644 --- a/muse/ChangeLog +++ b/muse/ChangeLog @@ -1,3 +1,7 @@ +21.07.2010 + * Improved: Note lanes in pianoroll and marking of C-notes (rj) +20.07.2010 + * Fixed: illegal shortcut no longer reported on startup (rj) 18.07.2010 * Fixed: Handle errors during timer initialization more gracefully (rj) 15.07.2010 diff --git a/muse/muse/driver/dummyaudio.cpp b/muse/muse/driver/dummyaudio.cpp index d7c2e127..30da8197 100644 --- a/muse/muse/driver/dummyaudio.cpp +++ b/muse/muse/driver/dummyaudio.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include "config.h" #include "audio.h" diff --git a/muse/muse/midiedit/piano.cpp b/muse/muse/midiedit/piano.cpp index 477e7dab..4b2dc9de 100644 --- a/muse/muse/midiedit/piano.cpp +++ b/muse/muse/midiedit/piano.cpp @@ -100,13 +100,136 @@ static const char *oct_xpm[] = { "########################...............#", "#######################................#", //------------------------ ".......................................#", + "..........................###..........#", + ".........................#...#.........#", + ".........................#.............#", + ".........................#.............#", + ".........................#...#.........#", // 10 + "..........................###..........#", ".......................................#", ".......................................#", ".......................................#", + }; + +static const char *mk1_xpmC1[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###.....#....#", + ".........................#...#...##....#", + ".........................#........#....#", + ".........................#........#....#", + ".........................#...#....#....#", // 10 + "..........................###....###...#", ".......................................#", - ".......................................#", // 10 ".......................................#", ".......................................#", + }; +static const char *mk1_xpmC2[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###....##....#", + ".........................#...#..#..#...#", + ".........................#........#....#", + ".........................#.......#.....#", + ".........................#...#..#......#", // 10 + "..........................###...####...#", + ".......................................#", + ".......................................#", + ".......................................#", + }; +static const char *mk1_xpmC3[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###....##....#", + ".........................#...#..#..#...#", + ".........................#........#....#", + ".........................#.........#...#", + ".........................#...#..#..#...#", // 10 + "..........................###....##....#", + ".......................................#", + ".......................................#", + ".......................................#", + }; +static const char *mk1_xpmC4[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###...#..#...#", + ".........................#...#..#..#...#", + ".........................#......####...#", + ".........................#.........#...#", + ".........................#...#.....#...#", // 10 + "..........................###......#...#", + ".......................................#", + ".......................................#", + ".......................................#", + }; +static const char *mk1_xpmC5[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###...####...#", + ".........................#...#..#......#", + ".........................#......###....#", + ".........................#.........#...#", + ".........................#...#.....#...#", // 10 + "..........................###...###....#", + ".......................................#", + ".......................................#", + ".......................................#", + }; + +static const char *mk1_xpmC6[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###....###...#", + ".........................#...#..#......#", + ".........................#......###....#", + ".........................#......#..#...#", + ".........................#...#..#..#...#", // 10 + "..........................###...###....#", + ".......................................#", + ".......................................#", + ".......................................#", + }; + +static const char *mk1_xpmC7[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###...####...#", + ".........................#...#.....#...#", + ".........................#........#....#", + ".........................#.......#.....#", + ".........................#...#..#......#", // 10 + "..........................###...#......#", + ".......................................#", + ".......................................#", + ".......................................#", + }; +static const char *mk1_xpmC8[] = { + "40 10 2 1", + ". c #c0c0c0", + "# c #000000", + ".......................................#", + "..........................###....##....#", + ".........................#...#..#..#....#", + ".........................#.......##....#", + ".........................#......#..#...#", + ".........................#...#..#..#...#", // 10 + "..........................###....##....#", + ".......................................#", ".......................................#", ".......................................#", }; @@ -233,6 +356,15 @@ Piano::Piano(QWidget* parent, int ymag) setMouseTracking(true); curPitch = -1; octave = new QPixmap(oct_xpm); + c_keys[0] = new QPixmap(mk1_xpmC8); + c_keys[1] = new QPixmap(mk1_xpmC7); + c_keys[2] = new QPixmap(mk1_xpmC6); + c_keys[3] = new QPixmap(mk1_xpmC5); + c_keys[4] = new QPixmap(mk1_xpmC4); + c_keys[5] = new QPixmap(mk1_xpmC3); + c_keys[6] = new QPixmap(mk1_xpmC2); + c_keys[7] = new QPixmap(mk1_xpmC1); + mk1 = new QPixmap(mk1_xpm); mk2 = new QPixmap(mk2_xpm); mk3 = new QPixmap(mk3_xpm); @@ -249,6 +381,20 @@ void Piano::draw(QPainter& p, const QRect& r) { QPoint offset(0, KH*2); p.drawTiledPixmap(r, *octave, r.topLeft()+offset); + + // draw C notes + for (int drawKey = 0; drawKey < 8;drawKey++) { + int octaveSize=91; + + int drawY = octaveSize * drawKey + 81 - KH*2; + if (drawY > r.y() && drawY < r.y() + r.height()) { + //printf("drawing c %d at %d r.y %d r.x %d\n",drawKey, drawY, r.y(), r.x()); + p.drawPixmap(0,drawY,*c_keys[drawKey]); + } + } + //p.drawTiledPixmap(r, *c1, r.topLeft()+offset + coffset); + //printf("drawText KH %d %d, x %d y %d\n",KH, curPitch, r.x(), r.y()); + //p.drawText(r,Qt::AlignAuto,"A"); if (curPitch == -1) return; int y = pitch2y(curPitch); diff --git a/muse/muse/midiedit/piano.h b/muse/muse/midiedit/piano.h index 3650c3d4..279349d2 100644 --- a/muse/muse/midiedit/piano.h +++ b/muse/muse/midiedit/piano.h @@ -22,6 +22,7 @@ class Piano : public View { int curPitch; QPixmap* octave; + QPixmap* c_keys[10]; QPixmap* mk1; QPixmap* mk2; QPixmap* mk3; diff --git a/muse/muse/midiedit/prcanvas.cpp b/muse/muse/midiedit/prcanvas.cpp index b5a5d87c..d61f26a7 100644 --- a/muse/muse/midiedit/prcanvas.cpp +++ b/muse/muse/midiedit/prcanvas.cpp @@ -853,12 +853,14 @@ void PianoCanvas::drawCanvas(QPainter& p, const QRect& rect) case 0: case 3: p.setPen(black); + p.drawLine(x, yy, x + w, yy); break; default: - p.setPen(gray); + //p.setPen(lightGray); + p.fillRect(x, yy-3, w, 6, QBrush(QColor(230,230,230))); + //p.drawLine(x, yy, x + w, yy); break; } - p.drawLine(x, yy, x + w, yy); --key; } diff --git a/muse/muse/shortcuts.cpp b/muse/muse/shortcuts.cpp index 6a1ffc7c..13bb1f10 100644 --- a/muse/muse/shortcuts.cpp +++ b/muse/muse/shortcuts.cpp @@ -128,8 +128,8 @@ void initShortCuts() defShrt(SHRT_SEL_BELOW, Qt::Key_Down, "Edit: Select nearest part on track below", ARRANG_SHRT, "sel_part_below"); defShrt(SHRT_SEL_BELOW_ADD, Qt::SHIFT + Qt::Key_Down, "Edit: Add nearest part on track below", ARRANG_SHRT, "sel_part_below_add"); - defShrt(SHRT_INSERT, Qt::CTRL+Qt::SHIFT+ Qt::Key_I, "Edit: Insert parts, moving time", ARRANG_SHRT, "insert parts"); - defShrt(SHRT_INSERTMEAS, Qt::CTRL+Qt::SHIFT+ Qt::Key_M, "Edit: Insert empty measure", ARRANG_SHRT, "insert measure"); + defShrt(SHRT_INSERT, Qt::CTRL+Qt::SHIFT+ Qt::Key_I, "Edit: Insert parts, moving time", ARRANG_SHRT, "insert_parts"); + defShrt(SHRT_INSERTMEAS, Qt::CTRL+Qt::SHIFT+ Qt::Key_M, "Edit: Insert empty measure", ARRANG_SHRT, "insert_measure"); defShrt(SHRT_SEL_TRACK_ABOVE, Qt::CTRL + Qt::Key_Up, "Select track above", ARRANG_SHRT, "sel_track_above"); defShrt(SHRT_SEL_TRACK_BELOW, Qt::CTRL + Qt::Key_Down, "Select track below", ARRANG_SHRT, "sel_track_below"); -- cgit v1.2.3