System Requirements

The course assignments and sample code assume the availability of various open-source and commercial software tools. Your exact needs may vary, but the following notes may help with configuring a personal or cluster machine to support the course.

The general needs are as follows:

  1. Python 3 core system

  2. additional Python 3 packages: PyQt5, NumPy, python-rtmidi, python-osc, pySerial

  3. MIDI sequencer (e.g. Ableton Live, Apple Logic, lmms)

  4. Python-aware text editor (e.g. IDLE, XCode, Sublime Text, vim, Emacs)

Optional needs include:

  1. Max/MSP

  2. Arduino IDE

  3. git client


  1. Python is used for a variety of performance and debugging needs: translating MIDI events to hardware, programming algorithmic motions and patterns, building user interfaces.

  2. Max/MSP is an alternative programming environment for those who like it; it could replace most of the Python usage.

  3. The MIDI sequencer is used for performance capture and editing.

  4. The Arduino IDE is optional, but suggested for students extending the low-level winch firmware to develop new motion primitives.

  5. git is optional, but suggested for students wanting to use the private course git repository for version control.

For more specific comments on the IDeATe cluster Python, please seee Using Python in IDeATe.

macOS MacPorts Python

The recommended Python solution is installing via MacPorts. Anaconda will probably also work but has not been tested under macOS. Similar packages are available via HomeBrew but have not been tested.

MacPorts is an open-source package installation system for macOS. Effective use of MacPorts requires some willingness to use the command line (e.g. The MacPorts Quickstart instructions are the best reference for initial installation.

The following command line will then install all additional packages required by the course examples. Note that you may see many other packages installed by MacPorts as it automatically installs packages required by the ones you specify:

sudo port install python37 py37-pip py37-future py37-serial py37-numpy py37-pyqt5 qt5-mac

You will also need some additional packages via pip:

pip-3.7 install python-osc python-rtmidi

Windows Anaconda Python

The recommended Python 3 solution on Windows is Anaconda, a Python distribution for Windows, Mac or Linux which includes a package manager and comprehensive package system. The installer will include many third-party packages in the default installation, notably PyQt5 and numpy. We recommend it over the distribution because these third-party packages make it more immediately usable.

You will need additional packages via pip. If you launch the command window via Navigator:

pip install python-osc
pip install python-rtmidi

It is also recommended to install loopMIDI for virtual MIDI ports.

Ubuntu Linux Python

This following assumes you are running Ubuntu 18.04, but should work similarly on other Ubuntu versions or other Debian-based distributions. The chief difference may be the most recent available Python version.

The following will install packages from the command line:

sudo apt-get update
sudo apt-get install libasound2-dev libjack-dev python3-pyqt5.qtserialport
sudo apt-get install lmms
sudo apt-get install minicom
pip3 install python-rtmidi

IDeATe Cluster MacBook Pro

As of 2019-02-07 these are not up to date, the following needs to be executed by an administrator:

sudo -H /opt/local/bin/pip-3.5 install python-rtmidi
sudo -H /opt/local/bin/pip-3.5 install python-osc --upgrade