Browse Source

New feature: Optionally play test signal after changing program combobox

master
Nils 2 years ago
parent
commit
0d93e22470
  1. 6
      qtgui/designer/mainwindow.py
  2. 9
      qtgui/designer/mainwindow.ui
  3. 34
      qtgui/mainwindow.py
  4. 262
      qtgui/resources.py
  5. BIN
      qtgui/resources/translations/de.qm
  6. 33
      qtgui/resources/translations/de.ts

6
qtgui/designer/mainwindow.py

@ -29,6 +29,9 @@ class Ui_MainWindow(object):
self.checkBox_ignoreProgramChanges = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_ignoreProgramChanges.setObjectName("checkBox_ignoreProgramChanges")
self.verticalLayout.addWidget(self.checkBox_ignoreProgramChanges)
self.checkBox_playTestAfterSelectingProgram = QtWidgets.QCheckBox(self.centralwidget)
self.checkBox_playTestAfterSelectingProgram.setObjectName("checkBox_playTestAfterSelectingProgram")
self.verticalLayout.addWidget(self.checkBox_playTestAfterSelectingProgram)
self.scrollArea = QtWidgets.QScrollArea(self.centralwidget)
self.scrollArea.setFrameShape(QtWidgets.QFrame.NoFrame)
self.scrollArea.setLineWidth(0)
@ -36,7 +39,7 @@ class Ui_MainWindow(object):
self.scrollArea.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignTop)
self.scrollArea.setObjectName("scrollArea")
self.scrollAreaWidgetContents = QtWidgets.QWidget()
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 832, 502))
self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 832, 479))
self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.scrollAreaWidgetContents)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
@ -71,6 +74,7 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
self.checkBox_ignoreProgramChanges.setText(_translate("MainWindow", "Ignore MIDI Bank and Program Changes"))
self.checkBox_playTestAfterSelectingProgram.setText(_translate("MainWindow", "Play test sound after selecting a program"))
self.rack.headerItem().setText(0, _translate("MainWindow", "Channel"))
self.rack.headerItem().setText(1, _translate("MainWindow", "Play Test"))
self.rack.headerItem().setText(2, _translate("MainWindow", "Bank"))

9
qtgui/designer/mainwindow.ui

@ -44,6 +44,13 @@
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="checkBox_playTestAfterSelectingProgram">
<property name="text">
<string>Play test sound after selecting a program</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="scrollArea">
<property name="frameShape">
@ -64,7 +71,7 @@
<x>0</x>
<y>0</y>
<width>832</width>
<height>502</height>
<height>479</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">

34
qtgui/mainwindow.py

@ -35,7 +35,6 @@ from template.qtgui.flowlayout import FlowLayout
#Client modules
import engine.api as api
from .designer.channelstrip import Ui_ChannelStrip
class MainWindow(TemplateMainWindow):
@ -79,7 +78,13 @@ class MainWindow(TemplateMainWindow):
self.ui.checkBox_ignoreProgramChanges.hide() #will be shown after loading an sf2
self.ui.checkBox_ignoreProgramChanges.stateChanged.connect(api.setIgnoreProgramAndBankChanges) #one parameter: int state. 0 is unchecked, 1 is partially, 2 is checked
self.ui.checkBox_playTestAfterSelectingProgram.hide() #will be shown after loading an sf2. NThe state is queried by the comboBoxProgram directly
if "playTestAfterSelectingProgram" in api.session.guiSharedDataToSave:
self.ui.checkBox_playTestAfterSelectingProgram.setChecked(api.session.guiSharedDataToSave["playTestAfterSelectingProgram"])
self.ui.checkBox_playTestAfterSelectingProgram.stateChanged.connect(self.saveCheckBox_playTestAfterSelectingProgram) #one parameter: int state. 0 is unchecked, 1 is partially, 2 is checked
#Set up the Rack Tree Widget that holds all Channels
####################################################
@ -150,11 +155,17 @@ class MainWindow(TemplateMainWindow):
if not success:
self.ui.label_soundfont_name.hide() #will be shown after loading an sf2
self.ui.checkBox_ignoreProgramChanges.hide() #will be shown after loading an sf2
self.ui.checkBox_playTestAfterSelectingProgram.hide()
for channelTreeItem in self.channels:
channelTreeItem.unloadData()
def callback_ignoreProgramChangesChanged(self, state):
def saveCheckBox_playTestAfterSelectingProgram(self, state:int):
"""#one parameter: int state. 0 is unchecked, 1 is partially, 2 is checked"""
api.session.guiSharedDataToSave["playTestAfterSelectingProgram"] = state
def callback_ignoreProgramChangesChanged(self, state:int):
"""Redundant while the program runs. Useful for load / startup"""
self.ui.checkBox_ignoreProgramChanges.blockSignals(True)
self.ui.checkBox_ignoreProgramChanges.setChecked(state)
@ -171,6 +182,7 @@ class MainWindow(TemplateMainWindow):
self.ui.label_soundfont_name.setText(exportDict["name"])
self.ui.label_soundfont_name.show()
self.ui.checkBox_ignoreProgramChanges.show()
self.ui.checkBox_playTestAfterSelectingProgram.show()
def callback_channelChanged(self, channel:int, exportDict:dict):
"""An outside signal (e.g. sequencer) changed a channels bank, program or both"""
@ -246,8 +258,10 @@ class ChannelTreeItem(QtWidgets.QTreeWidgetItem):
self.mainWindow.rackTreeWidget.setItemWidget(self, self.mainWindow.rackTreeWidgetColumns.index("Program"), self.comboBoxProgram)
self.mainWindow.rackTreeWidget.setItemWidget(self, self.mainWindow.rackTreeWidgetColumns.index("Play Test"), self.pushButtonPlayTest)
self.comboBoxBank.currentIndexChanged.connect(self.reactToBankOrProgramChange)
self.comboBoxProgram.currentIndexChanged.connect(self.reactToBankOrProgramChange)
self.comboBoxBank.currentIndexChanged.connect(self.reactToBankOrProgramChange) #blocked when changed via midi from the outside
self.comboBoxProgram.currentIndexChanged.connect(self.reactToBankOrProgramChange) #blocked when changed via midi from the outside
self.comboBoxProgram.activated.connect(self.reactToUserActivation) #Only for user interaction
self.pushButtonPlayTest.clicked.connect(lambda: api.playTestSignal(self.channelNumber))
@ -327,8 +341,6 @@ class ChannelTreeItem(QtWidgets.QTreeWidgetItem):
for index in range(len(self.mainWindow.rackTreeWidgetColumns)):
self.mainWindow.rackTreeWidget.resizeColumnToContents(index)
def reactToBankOrProgramChange(self, newIndex): #discard newIndex
bank = self.comboBoxBank.currentData()
program = self.comboBoxProgram.currentData()
@ -352,3 +364,13 @@ class ChannelTreeItem(QtWidgets.QTreeWidgetItem):
self.comboBoxBank.blockSignals(False)
self.comboBoxProgram.blockSignals(False)
def reactToUserActivation(self, programNumberAsStr:str):
"""This is only emitted when the user activates the widget. However, it does not
differentiate between a change in selection or not.
This signal is emmited after the engine was notified of a changed program so we already
have the updated sound for a feedback.
"""
if self.mainWindow.ui.checkBox_playTestAfterSelectingProgram.isChecked():
api.playTestSignal(self.channelNumber)

262
qtgui/resources.py

@ -9,54 +9,6 @@
from PyQt5 import QtCore
qt_resource_data = b"\
\x00\x00\x02\xde\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x20\x00\x00\x00\x20\x08\x00\x00\x00\x00\x56\x11\x25\x28\
\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\
\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x26\x00\x00\x80\x84\
\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00\x75\x30\x00\x00\xea\x60\
\x00\x00\x3a\x98\x00\x00\x17\x70\x9c\xba\x51\x3c\x00\x00\x00\x02\
\x62\x4b\x47\x44\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09\x70\x48\
\x59\x73\x00\x00\x02\x07\x00\x00\x02\x07\x01\x2c\x3a\x75\x9c\x00\
\x00\x00\x07\x74\x49\x4d\x45\x07\xe4\x04\x11\x07\x33\x07\x33\x64\
\x83\x18\x00\x00\x01\xac\x49\x44\x41\x54\x38\xcb\x85\xd3\xbf\x4b\
\xdb\x41\x1c\xc6\xf1\xf7\x37\x26\xfe\x56\xaa\xa5\x0a\x46\xf8\xda\
\x68\xa1\x3a\xa4\x4e\x51\x04\x51\xc1\x76\x52\x10\x4a\x9d\xf2\x07\
\x74\x28\xb8\x38\x74\xab\x4e\x4a\xd1\x45\x33\xb9\x94\x0c\x2d\xd8\
\x7f\xc0\x52\xa1\x28\x42\x04\x45\x1d\x44\x3b\x09\x55\xc4\x68\x5a\
\x53\x2a\x91\x4a\x8c\x79\x1c\x12\x35\x17\x93\x78\xdb\x71\xaf\xe3\
\x3e\x9f\xbb\xe7\xe0\xc1\xa1\xac\x11\x7a\x9a\x39\xbb\x0f\x4e\xdc\
\x76\x41\x70\xd5\x4f\x6d\x41\xf0\x81\x2a\xfe\x14\x00\xdf\x1d\x4d\
\x63\x84\x32\x81\xc3\x28\x38\xec\x77\x7d\x7d\xc4\x8f\xbc\x5d\x24\
\xfa\x98\x55\x10\x5f\xde\x23\xc6\x19\x96\xb6\xb0\xb6\xf3\x80\xa5\
\xa2\x67\x67\xd2\x65\x39\xfe\xdc\x20\xe2\x2e\xd9\x90\xa4\x21\x8a\
\xd6\x73\x81\xe4\x20\x33\x92\xa4\x45\xf0\xc6\x73\x80\x8f\x0c\x25\
\x53\xb2\x03\x26\xee\x83\x55\x97\x1d\x95\x24\xc5\xf7\xe6\xa1\xec\
\x67\x36\xf8\x67\xbb\x42\x92\xf4\xf7\x5d\x35\x00\xbe\x44\x16\x18\
\x61\x52\x92\x7e\x79\xac\x0e\xff\xeb\x27\xc0\x9c\x09\x8e\x4b\x7c\
\x57\x92\xfe\x7b\xdb\x76\x25\x5d\x8c\x42\x53\xd2\x00\xd3\x2c\x48\
\xd2\x54\xc5\x51\x6a\x63\x0f\xac\x18\xe0\x55\x65\x42\x92\x9a\x1b\
\x5a\x07\x76\x24\x29\x00\x23\x06\x70\xf7\x4a\xd2\x3e\x40\xe3\xb9\
\xa4\x3d\xe8\x34\x5e\xf3\xb7\x0d\x10\x06\x38\xdc\x04\x1a\x2d\x0e\
\x53\x2b\x69\x60\xc5\x00\x5a\x9c\x80\xd5\x00\x14\xd7\x10\x35\x80\
\x3b\x02\xf0\x78\xd2\x01\x6f\x3d\x00\x71\x9c\x46\x1e\xde\x94\x9e\
\x49\x92\xb6\x66\xbe\x49\x92\xc2\xd0\x6c\x14\xf9\x89\x59\x23\x7a\
\x9f\x61\xd0\x00\xb1\x9a\xfa\xd3\x4c\xd0\x0d\x01\xf3\xaa\xa7\x78\
\x79\x7e\xb7\x1e\x84\x8a\xb0\x09\x2e\xbb\xe9\xba\x8d\xfb\x5a\x19\
\xbc\xcf\x7e\xee\xe3\xe7\xd4\x4e\xa4\x2a\xfd\x52\x0d\xed\xb1\x34\
\xb0\x50\xba\x9b\xc8\xf0\x32\x4e\xef\x0b\xd7\xc5\xd2\x01\xd4\xad\
\xd9\xe9\x0b\xca\xc8\x64\x22\x50\x7f\xd3\xba\xe7\x36\xd7\x0f\x7f\
\xfe\x6b\x84\x8b\x6f\x11\x3d\xa2\x0c\xf3\x00\x00\x00\x25\x74\x45\
\x58\x74\x64\x61\x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\
\x32\x30\x2d\x30\x34\x2d\x31\x37\x54\x30\x37\x3a\x35\x31\x3a\x30\
\x37\x2b\x30\x30\x3a\x30\x30\xb9\xea\xa7\x8c\x00\x00\x00\x25\x74\
\x45\x58\x74\x64\x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\
\x30\x32\x30\x2d\x30\x34\x2d\x31\x37\x54\x30\x37\x3a\x35\x31\x3a\
\x30\x37\x2b\x30\x30\x3a\x30\x30\xc8\xb7\x1f\x30\x00\x00\x00\x19\
\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\x77\x77\
\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\
\x1a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x18\x54\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
@ -449,18 +401,66 @@ qt_resource_data = b"\
\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\
\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\
\x42\x60\x82\
\x00\x00\x07\xd6\
\x00\x00\x02\xde\
\x89\
\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
\x00\x00\x20\x00\x00\x00\x20\x08\x00\x00\x00\x00\x56\x11\x25\x28\
\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\x8f\x0b\xfc\x61\x05\
\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\x26\x00\x00\x80\x84\
\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00\x75\x30\x00\x00\xea\x60\
\x00\x00\x3a\x98\x00\x00\x17\x70\x9c\xba\x51\x3c\x00\x00\x00\x02\
\x62\x4b\x47\x44\x00\xff\x87\x8f\xcc\xbf\x00\x00\x00\x09\x70\x48\
\x59\x73\x00\x00\x02\x07\x00\x00\x02\x07\x01\x2c\x3a\x75\x9c\x00\
\x00\x00\x07\x74\x49\x4d\x45\x07\xe4\x04\x11\x07\x33\x07\x33\x64\
\x83\x18\x00\x00\x01\xac\x49\x44\x41\x54\x38\xcb\x85\xd3\xbf\x4b\
\xdb\x41\x1c\xc6\xf1\xf7\x37\x26\xfe\x56\xaa\xa5\x0a\x46\xf8\xda\
\x68\xa1\x3a\xa4\x4e\x51\x04\x51\xc1\x76\x52\x10\x4a\x9d\xf2\x07\
\x74\x28\xb8\x38\x74\xab\x4e\x4a\xd1\x45\x33\xb9\x94\x0c\x2d\xd8\
\x7f\xc0\x52\xa1\x28\x42\x04\x45\x1d\x44\x3b\x09\x55\xc4\x68\x5a\
\x53\x2a\x91\x4a\x8c\x79\x1c\x12\x35\x17\x93\x78\xdb\x71\xaf\xe3\
\x3e\x9f\xbb\xe7\xe0\xc1\xa1\xac\x11\x7a\x9a\x39\xbb\x0f\x4e\xdc\
\x76\x41\x70\xd5\x4f\x6d\x41\xf0\x81\x2a\xfe\x14\x00\xdf\x1d\x4d\
\x63\x84\x32\x81\xc3\x28\x38\xec\x77\x7d\x7d\xc4\x8f\xbc\x5d\x24\
\xfa\x98\x55\x10\x5f\xde\x23\xc6\x19\x96\xb6\xb0\xb6\xf3\x80\xa5\
\xa2\x67\x67\xd2\x65\x39\xfe\xdc\x20\xe2\x2e\xd9\x90\xa4\x21\x8a\
\xd6\x73\x81\xe4\x20\x33\x92\xa4\x45\xf0\xc6\x73\x80\x8f\x0c\x25\
\x53\xb2\x03\x26\xee\x83\x55\x97\x1d\x95\x24\xc5\xf7\xe6\xa1\xec\
\x67\x36\xf8\x67\xbb\x42\x92\xf4\xf7\x5d\x35\x00\xbe\x44\x16\x18\
\x61\x52\x92\x7e\x79\xac\x0e\xff\xeb\x27\xc0\x9c\x09\x8e\x4b\x7c\
\x57\x92\xfe\x7b\xdb\x76\x25\x5d\x8c\x42\x53\xd2\x00\xd3\x2c\x48\
\xd2\x54\xc5\x51\x6a\x63\x0f\xac\x18\xe0\x55\x65\x42\x92\x9a\x1b\
\x5a\x07\x76\x24\x29\x00\x23\x06\x70\xf7\x4a\xd2\x3e\x40\xe3\xb9\
\xa4\x3d\xe8\x34\x5e\xf3\xb7\x0d\x10\x06\x38\xdc\x04\x1a\x2d\x0e\
\x53\x2b\x69\x60\xc5\x00\x5a\x9c\x80\xd5\x00\x14\xd7\x10\x35\x80\
\x3b\x02\xf0\x78\xd2\x01\x6f\x3d\x00\x71\x9c\x46\x1e\xde\x94\x9e\
\x49\x92\xb6\x66\xbe\x49\x92\xc2\xd0\x6c\x14\xf9\x89\x59\x23\x7a\
\x9f\x61\xd0\x00\xb1\x9a\xfa\xd3\x4c\xd0\x0d\x01\xf3\xaa\xa7\x78\
\x79\x7e\xb7\x1e\x84\x8a\xb0\x09\x2e\xbb\xe9\xba\x8d\xfb\x5a\x19\
\xbc\xcf\x7e\xee\xe3\xe7\xd4\x4e\xa4\x2a\xfd\x52\x0d\xed\xb1\x34\
\xb0\x50\xba\x9b\xc8\xf0\x32\x4e\xef\x0b\xd7\xc5\xd2\x01\xd4\xad\
\xd9\xe9\x0b\xca\xc8\x64\x22\x50\x7f\xd3\xba\xe7\x36\xd7\x0f\x7f\
\xfe\x6b\x84\x8b\x6f\x11\x3d\xa2\x0c\xf3\x00\x00\x00\x25\x74\x45\
\x58\x74\x64\x61\x74\x65\x3a\x63\x72\x65\x61\x74\x65\x00\x32\x30\
\x32\x30\x2d\x30\x34\x2d\x31\x37\x54\x30\x37\x3a\x35\x31\x3a\x30\
\x37\x2b\x30\x30\x3a\x30\x30\xb9\xea\xa7\x8c\x00\x00\x00\x25\x74\
\x45\x58\x74\x64\x61\x74\x65\x3a\x6d\x6f\x64\x69\x66\x79\x00\x32\
\x30\x32\x30\x2d\x30\x34\x2d\x31\x37\x54\x30\x37\x3a\x35\x31\x3a\
\x30\x37\x2b\x30\x30\x3a\x30\x30\xc8\xb7\x1f\x30\x00\x00\x00\x19\
\x74\x45\x58\x74\x53\x6f\x66\x74\x77\x61\x72\x65\x00\x77\x77\x77\
\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\
\x1a\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
\x00\x00\x06\xfd\
\x3c\
\xb8\x64\x18\xca\xef\x9c\x95\xcd\x21\x1c\xbf\x60\xa1\xbd\xdd\xa7\
\x00\x00\x00\x05\x64\x65\x5f\x44\x45\x42\x00\x00\x00\x70\x00\x04\
\x88\x4b\x00\x00\x04\x7f\x00\x04\x88\x4b\x00\x00\x06\x60\x00\x04\
\xd0\x25\x00\x00\x04\xda\x05\x07\x86\x8e\x00\x00\x03\x14\x05\xb2\
\xaf\x34\x00\x00\x05\x98\x07\x95\xe8\x2d\x00\x00\x06\x2a\x07\x95\
\xe8\x2d\x00\x00\x07\x01\x08\xb5\xfb\x84\x00\x00\x05\xf0\x08\xb5\
\xfb\x84\x00\x00\x06\xc3\x09\x99\xd9\xfe\x00\x00\x01\x0e\x09\xe8\
\x54\xfc\x00\x00\x04\xaa\x09\xe8\x54\xfc\x00\x00\x06\x8f\x0d\x01\
\xa6\x63\x00\x00\x05\x07\x0f\x1e\x47\xbe\x00\x00\x00\x00\x69\x00\
\x00\x07\x3b\x03\x00\x00\x00\xb0\x00\x45\x00\x69\x00\x6e\x00\x20\
\x88\x4b\x00\x00\x03\x14\x00\x04\x88\x4b\x00\x00\x05\x87\x00\x04\
\xd0\x25\x00\x00\x03\x6f\x05\xb2\xaf\x34\x00\x00\x04\x2d\x07\x95\
\xe8\x2d\x00\x00\x05\x51\x07\x95\xe8\x2d\x00\x00\x06\x28\x08\xb5\
\xfb\x84\x00\x00\x04\x85\x08\xb5\xfb\x84\x00\x00\x05\xea\x09\x99\
\xd9\xfe\x00\x00\x01\x0e\x09\xd5\x3d\x7d\x00\x00\x04\xbf\x09\xe8\
\x54\xfc\x00\x00\x03\x3f\x09\xe8\x54\xfc\x00\x00\x05\xb6\x0d\x01\
\xa6\x63\x00\x00\x03\x9c\x0f\x1e\x47\xbe\x00\x00\x00\x00\x69\x00\
\x00\x06\x62\x03\x00\x00\x00\xb0\x00\x45\x00\x69\x00\x6e\x00\x20\
\x00\x6b\x00\x75\x00\x72\x00\x7a\x00\x65\x00\x73\x00\x20\x00\x66\
\x00\x61\x00\x72\x00\x62\x00\x69\x00\x67\x00\x65\x00\x73\x00\x20\
\x00\x41\x00\x75\x00\x66\x00\x62\x00\x6c\x00\x69\x00\x6e\x00\x6b\
@ -509,89 +509,75 @@ qt_resource_data = b"\
\x79\x6f\x75\x72\x20\x63\x61\x72\x65\x66\x75\x6c\x6c\x79\x20\x73\
\x65\x6c\x65\x63\x74\x65\x64\x20\x73\x65\x74\x75\x70\x20\x76\x65\
\x72\x79\x20\x72\x65\x6c\x69\x61\x62\x6c\x65\x2e\x07\x00\x00\x00\
\x05\x41\x62\x6f\x75\x74\x01\x03\x00\x00\x00\xee\x00\x45\x00\x69\
\x00\x6e\x00\x20\x00\x4b\x00\x6c\x00\x69\x00\x63\x00\x6b\x00\x20\
\x00\x6d\x00\x69\x00\x74\x00\x20\x00\x64\x00\x65\x00\x72\x00\x20\
\x00\x6d\x00\x69\x00\x74\x00\x74\x00\x6c\x00\x65\x00\x72\x00\x65\
\x00\x6e\x00\x20\x00\x4d\x00\x61\x00\x75\x00\x73\x00\x74\x00\x61\
\x00\x73\x00\x74\x00\x65\x00\x20\x00\x61\x00\x75\x00\x66\x00\x20\
\x00\x65\x00\x69\x00\x6e\x00\x65\x00\x6e\x00\x20\x00\x4b\x00\x61\
\x00\x6e\x00\x61\x00\x6c\x00\x20\x00\x73\x00\x70\x00\x69\x00\x65\
\x00\x6c\x00\x74\x00\x20\x00\x65\x00\x69\x00\x6e\x00\x65\x00\x20\
\x00\x6b\x00\x75\x00\x72\x00\x7a\x00\x65\x00\x20\x00\x54\x00\x65\
\x00\x73\x00\x74\x00\x6d\x00\x65\x00\x6c\x00\x6f\x00\x64\x00\x69\
\x00\x65\x00\x20\x00\x6d\x00\x69\x00\x74\x00\x20\x00\x64\x00\x65\
\x00\x6d\x00\x20\x00\x61\x00\x75\x00\x73\x00\x67\x00\x65\x00\x77\
\x00\xe4\x00\x68\x00\x6c\x00\x74\x00\x65\x00\x6e\x00\x20\x00\x49\
\x00\x6e\x00\x73\x00\x74\x00\x72\x00\x75\x00\x6d\x00\x65\x00\x6e\
\x00\x74\x00\x20\x00\x61\x00\x62\x00\x2e\x08\x00\x00\x00\x00\x06\
\x00\x00\x00\x63\x43\x6c\x69\x63\x6b\x20\x77\x69\x74\x68\x20\x6d\
\x69\x64\x64\x6c\x65\x20\x6d\x6f\x75\x73\x65\x20\x62\x75\x74\x74\
\x6f\x6e\x20\x6f\x6e\x20\x61\x20\x63\x68\x61\x6e\x6e\x65\x6c\x20\
\x74\x6f\x20\x68\x65\x61\x72\x20\x61\x20\x73\x68\x6f\x72\x74\x20\
\x74\x65\x73\x74\x20\x6d\x65\x6c\x6f\x64\x79\x20\x77\x69\x74\x68\
\x20\x74\x68\x65\x20\x63\x68\x6f\x73\x65\x6e\x20\x69\x6e\x73\x74\
\x72\x75\x6d\x65\x6e\x74\x2e\x07\x00\x00\x00\x05\x41\x62\x6f\x75\
\x74\x01\x03\x00\x00\x00\x08\x00\x42\x00\x61\x00\x6e\x00\x6b\x08\
\x00\x00\x00\x00\x06\x00\x00\x00\x04\x42\x61\x6e\x6b\x07\x00\x00\
\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\
\x00\x0a\x00\x4b\x00\x61\x00\x6e\x00\x61\x00\x6c\x08\x00\x00\x00\
\x00\x06\x00\x00\x00\x07\x43\x68\x61\x6e\x6e\x65\x6c\x07\x00\x00\
\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\
\x00\x0a\x00\x44\x00\x61\x00\x74\x00\x65\x00\x69\x08\x00\x00\x00\
\x00\x06\x00\x00\x00\x04\x46\x69\x6c\x65\x07\x00\x00\x00\x0a\x4d\
\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\x00\x4e\x00\
\x49\x00\x67\x00\x6e\x00\x6f\x00\x72\x00\x69\x00\x65\x00\x72\x00\
\x65\x00\x20\x00\x4d\x00\x49\x00\x44\x00\x49\x00\x20\x00\x42\x00\
\x61\x00\x6e\x00\x6b\x00\x20\x00\x75\x00\x6e\x00\x64\x00\x20\x00\
\x50\x00\x72\x00\x6f\x00\x67\x00\x72\x00\x61\x00\x6d\x00\x20\x00\
\x43\x00\x68\x00\x61\x00\x6e\x00\x67\x00\x65\x00\x73\x08\x00\x00\
\x00\x00\x06\x00\x00\x00\x24\x49\x67\x6e\x6f\x72\x65\x20\x4d\x49\
\x44\x49\x20\x42\x61\x6e\x6b\x20\x61\x6e\x64\x20\x50\x72\x6f\x67\
\x72\x61\x6d\x20\x43\x68\x61\x6e\x67\x65\x73\x07\x00\x00\x00\x0a\
\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\x00\x26\
\x00\x4c\x00\x61\x00\x64\x00\x65\x00\x20\x00\x2e\x00\x73\x00\x66\
\x00\x32\x00\x20\x00\x53\x00\x6f\x00\x75\x00\x6e\x00\x64\x00\x66\
\x00\x6f\x00\x6e\x00\x74\x08\x00\x00\x00\x00\x06\x00\x00\x00\x13\
\x4f\x70\x65\x6e\x20\x2e\x73\x66\x32\x20\x53\x6f\x75\x6e\x64\x66\
\x6f\x6e\x74\x07\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\
\x6f\x77\x01\x03\x00\x00\x00\x12\x00\x4b\x00\x6c\x00\x61\x00\x6e\
\x00\x67\x00\x74\x00\x65\x00\x73\x00\x74\x08\x00\x00\x00\x00\x06\
\x00\x00\x00\x09\x50\x6c\x61\x79\x20\x54\x65\x73\x74\x07\x00\x00\
\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\
\x00\x10\x00\x50\x00\x72\x00\x6f\x00\x67\x00\x72\x00\x61\x00\x6d\
\x00\x6d\x08\x00\x00\x00\x00\x06\x00\x00\x00\x07\x50\x72\x6f\x67\
\x72\x61\x6d\x07\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\
\x6f\x77\x01\x03\x00\x00\x00\x08\x00\x42\x00\x61\x00\x6e\x00\x6b\
\x08\x00\x00\x00\x00\x06\x00\x00\x00\x04\x42\x61\x6e\x6b\x07\x00\
\x00\x00\x0e\x52\x61\x63\x6b\x54\x72\x65\x65\x57\x69\x64\x67\x65\
\x74\x01\x03\x00\x00\x00\x0a\x00\x4b\x00\x61\x00\x6e\x00\x61\x00\
\x05\x41\x62\x6f\x75\x74\x01\x03\x00\x00\x00\x08\x00\x42\x00\x61\
\x00\x6e\x00\x6b\x08\x00\x00\x00\x00\x06\x00\x00\x00\x04\x42\x61\
\x6e\x6b\x07\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\
\x77\x01\x03\x00\x00\x00\x0a\x00\x4b\x00\x61\x00\x6e\x00\x61\x00\
\x6c\x08\x00\x00\x00\x00\x06\x00\x00\x00\x07\x43\x68\x61\x6e\x6e\
\x65\x6c\x07\x00\x00\x00\x0e\x52\x61\x63\x6b\x54\x72\x65\x65\x57\
\x69\x64\x67\x65\x74\x01\x03\x00\x00\x00\x12\x00\x4b\x00\x6c\x00\
\x61\x00\x6e\x00\x67\x00\x74\x00\x65\x00\x73\x00\x74\x08\x00\x00\
\x00\x00\x06\x00\x00\x00\x09\x50\x6c\x61\x79\x20\x54\x65\x73\x74\
\x07\x00\x00\x00\x0e\x52\x61\x63\x6b\x54\x72\x65\x65\x57\x69\x64\
\x67\x65\x74\x01\x03\x00\x00\x00\x10\x00\x50\x00\x72\x00\x6f\x00\
\x65\x6c\x07\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\
\x77\x01\x03\x00\x00\x00\x0a\x00\x44\x00\x61\x00\x74\x00\x65\x00\
\x69\x08\x00\x00\x00\x00\x06\x00\x00\x00\x04\x46\x69\x6c\x65\x07\
\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\
\x00\x00\x00\x4e\x00\x49\x00\x67\x00\x6e\x00\x6f\x00\x72\x00\x69\
\x00\x65\x00\x72\x00\x65\x00\x20\x00\x4d\x00\x49\x00\x44\x00\x49\
\x00\x20\x00\x42\x00\x61\x00\x6e\x00\x6b\x00\x20\x00\x75\x00\x6e\
\x00\x64\x00\x20\x00\x50\x00\x72\x00\x6f\x00\x67\x00\x72\x00\x61\
\x00\x6d\x00\x20\x00\x43\x00\x68\x00\x61\x00\x6e\x00\x67\x00\x65\
\x00\x73\x08\x00\x00\x00\x00\x06\x00\x00\x00\x24\x49\x67\x6e\x6f\
\x72\x65\x20\x4d\x49\x44\x49\x20\x42\x61\x6e\x6b\x20\x61\x6e\x64\
\x20\x50\x72\x6f\x67\x72\x61\x6d\x20\x43\x68\x61\x6e\x67\x65\x73\
\x07\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\
\x03\x00\x00\x00\x26\x00\x4c\x00\x61\x00\x64\x00\x65\x00\x20\x00\
\x2e\x00\x73\x00\x66\x00\x32\x00\x20\x00\x53\x00\x6f\x00\x75\x00\
\x6e\x00\x64\x00\x66\x00\x6f\x00\x6e\x00\x74\x08\x00\x00\x00\x00\
\x06\x00\x00\x00\x13\x4f\x70\x65\x6e\x20\x2e\x73\x66\x32\x20\x53\
\x6f\x75\x6e\x64\x66\x6f\x6e\x74\x07\x00\x00\x00\x0a\x4d\x61\x69\
\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\x00\x12\x00\x4b\x00\
\x6c\x00\x61\x00\x6e\x00\x67\x00\x74\x00\x65\x00\x73\x00\x74\x08\
\x00\x00\x00\x00\x06\x00\x00\x00\x09\x50\x6c\x61\x79\x20\x54\x65\
\x73\x74\x07\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\x64\x6f\
\x77\x01\x03\x00\x00\x00\x4a\x00\x53\x00\x70\x00\x69\x00\x65\x00\
\x6c\x00\x65\x00\x20\x00\x4b\x00\x6c\x00\x61\x00\x6e\x00\x67\x00\
\x74\x00\x65\x00\x73\x00\x74\x00\x20\x00\x6e\x00\x61\x00\x63\x00\
\x68\x00\x20\x00\x50\x00\x72\x00\x6f\x00\x67\x00\x72\x00\x61\x00\
\x6d\x00\x6d\x00\x61\x00\x75\x00\x73\x00\x77\x00\x61\x00\x68\x00\
\x6c\x08\x00\x00\x00\x00\x06\x00\x00\x00\x29\x50\x6c\x61\x79\x20\
\x74\x65\x73\x74\x20\x73\x6f\x75\x6e\x64\x20\x61\x66\x74\x65\x72\
\x20\x73\x65\x6c\x65\x63\x74\x69\x6e\x67\x20\x61\x20\x70\x72\x6f\
\x67\x72\x61\x6d\x07\x00\x00\x00\x0a\x4d\x61\x69\x6e\x57\x69\x6e\
\x64\x6f\x77\x01\x03\x00\x00\x00\x10\x00\x50\x00\x72\x00\x6f\x00\
\x67\x00\x72\x00\x61\x00\x6d\x00\x6d\x08\x00\x00\x00\x00\x06\x00\
\x00\x00\x07\x50\x72\x6f\x67\x72\x61\x6d\x07\x00\x00\x00\x0e\x52\
\x61\x63\x6b\x54\x72\x65\x65\x57\x69\x64\x67\x65\x74\x01\x88\x00\
\x00\x00\x02\x01\x01\
\x00\x00\x07\x50\x72\x6f\x67\x72\x61\x6d\x07\x00\x00\x00\x0a\x4d\
\x61\x69\x6e\x57\x69\x6e\x64\x6f\x77\x01\x03\x00\x00\x00\x08\x00\
\x42\x00\x61\x00\x6e\x00\x6b\x08\x00\x00\x00\x00\x06\x00\x00\x00\
\x04\x42\x61\x6e\x6b\x07\x00\x00\x00\x0e\x52\x61\x63\x6b\x54\x72\
\x65\x65\x57\x69\x64\x67\x65\x74\x01\x03\x00\x00\x00\x0a\x00\x4b\
\x00\x61\x00\x6e\x00\x61\x00\x6c\x08\x00\x00\x00\x00\x06\x00\x00\
\x00\x07\x43\x68\x61\x6e\x6e\x65\x6c\x07\x00\x00\x00\x0e\x52\x61\
\x63\x6b\x54\x72\x65\x65\x57\x69\x64\x67\x65\x74\x01\x03\x00\x00\
\x00\x12\x00\x4b\x00\x6c\x00\x61\x00\x6e\x00\x67\x00\x74\x00\x65\
\x00\x73\x00\x74\x08\x00\x00\x00\x00\x06\x00\x00\x00\x09\x50\x6c\
\x61\x79\x20\x54\x65\x73\x74\x07\x00\x00\x00\x0e\x52\x61\x63\x6b\
\x54\x72\x65\x65\x57\x69\x64\x67\x65\x74\x01\x03\x00\x00\x00\x10\
\x00\x50\x00\x72\x00\x6f\x00\x67\x00\x72\x00\x61\x00\x6d\x00\x6d\
\x08\x00\x00\x00\x00\x06\x00\x00\x00\x07\x50\x72\x6f\x67\x72\x61\
\x6d\x07\x00\x00\x00\x0e\x52\x61\x63\x6b\x54\x72\x65\x65\x57\x69\
\x64\x67\x65\x74\x01\x88\x00\x00\x00\x02\x01\x01\
"
qt_resource_name = b"\
\x00\x0c\
\x0d\xfc\x11\x13\
\x00\x74\
\x00\x72\x00\x61\x00\x6e\x00\x73\x00\x6c\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\
\x00\x0b\
\x0a\xb8\x4e\xa7\
\x00\x66\
\x00\x61\x00\x76\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x0d\
\x0b\x0f\xc0\xa7\
\x00\x61\
\x00\x62\x00\x6f\x00\x75\x00\x74\x00\x6c\x00\x6f\x00\x67\x00\x6f\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x0b\
\x0a\xb8\x4e\xa7\
\x00\x66\
\x00\x61\x00\x76\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\
\x00\x0c\
\x0d\xfc\x11\x13\
\x00\x74\
\x00\x72\x00\x61\x00\x6e\x00\x73\x00\x6c\x00\x61\x00\x74\x00\x69\x00\x6f\x00\x6e\x00\x73\
\x00\x05\
\x00\x6a\x85\x7d\
\x00\x64\
@ -600,23 +586,23 @@ qt_resource_name = b"\
qt_resource_struct_v1 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\
\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x02\xe2\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\
\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x18\x58\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x3c\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\
\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x3a\
"
qt_resource_struct_v2 = b"\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x01\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x00\x20\x00\x00\x00\x00\x00\x01\x00\x00\x18\x58\
\x00\x00\x01\x72\xce\x17\x85\xe2\
\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x01\x00\x00\x02\xe2\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
\x00\x00\x01\x72\xce\x17\x85\xe2\
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\
\x00\x00\x00\x3c\x00\x02\x00\x00\x00\x01\x00\x00\x00\x04\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x5a\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x3a\
\x00\x00\x01\x72\xf2\xcd\x0a\xa5\
\x00\x00\x01\x72\xf5\x58\x66\x05\
"
qt_version = [int(v) for v in QtCore.qVersion().split('.')]

BIN
qtgui/resources/translations/de.qm

Binary file not shown.

33
qtgui/resources/translations/de.ts

@ -4,78 +4,83 @@
<context>
<name>About</name>
<message>
<location filename="../../mainwindow.py" line="61"/>
<location filename="../../mainwindow.py" line="60"/>
<source>Block incoming midi instrument changes by checking &apos;Ignore MIDI Bank and Progam Changes&apos; in the main window. This will make your carefully selected setup very reliable.</source>
<translation>Blockiere eingehende Midi-Instrumentenwechsel indem du die gleichnamige Checkbox markierst. Damit machst du deine Instrumentenauswahl sehr robust und zuverlässig.</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="62"/>
<location filename="../../mainwindow.py" line="61"/>
<source>A short flash of color indicates which channel just received a note.</source>
<translation>Ein kurzes farbiges Aufblinken zeigt dir auf welchem Kanal gerade Noten gespielt werden.</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="63"/>
<source>Click with middle mouse button on a channel to hear a short test melody with the chosen instrument.</source>
<translation>Ein Klick mit der mittleren Maustaste auf einen Kanal spielt eine kurze Testmelodie mit dem ausgewählten Instrument ab.</translation>
<translation type="obsolete">Ein Klick mit der mittleren Maustaste auf einen Kanal spielt eine kurze Testmelodie mit dem ausgewählten Instrument ab.</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../designer/mainwindow.py" line="73"/>
<location filename="../../designer/mainwindow.py" line="76"/>
<source>Ignore MIDI Bank and Program Changes</source>
<translation>Ignoriere MIDI Bank und Program Changes</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="78"/>
<location filename="../../designer/mainwindow.py" line="82"/>
<source>File</source>
<translation>Datei</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="79"/>
<location filename="../../designer/mainwindow.py" line="83"/>
<source>Open .sf2 Soundfont</source>
<translation>Lade .sf2 Soundfont</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="74"/>
<location filename="../../designer/mainwindow.py" line="78"/>
<source>Channel</source>
<translation>Kanal</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="75"/>
<location filename="../../designer/mainwindow.py" line="79"/>
<source>Play Test</source>
<translation>Klangtest</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="76"/>
<location filename="../../designer/mainwindow.py" line="80"/>
<source>Bank</source>
<translation>Bank</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="77"/>
<location filename="../../designer/mainwindow.py" line="81"/>
<source>Program</source>
<translation>Programm</translation>
</message>
<message>
<location filename="../../designer/mainwindow.py" line="77"/>
<source>Play test sound after selecting a program</source>
<translation>Spiele Klangtest nach Programmauswahl</translation>
</message>
</context>
<context>
<name>RackTreeWidget</name>
<message>
<location filename="../../mainwindow.py" line="94"/>
<location filename="../../mainwindow.py" line="98"/>
<source>Channel</source>
<translation>Kanal</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="95"/>
<location filename="../../mainwindow.py" line="99"/>
<source>Play Test</source>
<translation>Klangtest</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="96"/>
<location filename="../../mainwindow.py" line="100"/>
<source>Bank</source>
<translation>Bank</translation>
</message>
<message>
<location filename="../../mainwindow.py" line="97"/>
<location filename="../../mainwindow.py" line="101"/>
<source>Program</source>
<translation>Programm</translation>
</message>

Loading…
Cancel
Save