Performance Utility Tools

Some of the exercise packages include several utility and test programs. These are all standalone scripts using Python 3 and a few additional packages as described in System Requirements.

The following scripts may be browsed in the Python tools directory on the course site.

list_MIDI_ports.py

Command-line test program for identifying available MIDI ports by printing a list of the MIDI input and output ports available via python-rtmidi. There are no options, just running it will print a list of port names:

python3 list_MIDI_ports.py

The full code follows, but may also be downloaded from list_MIDI_ports.py.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#!/usr/bin/env python3

import rtmidi
midiout = rtmidi.MidiOut()
midiin = rtmidi.MidiIn()

print("Available output ports:")
for idx, port in enumerate(midiout.get_ports()):
    print("  %d: %s" % (idx, port))

print("Available input ports:")
for idx, port in enumerate(midiin.get_ports()):
    print("  %d: %s" % (idx, port))

midi_display.py

../_images/midi_display.png

Test program for monitoring MIDI stream, providing a GUI for connecting to a MIDI source and printing all messages.

virtual_mpd218.py

../_images/virtual_mpd218.png

Emulation of an Akai MPD218 Drum Pad Controller, generating local MIDI events and control changes.

osc_button_box.py

../_images/osc_button_box.png

General purpose control interface for generating events and parameter changes on an OSC UDP message stream.

osc_display.py

../_images/osc_display.png

Test program for monitoring an OSC stream, providing a GUI for receiving OSC UDP packets and printing all contents.

dmx_controller.py

../_images/dmx_controller.png

General purpose control interface for lighting control, providing a GUI for directly connecting to a single Enttec DMXUSB Pro and manipulating output.