def PortFilter(ports): """ PortFilter(ports, ...) Filter events by port name or number. The *ports* argument can be a single port or a list of multiple ports. """ return _Filter(_mididings.PortFilter(map(_util.actual, ports)))
def ChannelFilter(channels): """ ChannelFilter(channels, ...) Filter events by channel number. The *channels* argument can be a single channel number or a list of multiple channel numbers. System events (which don't carry channel information) are discarded. """ return _Filter(_mididings.ChannelFilter(map(_util.actual, channels)))
def CtrlFilter(ctrls): """ CtrlFilter(ctrls, ...) Filter control change events by controller number. The *ctrls* argument can be a single controller or a list of multiple controller numbers. All other events are discarded. """ return _Filter(_mididings.CtrlFilter(ctrls))
def ProgramFilter(programs): """ ProgramFilter(programs, ...) Filter program change events by program number. The *programs* argument can be a single program number or a list of program numbers. All other events are discarded. """ return _Filter(_mididings.ProgramFilter(map(_util.actual, programs)))
def KeyFilter(upper): return _Filter(_mididings.KeyFilter(0, upper, []))
def KeyFilter(lower): return _Filter(_mididings.KeyFilter(lower, 0, []))
def KeyFilter(note_range): return _Filter(_mididings.KeyFilter(note_range[0], note_range[1], []))
def SysExFilter(manufacturer): sysex = _util.sysex_to_bytearray([0xf0]) + manufacturer return _Filter(_mididings.SysExFilter(sysex, True))
def SysExFilter(manufacturer): sysex = _util.sysex_to_sequence([0xf0]) + manufacturer return _Filter(_mididings.SysExFilter(sysex, True))
def CtrlValueFilter(lower, upper): return _Filter(_mididings.CtrlValueFilter(lower, upper))
def CtrlValueFilter(upper): return _Filter(_mididings.CtrlValueFilter(0, upper))
def CtrlValueFilter(value): return _Filter(_mididings.CtrlValueFilter(value, value + 1))
def VelocityFilter(lower, upper): return _Filter(_mididings.VelocityFilter(lower, upper))
def VelocityFilter(upper): return _Filter(_mididings.VelocityFilter(0, upper))
def KeyFilter(notes): return _Filter(_mididings.KeyFilter(0, 0, notes))
def SysExFilter(sysex): partial = (sysex[-1] != '\xf7') return _Filter(_mididings.SysExFilter(sysex, partial))
def VelocityFilter(value): return _Filter(_mididings.VelocityFilter(value, value + 1))