From: Rib R. <ri...@gm...> - 2006-03-07 20:58:28
|
Hi. Responses inline: On 3/7/06, Christoph Eckert <ce...@ch...> wrote: > Hi, > > > still I cannot build JSynthLib from CVS, I guess it is due to the > addition of jdom. Did you get the updated makefile? What errors are you getting? > But anyway I already would like to dive a bit into writing an XML > driver. > > I wonder if I can simply start by creating the directories > org/jsynthlib/jsynthlib/synthdrivers/maudio/midisport8x8/ > and copy over the file YamahaMotif.xml as MaudioMidisport8x8.xml. Sounds like a good way to start. > No I start editing it. The first thing that wonders me is the > <inquiryid>F07E7F06024300417[CDE]040000007FF7</inquiryid><!-- regex --> > from the Yamaha Motif file. Is this the answer awaited *from* the device > after sending a request or is this the Request to be *sent* to the > device? > > As I did reverse engineer the device, I know the requests to be sent to > it to retreive its memory contents. But I do *not* know if there is a > special command to simply ask it "are you connected to the MIDI > network?". Do I need it? Which data do I need to enter into > <inquiryid></inquiryid>? Many devices respond to the universal identity request. You can read an explanation of it at http://www.borg.com/~jglatt/tech/midispec/identity.htm This is the reply your device would send so JSL can automatically detect it. If it's not supported you should be able to leave it out (although I've never tested that). > Now the driver part. As I'm not that familiar with the Yamaha Motif, the > example doesn't help here. So step by step: > > The memory of the Midisport 8x8 consists of 1 package of 27 bytes > containing the global data and 8 packages containing one patchbay > definition each. There's no checksum at all. > > So how to start? I read: That depends partly on how you send / recieve the data. Is the global data sent separately from the patchbay definitions? If so, you should probably have a separate driver for each. That would be something like: <driver> <name>Global Data</name> <!-- these are the names shown in the sysex get and send dialogs: --> <banknames> <name>N / A</name> </banknames> <patchnames> <name>Global Data</name> </patchnames> <patch file=3D"globals.xml" /> <class>globals.groovy</class> </driver> <driver> <name>Patchbay</name> <!-- these are the names shown in the sysex get and send dialogs: --> <banknames> <name>N / A</name> </banknames> <patchnames> <name>Patchbay 1</name> <name>Patchbay 2</name> <name>Patchbay 3</name> <name>Patchbay 4</name> <name>Patchbay 5</name> <name>Patchbay 6</name> <name>Patchbay 7</name> <name>Patchbay 8</name> </patchnames> <patch file=3D"patchbays.xml" /> <class>patchbays.groovy</class> </driver> The decoder and checksum will normally go inside the patch file. If there is no checksum you will probably need to create a checksum plugin that does nothing. |