void callPlug(MidiInput _input, final MidiMessage msg) { try { if ((msg.getStatus() & 0xF0) != getStatus() && getStatus() != -1) return; if (msg instanceof ShortMessage) { ShortMessage smsg = (ShortMessage) msg; if (smsg.getChannel() != channel && channel != -1) return; } MidiEvent event = null; if (msg instanceof MidiEvent) { event = (MidiEvent) msg; } else { event = MidiEvent.create(msg); } if (event != null) { event.setInput(_input); if (paramClass.isInstance(event)) method.invoke(getObject(), new Object[] {event}); } } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("Error on calling plug: " + methodName); } }