throws MidiUnavailableException, IllegalArgumentException
throws MidiUnavailableException
  public static MidiDevice getMidiDevice(MidiDevice.Info info)     throws MidiUnavailableException, IllegalArgumentException  {    Iterator deviceProviders = ServiceFactory.lookupProviders(MidiDeviceProvider.class);        if (! deviceProviders.hasNext())      throw new MidiUnavailableException("No MIDI device providers available.");        do    {      MidiDeviceProvider provider =         (MidiDeviceProvider) deviceProviders.next();      if (provider.isDeviceSupported(info))        return provider.getDevice(info);    } while (deviceProviders.hasNext());        throw new IllegalArgumentException("MIDI device " + info + " not available.");  }