On Thursday, May 26, 2016 5:28:36 PM EDT Tim E. Real wrote: > While fixing 2) above, I revisited an old problem: > Midi supports High Bank, Low Bank, and Program. > But synthesizer plugin frameworks only support Bank and Program. > > We support 128 banks using either the High Bank or Low Bank midi value. > (Oddly, I just noticed in our MESS Fluidsynth we use the High Bank > but in LV2 and all others we use the Low Bank. Hm, why did I leave it like > that... Maybe simple oversight when I added DSSI and LinuxVST support? > I'm am thinking of correcting this!) > > So I want to /combine/ our midi High Bank and Low Bank values > into a 14-bit synth plugin Bank value, for a total of 16384 synth Banks. > > But, now I see a problem. > Yoshimi supports High and Low Bank and can do very special things > with them separately, yet the LV2 plugin only supports Bank. > > Question: Do you all think this is a good idea, combining H+L midi Bank > for 16384 total synth Banks? > Using Yoshimi as an example then, Will, how would you like me to combine > the midi High Bank and Low Bank values into a single Bank value? > Should I do it > (HBank << 7) + LBank (16384 consecutive values), or > (HBank << 8) + LBank (16384 values arranged as two 8-bit-wide 7-bit > midi High | Low Bank values)? > > The DSSI specs and the LV2 specs (which are word-for-word identical) > on Program and Bank are kind of vague. We can use any values > but what plugin supports more than 128 Programs? > IIUC, I think Yoshimi does, right? Extended midi? > And how do we support that in a midi host? > I can play with bits moving them around to make any combination we desire, > but... there's no standard - for example should I take one bit from the > midi Low Bank and shift it into the synth Program to make 256 total synth > Programs? Or shift even more bits for 1024 synth Programs and so on? > > Any input here from all is much appreciated! > > Thanks. > Tim.
You might say "just send the High Bank, Low Bank and Program as separate midi CC messages to the plugin, bypassing the plugin Programs framework and functions". But this is undesirable - a host generally knows the /complete/ patch value beforehand. Forcing the host to break that up into separate midi CC messages can cause switching glitches. I think this is one reason why a separate Programs framework was added to the synth architectures. Tim. ------------------------------------------------------------------------------ What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic patterns at an interface-level. Reveals which users, apps, and protocols are consuming the most bandwidth. Provides multi-vendor support for NetFlow, J-Flow, sFlow and other flows. Make informed decisions using capacity planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e _______________________________________________ Lmuse-developer mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lmuse-developer
