MIDI in OM 6.9

This page attemps to help setting up MIDI rendering on OM 6.9.

Some of this information (not all) may be valid as well for previous versions. However, I recommend to have the last version installed.

Score Players

It is possible to choose among different players for your score objects (chord, chord-seq, voice, etc.)

The selection of a player can be done using the player button on the tool-bar of the editors, or by right/ctrl-clicking the boxes and using the "Player" menu.

The player selection dialog looks as follows:

  • The OM MIDI player (recommended) is an internal system handling the scheduling of MIDI events and sending them to the MIDI system (see below)
  • The MidiShare player is an external player (must be installed separately, see below) dealing with the same issues. We consider it deprecated for the in-built OM player does pretty much the same job.
  • The MicroPlayer is actually not related to MIDI, but will communicate via OSC with an external Max app (MicroPlayer/bm-microton, must be installed separately) which allows to play microintervals.

Notes:

  • The player selection is attached and saved with every single box. In OM 6.9.1 I think you will have the possibility to choose one default player, and force the conversion of all boxes to the selected player.
  • The MIDI port mode tab on the right allows to select a MIDI port to direct the MIDI output, to use the default MIDI port (as set in the Preferences) or to use individual notes' ports.

For the rest of this page, I will consider (and recommend) using the OM MIDI player.

Before to go any further in testing, check that your object(s) player selection is correct.

Preferences

[still no MIDI out ?]

Most of the MIDI settings are in the MIDI tab of OM Preferences.

The MIDI I/O menu allows you to select a library through which MIDI messages will be sent (or received) to (from) extrenal devices or synthesizers.

Two options are currently available: midishare and portmidi. The selected library will be used :

  • By the objects using the OM MIDI player.
  • By the other MIDI events sent in OM, e.g. from MIDI boxes, the MIDI Console, etc.

Note: the objects using the MidiShare player use MidiShare library for output, whatever choice is made in the preferences.

When you select one of these options, push Apply in order to validate/apply the choice, and update the rest of the controls ("System-specific").

Depending on the choice, this setup button will allow you to set the routing of MIDI events to external MIDI devices and synthesizers. I will detail the procedure and specificities of the two choices below.

Note: the left part of the MIDI preferences tab concerns the MIDI File system (export/import MIDI).
Here also you can choose to use MIDIShare (if installed) or CL-MIDI, a full-Lisp alternative. This choice has no incidence on the MIDI rendering.

The PortMIDI option

The portmidi option as MIDI I/O systems seems the more reliable (at least on MacOSX). It needs no external installer and seemed to work pretty well so far.

However, you need to have a MIDI synthesizer or device running or connected to your system.
Mac OSX: Apple stopped supporting MIDI playback since QuickTime X / MacOS 10.6.
Windows: Windows contains a default MIDI synthesizer; however for some reason portmidi can not connect to it (you may receive some "Host error" messages).

When you click on the setup button, the following dialog appears, which allows to select devices and synthesizers to connect to your MIDI ports.

Add in/out ports using the + button (remove them with the - buttons).
For the moment you might be interested in one out port only (#0).

For each port a menu allows you to select any connected device or syhthesizer. The contents of these menus may change depending on the synthesizers and devices that are running and connected at this moment. Use the "Refresh Devices" button to try a refresh if you open a new one (if you still don't see it, try to restart portmidi – "Restart" button –, or if you still don't, restart OM after the synthesizer(s) are running).

Notes:

  • My personal pick for quick and easy testing and playback on MacOSX is SimpleSynth: http://notahat.com/simplesynth/ (free).
    Just set the MIDI source carefully (same as MIDI out in OM) and it should work immediately.
  • Apparently non-UTF-8 characters in device names can make them not appear in the menu lists.

Press OK to validate the settings.

The MIDIShare option

On MacOSX MidiShare must be installed separately.

⇒ Download version 1.92 or 1.93.
The MidiShare installer will create a MidiShare folder in /Applications/ and install MidiShare.framework and Player.framework in /System/Library/Frameworks/. If MIDI is not installed correctly (e.g. if the message "MIDI Library Error" appears), you might need to download and re-install MidiShare (try both v. 1.93 and 1.92 if needed).

On Windows, MidiShare is installed and contained as dll and other files in the "OM 6.9" directory.

Advantages in using MidiShare are:

  • It embeds a minimal MIDI synthesizer on MacOSX (QuickTime GM Synth: no need to run your own)
  • It connects well to the in-built synthesizer on Windows

Drawbacks are:

  • Setting interface is not very intuitive at first
  • It does not work all the times (see below)
  • Requires installation (on MacOSX)

If you made your choice for MidiShare, after select in the menu + Apply the settings will now look as follows:

1) ⇒ If you don't see any device in the list (not even the QuickTime GM Synth),
then the problem is probably not in OM but in the MidiShare install.
MidiShare includes a set of testing and setup applications that you can run without OM. You will find them:

  • MacOSX: in /Applications/MidiShare/
  • Windows: in the "C:/Program Files/OM 6.9/" folder.

With these applications you should be able :

  1. to check set MIDI ports setup (independently of OM) using msDrivers
  2. to hear some sounds when you move the sliders in msControl

If you don't see the ports in msDrivers, you probably need to reinstall MIDIShare / restart your computer / etc.. ?

2) ⇒ If you see some MIDI devices, you can select a port number by clicking the little squares (0 is at the top-left corner) and then pick one or more devices to which this port will be connected. The selection should look as follows:

Note: The default MIDI synth should be selected by default.

Double check that the port is connected by clicking the little square again if needed, the validate thsi dialog and Apply the OM preferences.


MIDI ports routing

  • Your system may allow you to enable virtual MIDI buses (e.g. IAC buses on MacOSX).
    Virtual MIDI buses are convenient for they allow to abstract the device connection issues out from OM (e.g. connect port 0 to IAC bus 1 and then set IAC bus 1 as the input of your synthesizer). More info, for instance here :)
  • In the device lists (PortMIDI or MIDIShare) you will see all detected MIDI synths or buses, including, for instance, the Max or the MicroPlayer MIDI inputs ("bm-microton" – see picture above).
    You can therefore also play using MicroPlayer via MIDI (but in this case, it will not play microtones).

Still not working ?

 


openmusic/midi-69.txt · Dernière modification: 2018/03/13 16:06 par Jean Bresson