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
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()
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()
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()
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
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
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()
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)
def _redo(self): self._score.addNote(self._np, self._head) if self._head != DBConstants.EMPTY_NOTE: DBMidi.playNote(self._np.drumIndex, self._head)
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)
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)
def on_actionMuteNotes_toggled(onOff): DBMidi.setMute(onOff)