}
public ZExternalDevice tryIdentify(Object o) throws IllegalArgumentException {
if (o instanceof SysexTransactionRecord) {
SysexTransactionRecord str = (SysexTransactionRecord) o;
FinalMidiMessage msg = str.getReply();
com.pcmsolutions.device.EMU.E4.EMU_E4_IRM e = (com.pcmsolutions.device.EMU.E4.EMU_E4_IRM) filter.filter(msg);
if (e != null) {
Preferences devicePrefs = Preferences.userNodeForPackage(E4Device.class).node("device").node(e.toString());
Preferences remotePrefs = Preferences.userNodeForPackage(Remotable.class).node("remote").node(e.toString());
RemotePreferences rprefs = new RemotePreferences(remotePrefs, new Double(e.getVersion()).doubleValue() >= DeviceContext.BASE_ULTRA_VERSION);