123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- from __future__ import print_function
- import sys
- import re
- import time
- import mido
- from mido import Message
-
-
- def test_midi_in(port):
- expected_messages_count=0
- while expected_messages_count < 7:
- for message in port.iter_pending():
- if message.type in ('note_on', 'note_off', 'program_change', 'sysex'):
- yield message
- expected_messages_count+=1
- time.sleep(0.1)
-
- def test_midi_loopback(input_port):
- expected_messages_count=0
- while expected_messages_count < 1:
- for message in input_port.iter_pending():
- print('Test MIDI OUT loopback received {}'.format(message.hex()))
- expected_messages_count+=1
-
- def test_midi_out_loopback(output_port,input_port):
- print("Test MIDI OUT loopback")
- output_port.send(Message('program_change', program=1))
- test_midi_loopback(input_port)
-
- output_port.send(Message('note_on', note=21))
- test_midi_loopback(input_port)
-
- output_port.send(Message('note_off', note=21))
- test_midi_loopback(input_port)
-
- output_port.send(Message('sysex', data=[0x7E,0x7F,0x09,0x01]))
- test_midi_loopback(input_port)
-
- output_port.send(Message('sysex', data=[0x7F,0x7F,0x04,0x01,0x7F,0x7F]))
- test_midi_loopback(input_port)
-
- output_port.send(Message('sysex', data=[0x41,0x10,0x42,0x12,0x40,0x00,0x7F,0x00,0x41]))
- test_midi_loopback(input_port)
-
- output_port.send(Message('sysex', data=[0x41,0x10,0x42,0x12,0x40,0x00,0x04,0x7F,0x3D]))
- test_midi_loopback(input_port)
-
- portname=""
-
- while portname=="":
- print("Wait for MIDI IN plug ...")
- for name in mido.get_input_names():
- matchObj = re.match( r'Mbed', name)
-
- if matchObj:
- portname=name
- time.sleep( 1 )
-
- try:
- input_port = mido.open_input(portname)
- output_port = mido.open_output(portname)
-
- print('Using {}'.format(input_port))
-
- print("Test MIDI IN")
-
- for message in test_midi_in(input_port):
- print('Test MIDI IN received {}'.format(message.hex()))
-
- test_midi_out_loopback(output_port,input_port)
- except KeyboardInterrupt:
- pass
|