diff options
| -rw-r--r-- | muse/ChangeLog | 4 | ||||
| -rw-r--r-- | muse/muse/driver/dummyaudio.cpp | 1 | ||||
| -rw-r--r-- | muse/muse/midiedit/piano.cpp | 148 | ||||
| -rw-r--r-- | muse/muse/midiedit/piano.h | 1 | ||||
| -rw-r--r-- | muse/muse/midiedit/prcanvas.cpp | 6 | ||||
| -rw-r--r-- | 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 <stdarg.h>  #include <pthread.h>  #include <sys/poll.h> +#include <qmessagebox.h>  #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"); | 
