We quit MIDIServer while an app was running, and that app’s MIDI stopped without a single error.
MIDIServer manages MIDI connections between Mac apps and devices. If it quits or crashes, running apps can lose their connection: incoming MIDI stops and sends may report success without reaching a device. Unless the app detects the loss and reconnects, it remains disconnected. Quitting and reopening each MIDI app, including Audio MIDI Setup, restores the connection.
How we noticed
We wanted to know what would happen to MIDIFabric if MIDIServer went away. So we ran an app that had set up its MIDI connection and a virtual port, and while it was running we typed killall MIDIServer in Terminal.
In less than a second, the app could no longer read any MIDI information. Sending to its own virtual port returned success, but no messages arrived. The app received no notice that MIDIServer had quit. An app started afterwards, on the other hand, could use MIDI normally.
We tested this on macOS 27, but we do not think it is specific to one macOS version.
What MIDIServer is
Music apps do not talk to your MIDI devices directly. macOS runs a process called MIDIServer that sits between all apps and all MIDI devices, including USB, Bluetooth, network MIDI and the IAC Driver. Every app that uses MIDI is a client of MIDIServer.
MIDI driver plug-ins also run inside the MIDIServer process. These include Apple’s own drivers for USB, Bluetooth, network MIDI and the IAC Driver (in /System/Library/Extensions), and drivers that device makers provide (installed in /Library/Audio/MIDI Drivers, for example Roland’s). Because they all run in the same process, a problem in any one driver can take MIDIServer down with it, and every app loses MIDI at the same time.
When MIDIServer quits
- When no app is using MIDI. MIDIServer quits by itself and starts again the next time an app needs MIDI. This is normal and harmless, because no app is connected at that moment.
- When it crashes, for example because of a problem in a MIDI driver plug-in, or when someone runs
killall MIDIServerin Terminal (a common troubleshooting tip). - Unexpectedly. We have also seen MIDIServer quit while MIDIFabric was running and using MIDI. We do not know why.
What you will notice
- MIDI from your keyboard or controller no longer reaches the app.
- Notes and messages the app sends no longer reach your synths. The app shows no error, because from its side the send still succeeds.
- An app you open after this happened works normally, which makes the problem confusing: one app works and another does not.
- In our test, Audio MIDI Setup also received no notification, and its display and behavior became unreliable until we reopened it.
Why many apps do not recover by themselves
In our test, the app received no notification that MIDIServer had quit, and MIDI sends continued to return success. Recovery requires detecting the lost connection and re-initializing Core MIDI. Apps that do not handle this remain disconnected until restarted.
How to tell whether this happened
Open Terminal and run:
ps -o pid=,lstart= -p "$(pgrep -x MIDIServer)"
It shows when the current MIDIServer started. If that time is later than when you opened your music app, MIDIServer has restarted since then, and the app has probably lost its MIDI connection. If the command prints nothing, MIDIServer is not running right now; it will start again when an app needs MIDI.
What to do
- Quit every app that uses MIDI, including Audio MIDI Setup.
- Open them again. MIDIServer starts automatically.
- Before running
killall MIDIServeras a troubleshooting step, quit your music apps first. Otherwise they will lose MIDI as described above. - If it keeps happening, check which drivers are installed in
/Library/Audio/MIDI Driversand whether their makers offer updates. A driver for a device you no longer use can be removed with the maker’s uninstaller.
About MIDIFabric
MIDIFabric keeps checking its connection to MIDIServer and, if it is lost, shows a dialog right away asking you to restart it. The behavior above is in macOS and affects other apps too.