For MIDI OUT devices, the method javax.sound.midi.MidiDevice.getMicrosecondPosition() always returns -1. This is allowed by the specification (it means that this device doesn't provide timestamps). However, for MIDI IN devices, the same method returns useful timestamps. From the viewpoint of a user, it shouldn't matter if a device is in or out for just getting a timestamp. Therefore, the current behaviour is inconvenient.