From: Brent B. <br...@ke...> - 2012-10-20 21:14:33
|
I'm currently trying to use JSynthLib to do single patch auditioning to organize thousands of Ensoniq ESQ-1 patches contained in bank sysex dumps into banks that are useful for me. I'm on Linux, and I have four hardware Midi in/out port pairs. Three are provided on an Edirol UM-3EX connected by USB, and another in/out port pair provided on the breakout box of an RME Hammerfall Multiface II. All the hardware i/o's work, and I can do bank dump and receive over any of them with the ESQ-1. This proves there's no communication problem in hardware or software. It works with single patches or whole banks. Also, I have a Yamaha SY99 connected to a different hardware port than the ESQ-1, setup in JSynthLib as a master controller. This also works (mostly, see below), because when I play the SY99, its Midi output is being echoed by the program to the port the ESQ-1 is on, and it plays the ESQ-1. Here's the problem: The documentation says... The Master Controller Port determines which MIDI port JSynthLib will watch for Notes being played. If notes are played (for example from a MIDI keyboard or MIDI sequencer) on this port, JSynthLib will echo them to whatever Synthesizer you are currently working with. (Either by having an editor open in the foreground or having a library open in the foreground and having a patch selected). This allows you more controlling auditioning patches than just using the "play" command. The "either by having an editor open in the forground or having a library open in the foreground and having a patch selected" part strongly implies that the patch you're auditioning when you play your master keyboard will be the patch you've done all this selecting to in the program...except...unless I'm doing something wrong, it isn't. It plays whatever patch you've selected on the synthesizer's own control panel. When you choose a new patch in JSynthLib, it *still* plays whatever patch you've selected on the control panel. Selecting patches in JSynthLib has no effect on what your master keyboard is playing, and there's no evidence from the ESQ-1's screen that it heard upstream Midi tell it to do anything with sysex at all. Oddly, right-clicking on a patch and clicking "Play", which is supposed to send whatever patch you just selected to an edit buffer on the synth and play a note on it for a configurable period of time, works! It does exactly what master keyboard audition is supposed to let you do but doesn't. That means the program has the facility for this...just not in all the places you need it. (Also, the fact that it works there but not from master keyboard strongly implies it's a bug, and not just me doing something bad.) Of course you can't really audition patches without being able to really play them on a keyboard, so this is needed to make it useful for more than just storing sysex files. I'm willing to help with debugging this. I don't know Java, but I do know Perl, so I may be able to get the general idea of some things, which may be useful since I've seen that JSynthLib is really starved for developers. Also, I happen to have a well-known but now defunct Windows-based editor/librarian program with a Midi monitor feature, so if you need to know the hex codes that accomplish certain things, I can probably capture those. (Surely it's not a copyright violation to capture raw Midi traffic...) -- + Brent A. Busby + "We've all heard that a million monkeys + Sr. UNIX Systems Admin + banging on a million typewriters will + University of Chicago + eventually reproduce the entire works of + James Franck Institute + Shakespeare. Now, thanks to the Internet, + Materials Research Ctr + we know this is not true." -Robert Wilensky |