@@ -31,7 +31,7 @@ Optional but recommended: | |||||
On Debian and Ubuntu, use these commands to install all dependencies: <br/> | On Debian and Ubuntu, use these commands to install all dependencies: <br/> | ||||
`$ sudo apt-get install libjack-dev liblo-dev libgtk2.0-dev libqt4-dev libfluidsynth-dev` <br/> | `$ sudo apt-get install libjack-dev liblo-dev libgtk2.0-dev libqt4-dev libfluidsynth-dev` <br/> | ||||
`$ sudo apt-get install qt4-dev-tools python-qt4-dev pyqt4-dev-tools` | |||||
`$ sudo apt-get install qt4-dev-tools python-qt4-dev python3-pyqt4 pyqt4-dev-tools` | |||||
NOTE: linuxsampler is not packaged in either Debian or Ubuntu, but it's available in KXStudio. <br/> | NOTE: linuxsampler is not packaged in either Debian or Ubuntu, but it's available in KXStudio. <br/> | ||||
<br/> | <br/> | ||||
@@ -624,7 +624,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW): | |||||
patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
patchcanvas.init("Catarina", self.scene, self.canvasCallback, DEBUG) | |||||
self.connect(self.act_project_new, SIGNAL("triggered()"), SLOT("slot_projectNew()")) | self.connect(self.act_project_new, SIGNAL("triggered()"), SLOT("slot_projectNew()")) | ||||
self.connect(self.act_project_open, SIGNAL("triggered()"), SLOT("slot_projectOpen()")) | self.connect(self.act_project_open, SIGNAL("triggered()"), SLOT("slot_projectOpen()")) | ||||
@@ -1199,7 +1199,7 @@ class CatarinaMainW(QMainWindow, ui_catarina.Ui_CatarinaMainW): | |||||
p_options.eyecandy = self.m_savedSettings["Canvas/EyeCandy"] | p_options.eyecandy = self.m_savedSettings["Canvas/EyeCandy"] | ||||
patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
patchcanvas.init("Catarina", self.scene, self.canvasCallback, DEBUG) | |||||
self.init_ports() | self.init_ports() | ||||
@@ -137,7 +137,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
patchcanvas.init("Catia", self.scene, self.canvasCallback, DEBUG) | |||||
# Try to connect to jack | # Try to connect to jack | ||||
self.jackStarted() | self.jackStarted() | ||||
@@ -1222,7 +1222,7 @@ class CatiaMainW(QMainWindow, ui_catia.Ui_CatiaMainW): | |||||
patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
patchcanvas.init("Catia", self.scene, self.canvasCallback, DEBUG) | |||||
self.init_ports() | self.init_ports() | ||||
@@ -22,8 +22,8 @@ from PyQt4.QtCore import QPointF, QSettings | |||||
from PyQt4.QtGui import QAction, QApplication, QMainWindow, QVBoxLayout, QTableWidgetItem, QTreeWidgetItem | from PyQt4.QtGui import QAction, QApplication, QMainWindow, QVBoxLayout, QTableWidgetItem, QTreeWidgetItem | ||||
# Imports (Custom Stuff) | # Imports (Custom Stuff) | ||||
import systray | |||||
import claudia_launcher | import claudia_launcher | ||||
import systray | |||||
import ui_claudia | import ui_claudia | ||||
import ui_claudia_studioname, ui_claudia_studiolist | import ui_claudia_studioname, ui_claudia_studiolist | ||||
import ui_claudia_createroom, ui_claudia_projectname, ui_claudia_projectproperties | import ui_claudia_createroom, ui_claudia_projectname, ui_claudia_projectproperties | ||||
@@ -695,7 +695,7 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): | |||||
patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
patchcanvas.init("Claudia", self.scene, self.canvasCallback, DEBUG) | |||||
patchcanvas.setInitialPos(DEFAULT_CANVAS_WIDTH / 2, DEFAULT_CANVAS_HEIGHT / 2) | patchcanvas.setInitialPos(DEFAULT_CANVAS_WIDTH / 2, DEFAULT_CANVAS_HEIGHT / 2) | ||||
patchcanvas.setCanvasSize(0, 0, DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT) | patchcanvas.setCanvasSize(0, 0, DEFAULT_CANVAS_WIDTH, DEFAULT_CANVAS_HEIGHT) | ||||
@@ -2395,7 +2395,7 @@ class ClaudiaMainW(QMainWindow, ui_claudia.Ui_ClaudiaMainW): | |||||
patchcanvas.setOptions(p_options) | patchcanvas.setOptions(p_options) | ||||
patchcanvas.setFeatures(p_features) | patchcanvas.setFeatures(p_features) | ||||
patchcanvas.init(self.scene, self.canvasCallback, DEBUG) | |||||
patchcanvas.init("Claudia", self.scene, self.canvasCallback, DEBUG) | |||||
if DBus.ladish_control.IsStudioLoaded() and DBus.ladish_studio and DBus.ladish_studio.IsStarted(): | if DBus.ladish_control.IsStudioLoaded() and DBus.ladish_studio and DBus.ladish_studio.IsStarted(): | ||||
self.init_ports() | self.init_ports() | ||||
@@ -57,7 +57,7 @@ class XIcon(object): | |||||
icon = QIcon(os.path.join(iEXTRA_PATH, name + ".xpm")) | icon = QIcon(os.path.join(iEXTRA_PATH, name + ".xpm")) | ||||
break | break | ||||
else: | else: | ||||
print("XIcon::Failed to find icon for %s" % name) | |||||
print("XIcon::getIcon(%s) - Failed to find icon" % name) | |||||
return icon | return icon | ||||
@@ -171,7 +171,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): | |||||
if appname == AppName: | if appname == AppName: | ||||
return Binary | return Binary | ||||
print("Failed to find binary from App name") | |||||
print("ClaudiaLauncher::getBinaryFromAppName(%s) - Failed to find binary from App name" % appname) | |||||
return "" | return "" | ||||
def startApp(self, app=None): | def startApp(self, app=None): | ||||
@@ -261,7 +261,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): | |||||
else: | else: | ||||
app = None | app = None | ||||
tmplte_cmd = binary | tmplte_cmd = binary | ||||
print("Failed to find template dir") | |||||
print("ClaudiaLauncher::createAppTemplate() - Failed to find template dir") | |||||
if not os.path.exists(proj_folder): | if not os.path.exists(proj_folder): | ||||
os.mkdir(proj_folder) | os.mkdir(proj_folder) | ||||
@@ -360,14 +360,16 @@ class JackSettingsW(QDialog, ui_settings_jack.Ui_JackSettingsW): | |||||
# ------------------------------------------------------------- | # ------------------------------------------------------------- | ||||
# Driver calls | # Driver calls | ||||
# resetIfNeeded: fix alsa parameter re-order bug in JACK 1.9.8 (reset/remove non-used values) | |||||
def saveDriverSettings(self, resetIfNeeded): | def saveDriverSettings(self, resetIfNeeded): | ||||
if self.obj_driver_device.isEnabled(): | if self.obj_driver_device.isEnabled(): | ||||
value = dbus.String(self.obj_driver_device.currentText().split(" [")[0]) | value = dbus.String(self.obj_driver_device.currentText().split(" [")[0]) | ||||
if value != jackctl.GetParameterValue(["driver", "device"])[2]: | if value != jackctl.GetParameterValue(["driver", "device"])[2]: | ||||
jackctl.SetParameterValue(["driver", "device"], value) | jackctl.SetParameterValue(["driver", "device"], value) | ||||
#elif resetIfNeeded: | |||||
#jackctl.ResetParameterValue(["driver", "device"]) | |||||
elif resetIfNeeded: | |||||
jackctl.ResetParameterValue(["driver", "device"]) | |||||
if self.obj_driver_capture.isEnabled(): | if self.obj_driver_capture.isEnabled(): | ||||
if self.m_driver == "alsa": | if self.m_driver == "alsa": | ||||
@@ -383,8 +385,8 @@ class JackSettingsW(QDialog, ui_settings_jack.Ui_JackSettingsW): | |||||
if value != None: | if value != None: | ||||
setDriverParameter("capture", value, True) | setDriverParameter("capture", value, True) | ||||
#elif resetIfNeeded: | |||||
#jackctl.ResetParameterValue(["driver", "capture"]) | |||||
elif resetIfNeeded: | |||||
jackctl.ResetParameterValue(["driver", "capture"]) | |||||
if self.obj_driver_playback.isEnabled(): | if self.obj_driver_playback.isEnabled(): | ||||
if self.m_driver == "alsa": | if self.m_driver == "alsa": | ||||
@@ -400,8 +402,8 @@ class JackSettingsW(QDialog, ui_settings_jack.Ui_JackSettingsW): | |||||
if value != None: | if value != None: | ||||
setDriverParameter("playback", value, True) | setDriverParameter("playback", value, True) | ||||
#elif resetIfNeeded: | |||||
#jackctl.ResetParameterValue(["driver", "playback"]) | |||||
elif resetIfNeeded: | |||||
jackctl.ResetParameterValue(["driver", "playback"]) | |||||
if self.obj_driver_rate.isEnabled(): | if self.obj_driver_rate.isEnabled(): | ||||
value = dbus.UInt32(int(self.obj_driver_rate.currentText())) | value = dbus.UInt32(int(self.obj_driver_rate.currentText())) | ||||
@@ -16,7 +16,7 @@ | |||||
# | # | ||||
# For a full copy of the GNU General Public License see the COPYING file | # For a full copy of the GNU General Public License see the COPYING file | ||||
# TODO - apply last changes to c++ (2 commits) | |||||
# TODO - apply last changes to c++ (2 commits + theme changes) | |||||
# Imports (Global) | # Imports (Global) | ||||
from PyQt4.QtCore import pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject, SIGNAL, SLOT | from PyQt4.QtCore import pyqtSlot, qDebug, qCritical, qFatal, qWarning, Qt, QObject, SIGNAL, SLOT | ||||
@@ -30,8 +30,6 @@ from PyQt4.QtSvg import QGraphicsSvgItem, QSvgRenderer | |||||
# Imports (Theme) | # Imports (Theme) | ||||
from patchcanvas_theme import * | from patchcanvas_theme import * | ||||
PATCHCANVAS_ORGANISATION_NAME = "PatchCanvas" | |||||
# ------------------------------------------------------------------------------ | # ------------------------------------------------------------------------------ | ||||
# patchcanvas-api.h | # patchcanvas-api.h | ||||
@@ -296,7 +294,7 @@ def setFeatures(new_features): | |||||
features.port_rename = new_features.port_rename | features.port_rename = new_features.port_rename | ||||
features.handle_group_pos = new_features.handle_group_pos | features.handle_group_pos = new_features.handle_group_pos | ||||
def init(scene, callback, debug=False): | |||||
def init(appName, scene, callback, debug=False): | |||||
if debug: | if debug: | ||||
qDebug("PatchCanvas::init(%s, %s, %s)" % (scene, callback, bool2str(debug))) | qDebug("PatchCanvas::init(%s, %s, %s)" % (scene, callback, bool2str(debug))) | ||||
@@ -308,9 +306,9 @@ def init(scene, callback, debug=False): | |||||
qFatal("PatchCanvas::init() - fatal error: callback not set") | qFatal("PatchCanvas::init() - fatal error: callback not set") | ||||
return | return | ||||
canvas.scene = scene | |||||
canvas.scene = scene | |||||
canvas.callback = callback | canvas.callback = callback | ||||
canvas.debug = debug | |||||
canvas.debug = debug | |||||
canvas.last_z_value = 0 | canvas.last_z_value = 0 | ||||
canvas.last_connection_id = 0 | canvas.last_connection_id = 0 | ||||
@@ -318,7 +316,7 @@ def init(scene, callback, debug=False): | |||||
canvas.size_rect = QRectF() | canvas.size_rect = QRectF() | ||||
if not canvas.qobject: canvas.qobject = CanvasObject() | if not canvas.qobject: canvas.qobject = CanvasObject() | ||||
if not canvas.settings: canvas.settings = QSettings(PATCHCANVAS_ORGANISATION_NAME, "PatchCanvas") | |||||
if not canvas.settings: canvas.settings = QSettings("Cadence", appName) | |||||
if canvas.theme: | if canvas.theme: | ||||
del canvas.theme | del canvas.theme | ||||
@@ -74,6 +74,7 @@ BINARY_UNIX32 = 1 | |||||
BINARY_UNIX64 = 2 | BINARY_UNIX64 = 2 | ||||
BINARY_WIN32 = 3 | BINARY_WIN32 = 3 | ||||
BINARY_WIN64 = 4 | BINARY_WIN64 = 4 | ||||
# TODO - use POSIX instead | |||||
# enum PluginType | # enum PluginType | ||||
PLUGIN_NONE = 0 | PLUGIN_NONE = 0 | ||||
@@ -101,6 +102,7 @@ PARAMETER_UNKNOWN = 0 | |||||
PARAMETER_INPUT = 1 | PARAMETER_INPUT = 1 | ||||
PARAMETER_OUTPUT = 2 | PARAMETER_OUTPUT = 2 | ||||
PARAMETER_LATENCY = 3 | PARAMETER_LATENCY = 3 | ||||
# TODO - add PARAMETER_SAMPLE_RATE | |||||
# enum InternalParametersIndex | # enum InternalParametersIndex | ||||
PARAMETER_ACTIVE = -1 | PARAMETER_ACTIVE = -1 | ||||
@@ -409,8 +411,7 @@ class PluginParameter(QWidget, ui_carla_parameter.Ui_PluginParameter): | |||||
self.m_midiChannel = 1 | self.m_midiChannel = 1 | ||||
self.m_pluginId = pluginId | self.m_pluginId = pluginId | ||||
self.m_parameterId = pInfo['index'] | self.m_parameterId = pInfo['index'] | ||||
self.m_tabIndex = tabIndex | |||||
self.m_tabIndex = tabIndex | |||||
self.add_MIDI_CCs_to_ComboBox() | self.add_MIDI_CCs_to_ComboBox() | ||||
@@ -225,7 +225,7 @@ def refreshTransport(self_): | |||||
tick = 0 | tick = 0 | ||||
self_.label_time.setText("%03i|%02i|%04i" % (bar, beat, tick)) | self_.label_time.setText("%03i|%02i|%04i" % (bar, beat, tick)) | ||||
else: | else: | ||||
self_.label_time.setText("000|00|0000") | |||||
self_.label_time.setText("%03i|%02i|%04i" % (0, 0, 0)) | |||||
elif self_.m_selected_transport_view == TRANSPORT_VIEW_FRAMES: | elif self_.m_selected_transport_view == TRANSPORT_VIEW_FRAMES: | ||||
frame1 = pos.frame % 1000 | frame1 = pos.frame % 1000 | ||||
@@ -6,8 +6,8 @@ | |||||
<rect> | <rect> | ||||
<x>0</x> | <x>0</x> | ||||
<y>0</y> | <y>0</y> | ||||
<width>585</width> | |||||
<height>332</height> | |||||
<width>513</width> | |||||
<height>336</height> | |||||
</rect> | </rect> | ||||
</property> | </property> | ||||
<property name="windowTitle"> | <property name="windowTitle"> | ||||