Browse Source

PixmapKeyboard: Use C-1 => C9 range

tags/1.9.4
falkTX 12 years ago
parent
commit
006ed9737d
4 changed files with 49 additions and 54 deletions
  1. +6
    -6
      resources/ui/carla_edit.ui
  2. +1
    -0
      source/backend/plugin/NativePlugin.cpp
  3. +2
    -2
      source/carla_shared.py
  4. +40
    -46
      source/widgets/pixmapkeyboard.py

+ 6
- 6
resources/ui/carla_edit.ui View File

@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>749</width>
<width>741</width>
<height>585</height>
</rect>
</property>
@@ -688,7 +688,7 @@ Plugin Name
<rect>
<x>0</x>
<y>0</y>
<width>864</width>
<width>1440</width>
<height>64</height>
</rect>
</property>
@@ -700,13 +700,13 @@ Plugin Name
</property>
<property name="minimumSize">
<size>
<width>864</width>
<width>1440</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>864</width>
<width>1440</width>
<height>64</height>
</size>
</property>
@@ -727,13 +727,13 @@ Plugin Name
</property>
<property name="minimumSize">
<size>
<width>864</width>
<width>1440</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>864</width>
<width>1440</width>
<height>64</height>
</size>
</property>


+ 1
- 0
source/backend/plugin/NativePlugin.cpp View File

@@ -1352,6 +1352,7 @@ public:
fMidiEvents[fMidiEventCount].data[0] += note.channel;
fMidiEvents[fMidiEventCount].data[1] = note.note;
fMidiEvents[fMidiEventCount].data[2] = note.velo;
fMidiEvents[fMidiEventCount].size = 3;

fMidiEventCount += 1;
}


+ 2
- 2
source/carla_shared.py View File

@@ -1122,11 +1122,11 @@ class PluginEdit(QDialog):
self.ui.dial_b_right.setLabel("R")

self.ui.keyboard.setMode(self.ui.keyboard.HORIZONTAL)
self.ui.keyboard.setOctaves(6)
self.ui.keyboard.setOctaves(10)

self.ui.sb_ctrl_channel.setValue(self.fControlChannel+1)

self.ui.scrollArea.ensureVisible(self.ui.keyboard.width() / 5, 0)
self.ui.scrollArea.ensureVisible(self.ui.keyboard.width() / 3, 0)
self.ui.scrollArea.setEnabled(False)
self.ui.scrollArea.setVisible(False)



+ 40
- 46
source/widgets/pixmapkeyboard.py View File

@@ -106,7 +106,7 @@ class PixmapKeyboard(QWidget):
self.fNeedsUpdate = False
self.fEnabledKeys = []

self.fFont = QFont("Monospace", 8, QFont.Normal)
self.fFont = QFont("Monospace", 7, QFont.Normal)
self.fPixmap = QPixmap("")

self.setCursor(Qt.PointingHandCursor)
@@ -117,7 +117,7 @@ class PixmapKeyboard(QWidget):
self.fNeedsUpdate = True

self.emit(SIGNAL("notesOff()"))
QTimer.singleShot(0, self, SLOT("slot_updateOnce()"))
self.update()

def sendNoteOn(self, note, sendSignal=True):
if 0 <= note <= 127 and note not in self.fEnabledKeys:
@@ -126,8 +126,7 @@ class PixmapKeyboard(QWidget):
if sendSignal:
self.emit(SIGNAL("noteOn(int)"), note)

self.fNeedsUpdate = True
QTimer.singleShot(0, self, SLOT("slot_updateOnce()"))
self.update()

if len(self.fEnabledKeys) == 1:
self.emit(SIGNAL("notesOn()"))
@@ -139,8 +138,7 @@ class PixmapKeyboard(QWidget):
if sendSignal:
self.emit(SIGNAL("noteOff(int)"), note)

self.fNeedsUpdate = True
QTimer.singleShot(0, self, SLOT("slot_updateOnce()"))
self.update()

if len(self.fEnabledKeys) == 0:
self.emit(SIGNAL("notesOff()"))
@@ -175,8 +173,8 @@ class PixmapKeyboard(QWidget):
def setOctaves(self, octaves):
if octaves < 1:
octaves = 1
elif octaves > 8:
octaves = 8
elif octaves > 10:
octaves = 10

self.fOctaves = octaves

@@ -205,8 +203,6 @@ class PixmapKeyboard(QWidget):
else:
return

octave += 3

if self.fMidiMap['1'].contains(keyPos): # C#
note = 1
elif self.fMidiMap['3'].contains(keyPos): # D#
@@ -299,32 +295,34 @@ class PixmapKeyboard(QWidget):

paintedWhite = False

for i in range(len(self.fEnabledKeys)):
note = self.fEnabledKeys[i]
pos = self._getRectFromMidiNote(note)
for note in self.fEnabledKeys:
pos = self._getRectFromMidiNote(note)

if self._isNoteBlack(note):
continue

if note < 36:
# cannot paint this note
continue
elif note < 48:
if note < 12:
octave = 0
elif note < 60:
elif note < 24:
octave = 1
elif note < 72:
elif note < 36:
octave = 2
elif note < 84:
elif note < 48:
octave = 3
elif note < 96:
elif note < 60:
octave = 4
elif note < 108:
elif note < 72:
octave = 5
elif note < 120:
elif note < 84:
octave = 6
elif note < 132:
elif note < 96:
octave = 7
elif note < 108:
octave = 8
elif note < 120:
octave = 9
elif note < 132:
octave = 10
else:
# cannot paint this note either
continue
@@ -366,32 +364,34 @@ class PixmapKeyboard(QWidget):
# -------------------------------------------------------------
# Paint (black) pressed keys

for i in range(len(self.fEnabledKeys)):
note = self.fEnabledKeys[i]
pos = self._getRectFromMidiNote(note)
for note in self.fEnabledKeys:
pos = self._getRectFromMidiNote(note)

if not self._isNoteBlack(note):
continue

if note < 36:
# cannot paint this note
continue
elif note < 48:
if note < 12:
octave = 0
elif note < 60:
elif note < 24:
octave = 1
elif note < 72:
elif note < 36:
octave = 2
elif note < 84:
elif note < 48:
octave = 3
elif note < 96:
elif note < 60:
octave = 4
elif note < 108:
elif note < 72:
octave = 5
elif note < 120:
elif note < 84:
octave = 6
elif note < 132:
elif note < 96:
octave = 7
elif note < 108:
octave = 8
elif note < 120:
octave = 9
elif note < 132:
octave = 10
else:
# cannot paint this note either
continue
@@ -416,15 +416,9 @@ class PixmapKeyboard(QWidget):

for i in range(self.fOctaves):
if self.fPixmapMode == self.HORIZONTAL:
painter.drawText(i * 144, 48, 18, 18, Qt.AlignCenter, "C%i" % int(i + 2))
painter.drawText(i * 144, 48, 18, 18, Qt.AlignCenter, "C%i" % (i-1))
elif self.fPixmapMode == self.VERTICAL:
painter.drawText(45, (self.fOctaves * 144) - (i * 144) - 16, 18, 18, Qt.AlignCenter, "C%i" % int(i + 2))

@pyqtSlot()
def slot_updateOnce(self):
if self.fNeedsUpdate:
self.update()
self.fNeedsUpdate = False
painter.drawText(45, (self.fOctaves * 144) - (i * 144) - 16, 18, 18, Qt.AlignCenter, "C%i" % (i-1))

def _isNoteBlack(self, note):
baseNote = note % 12


Loading…
Cancel
Save