MidiDevice midiDevice = MidiSystem.getMidiDevice(midiDeviceInfo[ii]); Object valueTransmitter; if (midiDevice.getMaxTransmitters()==AudioSystem.NOT_SPECIFIED) { valueTransmitter = "Not specified"; } else { valueTransmitter = new Integer(midiDevice.getMaxTransmitters());
public static List<MidiTransmitDevWrap> findMatchingTransmitters(List<MidiDevWrap> devs, MidiDevMatchPattern pattern, Logger logger) { List<MidiTransmitDevWrap> results = new ArrayList<MidiTransmitDevWrap>(); for (MidiDevWrap mdw : devs) { int maxTmit = mdw.myDevice.getMaxTransmitters(); int maxRecv = mdw.myDevice.getMaxReceivers(); theLogger.info("mdw {} reported maxTransmitters={}, maxReceivers={}", mdw, maxTmit, maxRecv); // -1 == unknown/unlimited? // 0 == definitely none if (maxTmit != 0) { try { // Is it important to ensureDevOpen() before doing this fetch? Transmitter tmit = mdw.myDevice.getTransmitter(); if (tmit != null) { MidiTransmitDevWrap tdw = new MidiTransmitDevWrap(tmit, mdw); results.add(tdw); logger.info("Made transmit-devWrap OK: {}", tdw); } else { logger.info("No tranmitter found for {}", mdw); } } catch (Throwable t) { logger.warn("Problem looking up transmitter for: {}", mdw, t); } } } return results; } }
public static MidiDevice findMidiDevice(String[] deviceNames, boolean receive, boolean transmit) { if (midiDeviceInfos == null) { System.out.println("Loading device info.."); midiDeviceInfos = MidiSystem.getMidiDeviceInfo(); } try { for (int i = 0; i < midiDeviceInfos.length; i++) { MidiDevice device = MidiSystem.getMidiDevice(midiDeviceInfos[i]); boolean canReceive = device.getMaxReceivers() != 0; boolean canTransmit = device.getMaxTransmitters() != 0; int matches = 0; for (String name : deviceNames) { if (midiDeviceInfos[i].getName().toLowerCase().contains(name.toLowerCase()) || midiDeviceInfos[i].getDescription().toLowerCase().contains(name.toLowerCase())) { matches++; } } if (matches == deviceNames.length && receive == canReceive && transmit == canTransmit) { return device; } } } catch (MidiUnavailableException e) { System.out.printf("MIDI not available: %s\n", e); } return null; }
/** * Tries to detect a valid inbound communication channel, based on a known device signature * (see {@link net.thecodersbreakfast.lp4j.midi.MidiDeviceConfiguration#DEVICE_SIGNATURE}). * * @return A valid outbound communication channel, or {@code null} if non was found. * @throws MidiUnavailableException if the requested device is not available due to resource restrictions */ public static MidiDevice autodetectInputDevice() throws MidiUnavailableException { MidiDevice.Info[] midiDeviceInfo = MidiSystem.getMidiDeviceInfo(); for (MidiDevice.Info info : midiDeviceInfo) { if (info.getDescription().contains(DEVICE_SIGNATURE) || info.getName().contains(DEVICE_SIGNATURE)) { MidiDevice device = MidiSystem.getMidiDevice(info); if (device.getMaxTransmitters() == -1) { return device; } device.close(); } } return null; }
/** * Logs MIDI system info (e.g. MIDI devices). */ public void logMidiSystemInfo() { getDevices().forEach(device -> logger.info( "Device: name={}, class={}, description={}, vendor={}, version={}, microsecondPosition={}, " + "maxTransmitters={}, maxReceivers={}", device.getDeviceInfo().getName(), device.getClass().getSimpleName(), device.getDeviceInfo().getDescription(), device.getDeviceInfo().getVendor(), device.getDeviceInfo().getVersion(), device.getMicrosecondPosition(), device.getMaxTransmitters(), device.getMaxReceivers())); }
public static Transmitter getTransmitter(MidiDevice current) { if (current.getMaxTransmitters() != 0) { try { if (!current.isOpen()) { current.open(); } } catch (MidiUnavailableException e) { return null; } try { return current.getTransmitter(); } catch (MidiUnavailableException e) { current.close(); } } return null; }
System.out.println("Max Transmitters:" + inDevice.getMaxTransmitters()); if ((inDevice == null) && (current.getMaxTransmitters() != 0)) System.out.println("Max Transmitters:" + inDevice.getMaxTransmitters()); if ((inDevice == null) && (current.getMaxTransmitters() != 0)) System.out.println("Max Transmitters:" + inDevice.getMaxTransmitters());
MidiDevice device; device = MidiSystem.getMidiDevice(info); System.out.println("MidiDevice.Info="+info + "\n" + "maxTransmitters="+device.getMaxTransmitters()); if (info.toString().equals("Interface [hw:2,0,0]") && device.getMaxTransmitters() != 0) { System.out.println(" Name: " + info.toString() + ", Decription: " +
return d; else if(d.getMaxTransmitters()!=0 && !getReceiver){ System.out.println(infos[i].getName()); System.out.println(d.getMaxTransmitters()); return d;
MidiDevice midiDevice = MidiSystem.getMidiDevice(midiDeviceInfo[ii]); Object valueTransmitter; if (midiDevice.getMaxTransmitters()==AudioSystem.NOT_SPECIFIED) { valueTransmitter = "Not specified"; } else { valueTransmitter = new Integer(midiDevice.getMaxTransmitters());