- From: <bugzilla@jessica.w3.org>
- Date: Mon, 10 Sep 2012 16:50:29 +0000
- To: public-audio@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=18764 --- Comment #27 from Chris Wilson <cwilso@gmail.com> 2012-09-10 16:50:26 UTC --- (In reply to comment #25) > Regarding the controllerist world: > Check out the MIDI spec of 50 controllers: I predict at least 45 of them > require Sys Ex for configuration and often for real time control. Your > Launchpad is one of the few control surfaces which does not use Sys Ex at all. > For any GM synth, to send master volume, you need Sys Ex. I fully understand the Launchpad is special in that it doesn't have configuration controlled through sysex - it has remapper software. It's not my only controller, by a long shot - not even the only one that doesn't use sysex - but I'd also point out the whole point of those controllers (like my Livid CNTRLR) that use sysex for remapping is so that developers can write software that just deals with straight controller and key mappings, and not have to write the manufacturer-specific sysex. I've > > > And my crescent wrench makes a pretty good hammer, too. > > :) but what's the point? For the user who only sends 3 byte messages, it's > totally irrelevant, and functionally equivalent, if the method is declared with > up to 3 args or with var args. If it looks like a hammer, and works like a > hammer, everybody is happy! I think we are conflating two issues, and that's not my intent. Issue 1) I feel very strongly that the three-byte simplistic send is an extremely common case, and should be as trivial as possible (i.e. having to wrap an object and an array around those bytes is unnecessary and confusing to developers). Issue 2) Assuming some simplistic, non-object-based send call is there for sending common MIDI messages, there is the issue of whether the variadic or optional forms should be used to describe it. (AKA: is the simple form for messages of up to three bytes, or of arbitrary lengths?) Here, I feel that using variadic encourages developers to use the simple form in cases where it's not really ideal; however, I frankly don't care that much. I think it's a bit silly to use here, when my point is simply to optimise for an obvious common case (all those note on/off and controller messages, e.g.), not to improve sending arbitrary sysex (which I think will likely be in arrays already, given how sysex is typically used). I disagree with using variadic here; I don't disagree to the point of taking my tricycle and going home, however. I was referring to issue 1 when I made the crescent wrench comment - NOT whether the variadic or optional form was used. > > As to the various "performance isn't important here" comments - performance is > > always important. But my point was really intended to be around the mental > > overhead of having to create two wrapper objects around three bytes of data. > > I agree, too, but still I don't see the point of limiting it to 3 bytes. With > the variadic form, you'll get the performance and the mental optimization... See above - I think the cases when you're sending sysex are different in nature. Sysex messages tend to have a lot more than a single byte identifying what type of message they are, and therefore will likely have to have a boilerplate header in the code somewhere, likely as an array, already. Again, this is not my highest-priority concern. > At the time, devices wouldn't keep up with original MIDI > speed. But they'd send out their bulk dumps slowly, too, so you wouldn't notice > if you just record it in a sequencer and play it back. Nowadays, the processors > in the devices are faster, but using USB can get them more bandwidth, too. I > publish a MIDI bulk dump program, and based on customer feedback and support > requests, its "throttling" mechanism is quite important. It splits up big Sys > Ex messages. Ick. I had not realized that inside a single sysex message, common devices could not keep up; I knew some devices broke up their bulk dumps into chunks and sent the chunks slowly, relying on sequencer playback timing to keep it slowed down. That will be unfortunate, then, and we'll have to allow partial sysex messages in MIDIMessage, a la CoreMIDI. -- Configure bugmail: https://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Monday, 10 September 2012 16:50:31 UTC