From: Joe E. <jo...@em...> - 2005-03-18 00:58:04
|
Jeff Weber wrote: >--- Joe Emenaker <jo...@em...> wrote: > > >>Well, here's the "grand design" of what I'm thinking >>of: >>- Patch data would be given only to one of the items >>(widget, param-model, or sender) and the others would get it >>from that. >> >> >Would it be possible to use a widget with only a >ParamModel (and no Sender) or with a Sender (and no >ParamModel) with this design? > Well, addWidget already allows you to give it a null in place of a sender. So having a ParamModel without a Sender is already possible. As for having a Sender without a ParamModel.... I don't see why that couldn't be allowed. I never envisioned needing that.... but that's not a show-stopper. >I ran into this >situation with the Behringer FCB1010. The Behringer >only accepts sysex and does not recognize any >real-time messages. > My Alesis SR-16 drum machine is the same way. If you want to hear the patch you're working on, I think you have to send the entire bank back as a sysex. I came across something like this when looking at another driver, too. I think it was the Alesis DM5. Because the size of the entire sysex message was so small, the Sender (instead of sending individual changes for individual params) just prepared the entire patch and sent it to the edit buffer every time the user changed a param. (On a side note, there was probably duplicate code in the Driver for when the user explicitly selected "Send". Maybe there should be, if there isn't already, a special Sender class that, when a param is modified, causes JSL to behave as though the user just selected "Send"). >Is it possible there might be other devices that only accept real-time messages and not sysex? > > It's possible in that the MIDI spec allows it, I guess. I don't know if anything exists that actually does. However, we could just make the ParamModel classes gracefully handle being given a null as the Patch (or my DataModel or Rib Rdb's Decoder), yet still allow the Senders to work. - Joe |