这是indexloc提供的服务,不要输入任何密码
Skip to content

Commit 1316439

Browse files
Merge branch 'gh-pages' into 244-system-real-time
2 parents b4ab121 + b95b2bb commit 1316439

File tree

1 file changed

+61
-59
lines changed

1 file changed

+61
-59
lines changed

index.html

Lines changed: 61 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ <h2>
154154
The terms <dfn>MIDI</dfn>, <dfn>MIDI device</dfn>, <dfn>MIDI input
155155
port</dfn>, <dfn>MIDI output port</dfn>, <dfn>MIDI interface</dfn>,
156156
<dfn>MIDI message</dfn>, <dfn>System Real Time</dfn> and
157-
<dfn>system exclusive</dfn> are defined in [[MIDI]].
157+
<dfn>System Exclusive</dfn> are defined in [[MIDI]].
158158
</p>
159159
</section>
160160
<section>
@@ -218,17 +218,18 @@ <h2>
218218
</p>
219219
<p>
220220
Requesting MIDI access SHOULD prompt the user for access to MIDI
221-
devices, particularly if system exclusive access is requested. In
222-
some scenarios, this permission may have already been implicitly
223-
or explicitly granted, in which case this prompt may not appear.
224-
If the user gives express permission or the call is otherwise
225-
approved, the vended Promise is resolved. The underlying system
226-
may choose to allow the user to select specific MIDI interfaces
227-
to expose to this API (i.e. pick and choose interfaces on an
228-
individual basis), although this is not required. The system may
229-
also choose to prompt (or not) based on whether system exclusive
230-
support is requested, as system exclusive access has greater
231-
privacy and security implications.
221+
devices, particularly if <a>System Exclusive</a> access is
222+
requested. In some scenarios, this permission may have already
223+
been implicitly or explicitly granted, in which case this prompt
224+
may not appear. If the user gives express permission or the call
225+
is otherwise approved, the vended Promise is resolved. The
226+
underlying system may choose to allow the user to select specific
227+
MIDI interfaces to expose to this API (i.e. pick and choose
228+
interfaces on an individual basis), although this is not
229+
required. The system may also choose to prompt (or not) based on
230+
whether <a>System Exclusive</a> support is requested, as <a>System
231+
Exclusive</a> access has greater privacy and security
232+
implications.
232233
</p>
233234
<p>
234235
If the user declines or the call is denied for any other reason,
@@ -282,8 +283,8 @@ <h2>
282283
Prompt the user in a user-agent-specific manner for
283284
permission to provide the entry script's origin with a
284285
{{MIDIAccess}} object representing control over user's MIDI
285-
devices. This prompt may be contingent upon whether system
286-
exclusive support was requested, and may allow the user to
286+
devices. This prompt may be contingent upon whether <a>System
287+
Exclusive</a> support was requested, and may allow the user to
287288
enable or disable that access.
288289
</p>
289290
<p>
@@ -358,15 +359,15 @@ <h2 id="MIDIOptions">
358359
<dd>
359360
<p>
360361
This member informs the system whether the ability to send and
361-
receive system exclusive messages is requested or allowed on a
362-
given {{MIDIAccess}} object. On the option passed to
362+
receive <a>System Exclusive</a> messages is requested or allowed
363+
on a given {{MIDIAccess}} object. On the option passed to
363364
{{requestMIDIAccess()}}, if this member is set to true, but
364-
system exclusive support is denied (either by policy or by user
365-
action), the access request will fail with a {{"SecurityError"}}
366-
error. If this support is not requested (and allowed), the system
367-
will throw exceptions if the user tries to send system exclusive
368-
messages, and will silently mask out any system exclusive
369-
messages received on the port.
365+
<a>System Exclusive</a> support is denied (either by policy or by
366+
user action), the access request will fail with a
367+
{{"SecurityError"}} error. If this support is not requested (and
368+
allowed), the system will throw exceptions if the user tries to
369+
send <a>System Exclusive</a> messages, and will silently mask out
370+
any <a>System Exclusive</a> messages received on the port.
370371
</p>
371372
</dd>
372373
<dt>
@@ -528,8 +529,8 @@ <h2 id="MIDIAccess">
528529
<dfn>sysexEnabled</dfn>
529530
</dt>
530531
<dd>
531-
This attribute informs the user whether system exclusive support is
532-
enabled on this MIDIAccess.
532+
This attribute informs the user whether <a>System Exclusive</a>
533+
support is enabled on this MIDIAccess.
533534
</dd>
534535
</dl>
535536
</section>
@@ -962,9 +963,9 @@ <h3 id="MIDIInput">
962963
</li>
963964
<li>
964965
<p>
965-
If the {{MIDIAccess}} did not enable system exclusive access,
966-
and the message is a system exclusive message, abort this
967-
process.
966+
If the {{MIDIAccess}} did not enable <a>System Exclusive</a>
967+
access, and the message is a <a>System Exclusive</a> message,
968+
abort this process.
968969
</p>
969970
</li>
970971
<li>
@@ -1021,9 +1022,9 @@ <h3 id="MIDIOutput">
10211022
a valid MIDI message, throw a <code>TypeError</code> exception.
10221023
</p>
10231024
<p>
1024-
If <var>data</var> is a system exclusive message, and the
1025-
{{MIDIAccess}} did not enable system exclusive access, throw an
1026-
<code>InvalidAccessError</code> exception.
1025+
If <var>data</var> is a <a>System Exclusive</a> message, and the
1026+
{{MIDIAccess}} did not enable <a>System Exclusive</a> access,
1027+
throw an <code>InvalidAccessError</code> exception.
10271028
</p>
10281029
<p>
10291030
If the port is <a data-lt=
@@ -1327,11 +1328,12 @@ <h3>
13271328
</section>
13281329
<section>
13291330
<h3>
1330-
Requesting Access to the MIDI System with System Exclusive Support
1331+
Requesting Access to the MIDI System with <a>System Exclusive</a>
1332+
Support
13311333
</h3>
13321334
<p>
13331335
This example shows how to request access to the MIDI system,
1334-
including the ability to send and receive system exclusive
1336+
including the ability to send and receive <a>System Exclusive</a>
13351337
messages.
13361338
</p>
13371339
<pre class="example">var midi = null; // global MIDIAccess object
@@ -1414,8 +1416,8 @@ <h3>
14141416
A Simple Loopback
14151417
</h3>
14161418
<p>
1417-
This example loops all input messages on the first input port to
1418-
the first output port - including system exclusive messages.
1419+
This example loops all input messages on the first input port to the
1420+
first output port - including <a>System Exclusive</a> messages.
14191421
</p>
14201422
<pre class="example">var midi = null; // global MIDIAccess object
14211423
var output = null;
@@ -1627,24 +1629,24 @@ <h2>
16271629
<li>Sending and Receiving SysEx. This is the biggest concern, because
16281630
it would be possible to write code that looked for system-specific
16291631
responses to sysex messages, which could identify the hardware
1630-
available, and then use it to download data - e.g. samples stored in
1631-
a sampler - or replace that data (erasing sample data or patches in
1632-
the device), although both these scenarios would have to be coded for
1633-
a particular device. It is also possible that some samplers might
1634-
enable a system exclusive message to start recording a sample - so if
1635-
the sampler happened to have a dedicated microphone attached
1636-
(uncommon in practice, but possible), it would be possible to write
1637-
code specific to a particular device that could record a short sample
1638-
of sound and then upload it to the network without further user
1632+
available, and then use it to download data - e.g. samples stored in a
1633+
sampler - or replace that data (erasing sample data or patches in the
1634+
device), although both these scenarios would have to be coded for a
1635+
particular device. It is also possible that some samplers might enable
1636+
a <a>System Exclusive</a> message to start recording a sample - so if
1637+
the sampler happened to have a dedicated microphone attached (uncommon
1638+
in practice, but possible), it would be possible to write code
1639+
specific to a particular device that could record a short sample of
1640+
sound and then upload it to the network without further user
16391641
intervention. (You could not stream audio from the device, and most
16401642
samplers have fairly limited memory, and MIDI Sample Dump sysex is a
16411643
slow way to transfer data - it has to transcode into 7-bit - so it’s
16421644
unlikely you could listen in for long periods.) More explicit
16431645
fingerprinting is a concern, as the patch information/stored
16441646
samples/user configuration could uniquely identify the system
1645-
(although again, this requires much device-specific code; there is
1646-
not standardized “grab all patches and hash it” capability.) This
1647-
does suggest that system exclusive messages are in a security
1647+
(although again, this requires much device-specific code; there is not
1648+
standardized “grab all patches and hash it” capability.) This does
1649+
suggest that <a>System Exclusive</a> messages are in a security
16481650
category of their own.
16491651
</li>
16501652
</ol>
@@ -1675,14 +1677,14 @@ <h2>
16751677
</li>
16761678
<li>Sending and receiving SysEx - obviously, for more advanced
16771679
communication with high-end hardware devices, SysEx is required.
1678-
Unfortunately, some common MIDI commands are also sent as system
1679-
exclusive messages (MIDI Machine Control, for example - generic
1680-
start/stop/rew/ffw commands) - and many devices use system exclusive
1681-
to program patches, send advanced controller messages, download
1682-
firmware, etc., which are much-demanded scenarios for Web MIDI. Some
1683-
devices use sysex as a direct control protocol, as they can pack more
1684-
data into a single “message”, and most devices use SysEx as way to
1685-
save and restore patches and configuration information on
1680+
Unfortunately, some common MIDI commands are also sent as <a>System
1681+
Exclusive</a> messages (MIDI Machine Control, for example - generic
1682+
start/stop/rew/ffw commands) - and many devices use <a>System
1683+
Exclusive</a> to program patches, send advanced controller messages,
1684+
download firmware, etc., which are much-demanded scenarios for Web
1685+
MIDI. Some devices use sysex as a direct control protocol, as they can
1686+
pack more data into a single “message”, and most devices use SysEx as
1687+
way to save and restore patches and configuration information on
16861688
less-expensive computer storage. Several of the major music hardware
16871689
producers have expressed strong interest in using Web MIDI to provide
16881690
web-based configuration and programming interfaces to their hardware.
@@ -1713,15 +1715,15 @@ <h2>
17131715
not persistently.
17141716
</p>
17151717
<p>
1716-
System Exclusive, on the other hand, has a much less bounded
1718+
<a>System Exclusive</a>, on the other hand, has a much less bounded
17171719
potential, and it seems that distinguishing requests for SysEx
17181720
separately in the API is a good idea, in order to more carefully
17191721
provide user security hooks. The <a data-lt=
17201722
"Navigator.requestMIDIAccess">suggested security model</a> explicitly
1721-
allows user agents to require the user's approval before giving
1722-
access to MIDI devices, although it is not currently required to
1723-
prompt the user for this approval - but it also detailed that system
1724-
exclusive support must be requested as part of that request.
1723+
allows user agents to require the user's approval before giving access
1724+
to MIDI devices, although it is not currently required to prompt the
1725+
user for this approval - but it also detailed that <a>System
1726+
Exclusive</a> support must be requested as part of that request.
17251727
</p>
17261728
</section>
17271729
</section>

0 commit comments

Comments
 (0)