Beispiel #1
0
 def _effectChanged(self):
     for effect in self.effectsGroup.children():
         if not isinstance(effect, QRadioButton):
             continue
         if effect.isChecked():
             self._currentHeadData.effect = str(effect.text()).lower()
             if not self.muteButton.isChecked():
                 DBMidi.playHeadData(self._currentHeadData)
             break
Beispiel #2
0
 def on_actionPlayScore_toggled(self, onOff):
     if onOff:
         if not self._canPlayback():
             self.actionPlayScore.toggle()
             return
         DBMidi.playScore(self.scoreScene.score)
         self.musicStart()
     else:
         self.musicDone()
         DBMidi.shutUp()
Beispiel #3
0
 def on_actionPlayScore_toggled(self, onOff):
     if onOff:
         if not self._canPlayback():
             self.actionPlayScore.toggle()
             return
         DBMidi.playScore(self.scoreScene.score)
         self.musicStart()
     else:
         self.musicDone()
         DBMidi.shutUp()
Beispiel #4
0
 def _noteHeadChanged(self):
     self._populateCurrentNoteHead()
     headData = self._currentHeadData
     self.volumeSlider.setValue(headData.midiVolume)
     midiIndex = self.midiNoteCombo.findData(QVariant(headData.midiNote))
     self.midiNoteCombo.setCurrentIndex(midiIndex)
     self._setEffect(headData.effect)
     if not self.muteButton.isChecked():
         DBMidi.playHeadData(self._currentHeadData)
     self._checkHeadButtons()
     self._setNotation()
Beispiel #5
0
 def on_actionLoopBars_toggled(self, onOff):
     if onOff:
         if not self.scoreScene.hasDragSelection():
             self.actionLoopBars.toggle()
             return
         DBMidi.loopBars(self.scoreScene.iterDragSelection(),
                         self.scoreScene.score)
         self.musicStart()
     else:
         self.musicDone()
         DBMidi.shutUp()
Beispiel #6
0
 def on_actionLoopBars_toggled(self, onOff):
     if onOff:
         if not self.scoreScene.hasDragSelection():
             self.actionLoopBars.toggle()
             return
         DBMidi.loopBars(self.scoreScene.iterDragSelection(),
                         self.scoreScene.score)
         self.musicStart()
     else:
         self.musicDone()
         DBMidi.shutUp()
Beispiel #7
0
 def on_actionExportMIDI_triggered(self):
     if not self._canPlayback():
         return
     try:
         midiBuffer = StringIO()
         DBMidi.exportMidi(self.scoreScene.score.iterMeasuresWithRepeats(),
                           self.scoreScene.score, midiBuffer)
     except StandardError, exc:
         QMessageBox.warning(
             self.parent(), "Error generating MIDI!",
             "Failed to generate MIDI for this score: %s" % exc.__doc__)
         raise
Beispiel #8
0
 def on_actionExportMIDI_triggered(self):
     if not self._canPlayback():
         return
     try:
         midiBuffer = StringIO()
         DBMidi.exportMidi(self.scoreScene.score.iterMeasuresWithRepeats(),
                           self.scoreScene.score, midiBuffer)
     except StandardError, exc:
         QMessageBox.warning(self.parent(), "Error generating MIDI!",
                             "Failed to generate MIDI for this score: %s"
                             % exc.__doc__)
         raise
Beispiel #9
0
 def __init__(self, kit, emptyDrums = None, parent = None, directory = None):
     '''
     Constructor
     '''
     super(QEditKitDialog, self).__init__(parent)
     self.setupUi(self)
     self.muteButton.setChecked(DBMidi.isMuted())
     if emptyDrums is None:
         emptyDrums = []
         self.deleteEmptyButton.setEnabled(False)
     self._scoreDirectory = directory
     self._emptyDrums = emptyDrums
     self._currentKit = []
     self._oldLines = {}
     self._initialKit = kit
     self._initialize()
     self.kitTable.currentRowChanged.connect(self._drumChanged)
     self.upButton.clicked.connect(self._moveDrumUp)
     self.downButton.clicked.connect(self._moveDrumDown)
     self.addButton.clicked.connect(self._addDrum)
     self.deleteButton.clicked.connect(self._removeDrum)
     self.deleteEmptyButton.clicked.connect(self._deleteEmpty)
     self.clearButton.clicked.connect(self._clearKit)
     self.resetButton.clicked.connect(self._resetKit)
     self.defaultKitButton.clicked.connect(self._manageDefaultKits)
     self.loadButton.clicked.connect(self._loadKit)
     self.saveButton.clicked.connect(self._saveKit)
     self.drumName.textEdited.connect(self._drumNameEdited)
     self.drumAbbr.editingFinished.connect(self._drumAbbrEdited)
     self.oldDrum.currentIndexChanged.connect(self._oldDrumChanged)
     self.currentNoteHead.currentIndexChanged.connect(self._headEdited)
     self.noteHeadTable.currentRowChanged.connect(self._noteHeadChanged)
     self.addHeadButton.clicked.connect(self._addNoteHead)
     self.headUpButton.clicked.connect(self._moveNoteHeadUp)
     self.setDefaultHeadButton.clicked.connect(self._setDefaultHead)
     self.headDownButton.clicked.connect(self._moveNoteHeadDown)
     self.deleteHeadButton.clicked.connect(self._removeNoteHead)
     self.noteHeadBox.currentIndexChanged.connect(self._notationHeadChanged)
     self.effectBox.currentIndexChanged.connect(self._notationEffectChanged)
     self.stemUpDownBox.stateChanged.connect(self._stemDirectionChanged)
     self.noteUpButton.clicked.connect(self._moveNotationUp)
     self.noteDownButton.clicked.connect(self._moveNotationDown)
     self.shortcutCombo.currentIndexChanged.connect(self._shortcutEdited)
     self._populateMidiCombo()
     self.midiNoteCombo.currentIndexChanged.connect(self._midiNoteChanged)
     self.volumeSlider.valueChanged.connect(self._midiVolumeChanged)
     for effect in self.effectsGroup.children():
         if isinstance(effect, QRadioButton):
             effect.toggled.connect(self._effectChanged)
     self.lockedCheckBox.stateChanged.connect(self._lockChanged)
     self._notationScene = QNotationScene(self)
     self.noteView.setScene(self._notationScene)
     self.noteView.centerOn(*self._notationScene.getCenter())
     self._populate()
Beispiel #10
0
 def _redo(self):
     self._score.toggleNote(self._np, self._head)
     newHead = self._score.getItemAtPosition(self._np)
     if (newHead != DBConstants.EMPTY_NOTE):
         DBMidi.playNote(self._np.drumIndex, self._head)
Beispiel #11
0
 def _redo(self):
     self._score.addNote(self._np, self._head)
     if self._head != DBConstants.EMPTY_NOTE:
         DBMidi.playNote(self._np.drumIndex, self._head)
Beispiel #12
0
 def _undo(self):
     if self._oldHead == DBConstants.EMPTY_NOTE:
         self._score.deleteNote(self._np)
     else:
         self._score.addNote(self._np, self._oldHead)
         DBMidi.playNote(self._np.drumIndex, self._oldHead)
Beispiel #13
0
 def _midiNoteChanged(self):
     midiNote = self.midiNoteCombo.currentIndex()
     midiNote = self.midiNoteCombo.itemData(midiNote).toInt()[0]
     self._currentHeadData.midiNote = midiNote
     if not self.muteButton.isChecked():
         DBMidi.playHeadData(self._currentHeadData)
Beispiel #14
0
 def on_actionMuteNotes_toggled(onOff):
     DBMidi.setMute(onOff)
Beispiel #15
0
 def on_actionMuteNotes_toggled(onOff):
     DBMidi.setMute(onOff)