Browse Source

Carla/Control: Implement & fix parameter midi-cc/channel

tags/v0.9.0
falkTX 13 years ago
parent
commit
1cb8f934d4
3 changed files with 27 additions and 11 deletions
  1. +23
    -6
      src/carla.py
  2. +0
    -1
      src/carla_control.py
  3. +4
    -4
      src/shared_carla.py

+ 23
- 6
src/carla.py View File

@@ -1082,8 +1082,8 @@ class CarlaAboutW(QDialog, ui_carla_about.Ui_CarlaAboutW):
" /set_balance_left <f-value>\n"
" /set_balance_right <f-value>\n"
" /set_parameter_value <i-index> <f-value>\n"
#" /set_parameter_midi_cc <i-index> <i-cc>\n"
#" /set_parameter_midi_channel <i-index> <i-channel>\n"
" /set_parameter_midi_cc <i-index> <i-cc>\n"
" /set_parameter_midi_channel <i-index> <i-channel>\n"
" /set_program <i-index>\n"
" /set_midi_program <i-index>\n"
" /note_on <i-note> <i-velo>\n"
@@ -1202,7 +1202,9 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW):

self.connect(self, SIGNAL("SIGUSR1()"), SLOT("slot_handleSIGUSR1()"))
self.connect(self, SIGNAL("DebugCallback(int, int, int, double)"), SLOT("slot_handleDebugCallback(int, int, int, double)"))
self.connect(self, SIGNAL("ParameterCallback(int, int, double)"), SLOT("slot_handleParameterCallback(int, int, double)"))
self.connect(self, SIGNAL("ParameterValueCallback(int, int, double)"), SLOT("slot_handleParameterValueCallback(int, int, double)"))
self.connect(self, SIGNAL("ParameterMidiChannelCallback(int, int, int)"), SLOT("slot_handleParameterMidiChannelCallback(int, int, int)"))
self.connect(self, SIGNAL("ParameterMidiCcCallback(int, int, int)"), SLOT("slot_handleParameterMidiCcCallback(int, int, int)"))
self.connect(self, SIGNAL("ProgramCallback(int, int)"), SLOT("slot_handleProgramCallback(int, int)"))
self.connect(self, SIGNAL("MidiProgramCallback(int, int)"), SLOT("slot_handleMidiProgramCallback(int, int)"))
self.connect(self, SIGNAL("NoteOnCallback(int, int, int, int)"), SLOT("slot_handleNoteOnCallback(int, int, int, int)"))
@@ -1350,7 +1352,7 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW):
print("DEBUG :: %i, %i, %i, %f)" % (plugin_id, value1, value2, value3))

@pyqtSlot(int, int, float)
def slot_handleParameterCallback(self, pluginId, parameterId, value):
def slot_handleParameterValueCallback(self, pluginId, parameterId, value):
pwidget = self.m_plugin_list[pluginId]
if pwidget:
pwidget.m_parameterIconTimer = ICON_STATE_ON
@@ -1368,6 +1370,18 @@ class CarlaMainW(QMainWindow, ui_carla.Ui_CarlaMainW):
elif parameterId >= 0:
pwidget.edit_dialog.set_parameter_to_update(parameterId)

@pyqtSlot(int, int, int)
def slot_handleParameterMidiChannelCallback(self, pluginId, parameterId, channel):
pwidget = self.m_plugin_list[pluginId]
if pwidget:
pwidget.edit_dialog.set_parameter_midi_channel(parameterId, channel, True)

@pyqtSlot(int, int, int)
def slot_handleParameterMidiCcCallback(self, pluginId, parameterId, cc):
pwidget = self.m_plugin_list[pluginId]
if pwidget:
pwidget.edit_dialog.set_parameter_midi_cc(parameterId, cc, True)

@pyqtSlot(int, int)
def slot_handleProgramCallback(self, plugin_id, program_id):
pwidget = self.m_plugin_list[plugin_id]
@@ -2017,8 +2031,11 @@ def callback_function(ptr, action, pluginId, value1, value2, value3):
if action == CALLBACK_DEBUG:
Carla.gui.emit(SIGNAL("DebugCallback(int, int, int, double)"), pluginId, value1, value2, value3)
elif action == CALLBACK_PARAMETER_VALUE_CHANGED:
Carla.gui.emit(SIGNAL("ParameterCallback(int, int, double)"), pluginId, value1, value3)
# TODO param midi callbacks
Carla.gui.emit(SIGNAL("ParameterValueCallback(int, int, double)"), pluginId, value1, value3)
elif action == CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED:
Carla.gui.emit(SIGNAL("ParameterMidiChannelCallback(int, int, int)"), pluginId, value1, value2)
elif action == CALLBACK_PARAMETER_MIDI_CC_CHANGED:
Carla.gui.emit(SIGNAL("ParameterMidiCcCallback(int, int, int)"), pluginId, value1, value2)
elif action == CALLBACK_PROGRAM_CHANGED:
Carla.gui.emit(SIGNAL("ProgramCallback(int, int)"), pluginId, value1)
elif action == CALLBACK_MIDI_PROGRAM_CHANGED:


+ 0
- 1
src/carla_control.py View File

@@ -745,7 +745,6 @@ class CarlaControlW(QMainWindow, ui_carla_control.Ui_CarlaControlW):

@pyqtSlot(int, int, int)
def slot_handleSetParameterMidiChannel(self, pluginId, index, channel):
channel += 1
Carla.Host._set_parameterMidiChannel(pluginId, index, channel)

pwidget = self.m_plugin_list[pluginId]


+ 4
- 4
src/shared_carla.py View File

@@ -511,8 +511,8 @@ class PluginParameter(QWidget, ui_carla_parameter.Ui_PluginParameter):
self.set_MIDI_CC_in_ComboBox(cc)

def set_parameter_midi_channel(self, channel):
self.m_midiChannel = channel
self.sb_channel.setValue(channel)
self.m_midiChannel = channel+1
self.sb_channel.setValue(channel+1)

def add_MIDI_CCs_to_ComboBox(self):
for MIDI_CC in MIDI_CC_LIST:
@@ -1121,7 +1121,7 @@ class PluginEdit(QDialog, ui_carla_edit.Ui_PluginEdit):

@pyqtSlot(int, int)
def slot_parameterMidiChannelChanged(self, parameter_id, channel):
Carla.Host.set_parameter_midi_channel(self.m_pluginId, parameter_id, channel)
Carla.Host.set_parameter_midi_channel(self.m_pluginId, parameter_id, channel-1)

@pyqtSlot(int, int)
def slot_parameterMidiCcChanged(self, parameter_id, cc_index):
@@ -1799,7 +1799,7 @@ class PluginWidget(QFrame, ui_carla_plugin.Ui_PluginWidget):

Carla.Host.set_parameter_value(self.m_pluginId, index, parameter['value'])
Carla.Host.set_parameter_midi_cc(self.m_pluginId, index, parameter['midiCC'])
Carla.Host.set_parameter_midi_channel(self.m_pluginId, index, parameter['midiChannel'])
Carla.Host.set_parameter_midi_channel(self.m_pluginId, index, parameter['midiChannel']-1)

else:
print("Could not set parameter data for '%s')" % parameter['name'])


Loading…
Cancel
Save