本文整理汇总了Python中mido.open_input方法的典型用法代码示例。如果您正苦于以下问题:Python mido.open_input方法的具体用法?Python mido.open_input怎么用?Python mido.open_input使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mido
的用法示例。
在下文中一共展示了mido.open_input方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __init__
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def __init__(self):
self.pending_queue = []
ports = mido.get_input_names()
try:
for port in ports:
if "Through" not in port and "RPi" not in port and "RtMidOut" not in port and "USB-USB" not in port:
self.inport = mido.open_input(port)
print("Inport set to "+port)
except:
print ("no input port")
try:
for port in ports:
if "Through" not in port and "RPi" not in port and "RtMidOut" not in port and "USB-USB" not in port:
self.playport = mido.open_output(port)
print("playport set to "+port)
except:
print("no playback port")
self.portname = "inport"
示例2: configure_midi_in
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def configure_midi_in(self):
if self.midi_in_port is None:
port_name_to_use = None
for port_name in mido.get_input_names():
if is_push_midi_in_port_name(port_name, use_user_port=self.use_user_midi_port):
port_name_to_use = port_name
break
if port_name_to_use is None:
raise Push2MIDIeviceNotFound
try:
self.midi_in_port = mido.open_input(port_name_to_use)
# Disable Active Sense message filtering so we can receive those messages comming from Push and
# detect if Push MIDI gets disconnected
self.midi_in_port._rt.ignore_types(False, False, False)
self.midi_in_port.callback = self.on_midi_message
except OSError as e:
raise Push2MIDIeviceNotFound
示例3: messages
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def messages(self):
if not mido:
raise ValueError(MIDO_ERROR)
try:
input_names = mido.get_input_names()
except AttributeError as e:
e.args = (MIDO_ERROR,) + e.args
raise
ports = [mido.open_input(i) for i in input_names]
if not ports:
log.error('control.midi: no MIDI ports found')
return
port_names = ', '.join('"%s"' % p.name for p in ports)
log.info('Starting to listen for MIDI on port%s %s',
'' if len(ports) == 1 else 's', port_names)
for port, msg in mido.ports.multi_receive(ports, yield_ports=True):
mdict = dict(vars(msg), port=port)
if self.use_note_off:
if msg.type == 'note_on' and not msg.velocity:
mdict.update(type='note_off')
elif self.use_note_off is False:
if msg.type == 'note_off':
mdict.update(type='note_on', velocity=0)
yield mdict
示例4: open_this_port_and_start_listening
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def open_this_port_and_start_listening(self, port_phrase):
midi_ports = mido.get_input_names()
midi_device_on_port = [s for s in midi_ports if port_phrase in s]
if midi_device_on_port:
if self.data.midi_status == 'disconnected':
subport_index = self.port_index % len(midi_device_on_port)
self.midi_device = mido.open_input(midi_device_on_port[subport_index])
self.data.midi_status = 'connected'
self.message_handler.set_message('INFO', 'connected to midi device {}'.format(self.midi_device.name))
self.poll_midi_input()
elif self.data.midi_status == 'connected':
self.data.midi_status = 'disconnected'
示例5: _start
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def _start():
'''Start the module
This uses the global variables from setup and adds a set of global variables
'''
global parser, args, config, r, response, patch, name
global monitor, debug, mididevice, output_scale, output_offset, port, inputport
# this can be used to show parameters that have changed
monitor = EEGsynth.monitor(name=name, debug=patch.getint('general', 'debug'))
# get the options from the configuration file
debug = patch.getint('general', 'debug')
mididevice = patch.getstring('midi', 'device')
mididevice = EEGsynth.trimquotes(mididevice)
# the scale and offset are used to map MIDI values to Redis values
output_scale = patch.getfloat('output', 'scale', default=1. / 127) # MIDI values are from 0 to 127
output_offset = patch.getfloat('output', 'offset', default=0.) # MIDI values are from 0 to 127
# this is only for debugging, check which MIDI devices are accessible
monitor.info('------ INPUT ------')
for port in mido.get_input_names():
monitor.info(port)
monitor.info('-------------------------')
try:
inputport = mido.open_input(mididevice)
monitor.success('Connected to MIDI input')
except:
raise RuntimeError("Cannot connect to MIDI input")
# there should not be any local variables in this function, they should all be global
if len(locals()):
print('LOCALS: ' + ', '.join(locals().keys()))
示例6: change_port
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def change_port(self, port, portname):
try:
if(port == "inport"):
self.inport = mido.open_input(portname)
elif(port == "playport"):
self.playport = mido.open_output(portname)
menu.render_message("Changing "+port+" to:", portname, 1500)
except:
menu.render_message("Can't change "+port+" to:", portname, 1500)
示例7: __init__
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def __init__(self, device, deviceid):
self.log = get_logger("midi_to_obs_device")
self._id = deviceid
self._devicename = device["devicename"]
self._port_in = 0
self._port_out = 0
try:
self.log.debug("Attempting to open midi port `%s`" % self._devicename)
# a device can be input, output or ioport. in the latter case it can also be the other two
# so we first check if we can use it as an ioport
if self._devicename in mido.get_ioport_names():
self._port_in = mido.open_ioport(name=self._devicename, callback=self.callback, autoreset=True)
self._port_out = self._port_in
# otherwise we try to use it separately as input and output
else:
if self._devicename in mido.get_input_names():
self._port_in = mido.open_input(name=self._devicename, callback=self.callback)
if self._devicename in mido.get_output_names():
self._port_out = mido.open_output(name=self._devicename, callback=self.callback, autoreset=True)
except:
self.log.critical("\nCould not open device `%s`" % self._devicename)
self.log.critical("The midi device might be used by another application/not plugged in/have a different name.")
self.log.critical("Please close the device in the other application/plug it in/select the rename option in the device management menu and restart this script.")
self.log.critical("Currently connected devices:")
for name in mido.get_input_names():
self.log.critical(" - %s" % name)
# EIO 5 (Input/output error)
exit(5)
示例8: __init__
# 需要导入模块: import mido [as 别名]
# 或者: from mido import open_input [as 别名]
def __init__(self, input_midi_ports, output_midi_ports, texture_type,
passthrough=True, playback_channel=0, playback_offset=0.0):
self._texture_type = texture_type
self._passthrough = passthrough
self._playback_channel = playback_channel
self._playback_offset = playback_offset
# When `passthrough` is True, this is the set of open MIDI note pitches.
self._open_notes = set()
# This lock is used by the serialized decorator.
self._lock = threading.RLock()
# A dictionary mapping a compiled MidiSignal regex to a condition variable
# that will be notified when a matching messsage is received.
self._signals = {}
# A dictionary mapping a compiled MidiSignal regex to a list of functions
# that will be called with the triggering message in individual threads when
# a matching message is received.
self._callbacks = collections.defaultdict(list)
# A dictionary mapping integer control numbers to most recently-received
# integer value.
self._control_values = {}
# Threads actively being used to capture incoming messages.
self._captors = []
# Potentially active player threads.
self._players = []
self._metronome = None
# Open MIDI ports.
inports = []
if input_midi_ports:
for port in input_midi_ports:
if isinstance(port, mido.ports.BaseInput):
inport = port
else:
virtual = port not in get_available_input_ports()
if virtual:
tf.logging.info(
"Opening '%s' as a virtual MIDI port for input.", port)
inport = mido.open_input(port, virtual=virtual)
# Start processing incoming messages.
inport.callback = self._timestamp_and_handle_message
inports.append(inport)
# Keep references to input ports to prevent deletion.
self._inports = inports
else:
tf.logging.warn('No input port specified. Capture disabled.')
self._inports = None
outports = []
for port in output_midi_ports:
if isinstance(port, mido.ports.BaseOutput):
outports.append(port)
else:
virtual = port not in get_available_output_ports()
if virtual:
tf.logging.info(
"Opening '%s' as a virtual MIDI port for output.", port)
outports.append(mido.open_output(port, virtual=virtual))
self._outport = mido.ports.MultiPort(outports)