def ServerInfo(self): """ Info: Gets server and device info Args: None Returns: dict Errors: None """ info = {} info["pa_count_devices"] = pyo.pa_count_devices() # type: ignore info["pa_get_default_input"] = pyo.pa_get_default_input( ) # type: ignore info["pa_get_default_output"] = pyo.pa_get_default_output( ) # type: ignore info["pm_get_input_devices"] = pyo.pm_get_input_devices( ) # type: ignore info["pa_count_host_apis"] = pyo.pa_count_host_apis() # type: ignore info["pa_get_default_host_api"] = pyo.pa_get_default_host_api( ) # type: ignore info["pm_count_devices"] = pyo.pm_count_devices() # type: ignore info["pa_get_input_devices"] = pyo.pa_get_input_devices( ) # type: ignore info["pm_get_default_input"] = pyo.pm_get_default_input( ) # type: ignore info["pm_get_output_devices"] = pyo.pm_get_output_devices( ) # type: ignore info["pm_get_default_output"] = pyo.pm_get_default_output( ) # type: ignore info["pa_get_devices_infos"] = pyo.pa_get_devices_infos( ) # type: ignore info["pa_get_version"] = pyo.pa_get_version() # type: ignore info["pa_get_version_text"] = pyo.pa_get_version_text() # type: ignore return info
def main(): server = pyo.Server() try: midi_output_device = None device_names, device_indexes = pyo.pm_get_output_devices() device_dict = dict(zip(device_indexes, device_names)) print(device_dict) for device_index, device_name in device_dict.items(): print(device_index, device_name) if 'lightkey' in device_name.lower(): if midi_output_device != device_index: server.stop() server.shutdown() server.setMidiOutputDevice(device_index) midi_output_device = device_index server.boot() server.start() break if midi_output_device is None: return cg = ClockGenerator() try: server.sysexout(b'\xfa') for msg in cg: server.sysexout(msg) except KeyboardInterrupt: server.sysexout(b'\xfc') time.sleep(0.1) pass finally: server.stop() server.shutdown()
def GetMidiOutputs(self): if not hasattr(self, '_midi_outputs'): output_device_names, output_device_indexes = pyo.pm_get_output_devices() default_output_index = pyo.pm_get_default_output() midi_outputs = {} for output_index, output_name in zip(output_device_indexes, output_device_names): midi_outputs[output_index] = { 'name': output_name, 'default': bool(output_index == default_output_index), } setattr(self, '_midi_outputs', midi_outputs) return getattr(self, '_midi_outputs')
def _GetDevicesDict(self): pa_input = pyo.pa_get_input_devices() pa_output = pyo.pa_get_output_devices() pm_input = pyo.pm_get_input_devices() pm_output = pyo.pm_get_output_devices() i = 0 pa_input_list = [] for d in pa_input[0]: pa_input_list.append([i, d]) i += 1 i = 0 pa_output_list = [] for d in pa_output[0]: pa_output_list.append([i, d]) i += 1 i = 0 pm_input_list = [] for d in pm_input[0]: pm_input_list.append([i, d]) i += 1 i = 0 pm_output_list = [] for d in pm_output[0]: pm_output_list.append([i, d]) i += 1 return { 'a_input': pa_input_list, 'a_output': pa_output_list, 'm_input': pm_input_list, 'm_output': pm_output_list }
''' # Python import time # PyO import pyo server = pyo.Server() try: server.boot() midi_output_device = None while True: try: device_names, device_indexes = pyo.pm_get_output_devices() device_dict = dict(zip(device_indexes, device_names)) for device_index, device_name in device_dict.items(): print(device_index, device_name) if 'incontrol' in device_name.lower(): if midi_output_device != device_index: server.shutdown() server.setMidiOutputDevice(device_index) midi_output_device = device_index server.boot() break server.noteout(12, 127) time.sleep(10) except KeyboardInterrupt: break finally:
except: ipcSend('error', 'python-pyo module not found') version = int(pyo.PYO_VERSION.replace('.', '')) if version < 83: ipcSend( 'error', 'python-pyo >= 8.3.0 module is required (%s found)' % pyo.PYO_VERSION) if not pyo.withPortmidi(): ipcSend('error', 'python-pyo must be built with portmidi support') # get midi devices _midiOutputs = pyo.pm_get_output_devices() _midiInputs = pyo.pm_get_input_devices() # list midi devices if 'list' in argv: message = [] message.append('===========') message.append('MIDI Inputs') message.append('%3i: %s' % (-1, 'null (disabled)')) for k in range(len(_midiInputs[0])): if _midiInputs[0][k] in pyoHidden: