Yahoo Groups archive

Emu XL-7 & MP-7 User's Group

Archive for xl7.

Index last updated: 2026-03-30 01:19 UTC

Thread

Re: [xl7] E-Loader

Re: [xl7] E-Loader

2019-02-11 by Ray Bellis

On 10/02/2019 10:24, ricard2010@... [xl7] wrote:

> It struck me that E-Loader is actually written in Java, so perhaps
> it would work on a modern machine. I dug into the installation 
> directory and copied it all to a Linux machine (which is what I 
> normally used) and started the application. It actually ran without 
> any errors. However, I couldn't get it to recognize any MIDI ports, 
> perhaps not surprising, as despite the standardization of Java it 
> would most likely have been done very differently in Windws 98 than 
> today. Still, since there are no error messages, it seems as if it's 
> not expecting something that it cannot find in the environment. 
> Without MIDI connectivity it's pretty useless though of course.

The E-loader app pre-dates the addition of javax.sound.midi to J2SE.

It therefore uses a separate DLL (using JNI to add native
code to Java apps) to gain access to the MIDI ports.

> Has anyone else attempted this, or have some Java experience that 
> would help this getting going?

For the firmware updater I did start to look at whether it would be
feasible to replace the JNI DLL with calls to javax.sound.midi but it
turned out to be easier to write a new tool.

> On this topic, I find it strange that the XL-7 has functions in the 
> MIDI menu to dump patches, but not sequences. E-Loader dumps them as 
> standard midi (.mid) files, so I expect the format would be pretty 
> standard. Haven't dug into it at all though, just taking a top level 
> approach for now.

I suspect that sequences are exchanged using MIDI file dump messages, 
which is fine if you've got E-Loader, but is generally not supported by 
generic sysex librarians.

> I saw someone in the P2K group had written a web based tool for 
> firmware upgrading, so that's a starting point too.


Steve wrote:
> Perhaps someone (maybe Ray?) will write a user interface to 
> upload/download patterns/songs using webmidi.  Or perhaps someone 
> with coding experience would want to write a standalone program.
> I'd be willing to contribute thoughts and research if it would help.
> IIRC the midi sequence dump requests are pretty straight forward.

I'd consider it, but I don't have a P2500 or XP-7 to test with.

Ray

Re: E-Loader

2019-02-11 by smw-mail@...

Thanks for picking up on this, Ray.  My E-Mu web midi I/O using the jazz-soft plug-in is on the hard drive of an XPSP3 PC that developed a major issue after I blew a circuit break by vacuuming with the PC on [SURGE!].  But, it was easier to find the last version I have on my website (used for testing different browsers).

SONG REQUEST TESTS: 
<button onmousedown='Jazz.MidiOutLong([0xF0,0x7E,0x00,0x07,0x03,0x00,0x53,0x4D,0x46,0x20,0x50,0x41,0x54,0x3A,0x30,0x2E,0x30,0x3A,0x3C,0x6E,0x6F,0x74,0x20,0x72,0x65,0x63,0x65,0x69,0x76,0x65,0x64,0x3E,0xF7]);'>Song Request - full</button>
<button onmousedown='Jazz.MidiOutLong([0xF0,0x7E,0x00,0x07,0x7F,0xF7]);'>ACK</button>

This is from the page at my site I used to test virtual buttons. Data displayed in my web hex viewer. I didn't automate handshaking or code a sysex ID slider, song selection, develop code to save the file, etc. At the point where I last worked on it, I just wanted to make sure the universal sysex worked. I am not sure I wanted to upload files to my E-Mu: (1) might use up too many memory write lifecycles, (2) didn't want to deal with having to check *.mid files to see if they were properly formed, etc. I did think about having a way to upload embedded sysex files, though.

Moreover, I was thinking of it as a quick and easy tool to request and save files (backup). I gave thought to converting the sysex into a standard midi file, but never developed any code for that--i.e., stripping the sysex headers and putting the content into a midi file wrapper so it could be played by a software sequencer. I am not sure if today's DAWs/Sequencers can import sysex tunes into tracks.

One of my thoughts was that if people wanted to share files, one option might be to download content to a server. For example, maybe people have some drum patterns, bass parts, preset templates, multisetup templates, etc. they might want to contribute.

Anyhow, if it would help, I could probably use midi-ox to simulate the virtual buttons and capture the sysex. Not sure I want to do too many tests trying to put sysex tunes back in that way.

Steve


Re: E-Loader

2019-02-13 by ricard2010@...

Looking at my previous post it's rather incomprehensible out of context - what I meant is that the thread from 2014 that Steve was referring to was initiated (and subsequently forgotten) by me, starting with more or less the same question ...

Ray, thanks for your explanation regarding Java and MIDI support. Despite being a programmer by profession, I know next to nothing about the practical aspects of Java, but it seems to me that since the actual E-Loader Java application itself (ELoader.jar) runs fine on its own when started as a Java program that it would be possible to provide a separate Java program which provides a MIDI interface. I realize that as installed, the 'Java Anywhere' ('lax') wrapper (E-Loader 1.1.exe) is the actual application, and starts the E-Loader Java program while bringing in the appropriate DLL's for MIDI and USB communication (also provided with the installation), but there must be some sort of hooks out of the Java application which could be used to implement MIDI communication on any platform? Figuring out the API might be hairy though, with no documentation.

Looking at the naming of the DLL's in the installation though (EmuUsb.dll and emumidilib.dll) I'm wondering if the actual MIDI File Transfer stuff (formatting of data and File Transfer protocol) is in the latter, not just the actual routing of MIDI data from the application to whatever MIDI support the OS provides. That would mean that one would still need to write code to handle the MIDI File Transfer management when replacing that DLL with something else.

/Ricard