uTools-Manuals/docs/java/javax/sound/midi/MidiChannel.html

898 lines
38 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
javax.sound.midi
</div>
<h2 class="title" title="Interface MidiChannel">Interface MidiChannel</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr/> <br/> <pre>public interface <span class="typeNameLabel">MidiChannel</span></pre>
<div class="block">
<span><code>MidiChannel</code>对象表示单个MIDI通道。</span>
<span>通常,每个<code>MidiChannel</code>方法处理由MIDI规范定义的类似的MIDI“通道语音”或“通道模式”消息。</span>
<span>然而, <code>MidiChannel</code>添加了一些“get”方法它检索最近由一个标准MIDI通道消息设置的值。</span>
<span>类似地,已经添加了每通道独奏和静音的方法。</span>
<p> <span><code><a href="../../../javax/sound/midi/Synthesizer.html" title="interface in javax.sound.midi"><code>Synthesizer</code></a></code>对象具有MidiChannels的<code>MidiChannels</code> 通常为MIDI 1.0规范规定的16个通道中的每一个。</span> <span><code>Synthesizer</code><code>MidiChannels</code>收到<code>noteOn</code>消息时会<code>noteOn</code>声音。</span> </p>
<p> <span>有关MIDI通道消息的规定行为的更多信息请参阅MIDI 1.0规范,这些不在此详细记录。</span> <span>该规格标题为<code>MIDI Reference: The Complete MIDI 1.0 Detailed Specification</code> 由MIDI制造商协会 <a href="http://www.midi.org">http://www.midi.org</a> <a href="http://www.midi.org">出版</a></span> </p>
<p> <span>MIDI最初是用于报告键盘音乐人手势的协议。</span> <span>这个起源在<code>MidiChannel</code> API中是可见的它保留了诸如键数键速度和键压的MIDI概念。</span> <span>应当理解MIDI数据不一定是由键盘播放器源可以是不同类型的音乐家或软件</span> <span>某些设备可能会生成速度和压力的常量值,而不管音符的执行方式如何。</span> <span>此外MIDI规范通常会使合成器以实现者认为合适的方式使用数据。</span> <span>例如,速度数据不一定总是映射到体积和/或亮度。</span> </p>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/Synthesizer.html#getChannels--"><code>Synthesizer.getChannels()</code></a>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#allNotesOff--">allNotesOff</a></span>()</code>
<div class="block">
关闭当前在此频道上播放的所有音符。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#allSoundOff--">allSoundOff</a></span>()</code>
<div class="block">
立即关闭此通道上的所有声音,忽略保持踏板的状态和当前
<code>Instrument</code>的内部衰减速率。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#controlChange-int-int-">controlChange</a></span>(int controller, int value)</code>
<div class="block">
反映指定控制器价值的变化。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getChannelPressure--">getChannelPressure</a></span>()</code>
<div class="block">
获取频道的键盘压力。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getController-int-">getController</a></span>(int controller)</code>
<div class="block">
获取指定控制器的当前值。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getMono--">getMono</a></span>()</code>
<div class="block">
获取当前单声道/多声道模式。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getMute--">getMute</a></span>()</code>
<div class="block">
获取此通道的当前静音状态。
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getOmni--">getOmni</a></span>()</code>
<div class="block">
获取当前的全向模式。
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getPitchBend--">getPitchBend</a></span>()</code>
<div class="block">
获得此通道的向上或向下音高偏移量。
</div> </td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getPolyPressure-int-">getPolyPressure</a></span>(int noteNumber)</code>
<div class="block">
获得指定键被压下的压力。
</div> </td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getProgram--">getProgram</a></span>()</code>
<div class="block">
获取此通道的当前程序编号。
</div> </td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#getSolo--">getSolo</a></span>()</code>
<div class="block">
获取此频道的当前独奏状态。
</div> </td>
</tr>
<tr class="altColor" id="i12">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#localControl-boolean-">localControl</a></span>(boolean on)</code>
<div class="block">
打开或关闭本地控制。
</div> </td>
</tr>
<tr class="rowColor" id="i13">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#noteOff-int-">noteOff</a></span>(int noteNumber)</code>
<div class="block">
关闭指定的音符。
</div> </td>
</tr>
<tr class="altColor" id="i14">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#noteOff-int-int-">noteOff</a></span>(int noteNumber, int velocity)</code>
<div class="block">
关闭指定的音符。
</div> </td>
</tr>
<tr class="rowColor" id="i15">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#noteOn-int-int-">noteOn</a></span>(int noteNumber, int velocity)</code>
<div class="block">
开始指定的音符声音。
</div> </td>
</tr>
<tr class="altColor" id="i16">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#programChange-int-">programChange</a></span>(int program)</code>
<div class="block">
更改程序(补丁)。
</div> </td>
</tr>
<tr class="rowColor" id="i17">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#programChange-int-int-">programChange</a></span>(int bank, int program)</code>
<div class="block">
使用银行和程序(补丁)号码更改程序。
</div> </td>
</tr>
<tr class="altColor" id="i18">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#resetAllControllers--">resetAllControllers</a></span>()</code>
<div class="block">
将所有实现的控制器重置为其默认值。
</div> </td>
</tr>
<tr class="rowColor" id="i19">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#setChannelPressure-int-">setChannelPressure</a></span>(int pressure)</code>
<div class="block">
反应键盘压力的变化。
</div> </td>
</tr>
<tr class="altColor" id="i20">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#setMono-boolean-">setMono</a></span>(boolean on)</code>
<div class="block">
打开或关闭单声道模式。
</div> </td>
</tr>
<tr class="rowColor" id="i21">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#setMute-boolean-">setMute</a></span>(boolean mute)</code>
<div class="block">
设置此通道的静音状态。
</div> </td>
</tr>
<tr class="altColor" id="i22">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#setOmni-boolean-">setOmni</a></span>(boolean on)</code>
<div class="block">
打开或关闭全向模式。
</div> </td>
</tr>
<tr class="rowColor" id="i23">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#setPitchBend-int-">setPitchBend</a></span>(int bend)</code>
<div class="block">
更改此通道上所有音符的音高偏移量。
</div> </td>
</tr>
<tr class="altColor" id="i24">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#setPolyPressure-int-int-">setPolyPressure</a></span>(int noteNumber, int pressure)</code>
<div class="block">
反映指定笔记的关键压力的变化。
</div> </td>
</tr>
<tr class="rowColor" id="i25">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/sound/midi/MidiChannel.html#setSolo-boolean-">setSolo</a></span>(boolean soloState)</code>
<div class="block">
设置此频道的独奏状态。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="noteOn-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>noteOn</h4> <pre>void noteOn(int noteNumber,
int velocity)</pre>
<div class="block">
<span>开始指定的音符声音。</span>
<span>键控速度通常控制音符的音量和/或亮度。</span>
<span>如果<code>velocity</code>为零,则该方法代替<a href="../../../javax/sound/midi/MidiChannel.html#noteOff-int-"><code>noteOff(int)</code></a> ,终止笔记。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>noteNumber</code> - MIDI音符编号从0到12760 =中等C
</dd>
<dd>
<code>velocity</code> - 键被压低的速度
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#noteOff-int-int-"><code>noteOff(int, int)</code></a>
</dd>
</dl> </li>
</ul> <a name="noteOff-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>noteOff</h4> <pre>void noteOff(int noteNumber,
int velocity)</pre>
<div class="block">
<span>关闭指定的音符。</span>
<span>键入速度(如果不被忽略)可用于影响音符衰减的速度。</span>
<span>在任何情况下,笔记可能不会立即消失;</span>
<span>其衰减率由Instrument的内部<code>Instrument</code></span>
<span>如果保持踏板(控制器,参见<a href="../../../javax/sound/midi/MidiChannel.html#controlChange-int-int-"><code>controlChange</code></a> )已关闭,则此方法的效果将推迟到踏板释放。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>noteNumber</code> - MIDI音符号从0到12760 =中等C
</dd>
<dd>
<code>velocity</code> - 释放密钥的速度
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#noteOff-int-"><code>noteOff(int)</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#noteOn-int-int-"><code>noteOn(int, int)</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#allNotesOff--"><code>allNotesOff()</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#allSoundOff--"><code>allSoundOff()</code></a>
</dd>
</dl> </li>
</ul> <a name="noteOff-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>noteOff</h4> <pre>void noteOff(int noteNumber)</pre>
<div class="block">
关闭指定的音符。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>noteNumber</code> - MIDI音符编号从0到12760 =中间C
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#noteOff-int-int-"><code>noteOff(int, int)</code></a>
</dd>
</dl> </li>
</ul> <a name="setPolyPressure-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setPolyPressure</h4> <pre>void setPolyPressure(int noteNumber,
int pressure)</pre>
<div class="block">
<span>反映指定笔记的关键压力的变化。</span>
<span>复音键压力允许键盘播放器同时按下多个键,每个按键具有不同的压力。</span>
<span>压力(如果不被忽略)通常用于改变音符的音量,亮度或颤音等特征。</span>
<span>底层合成器可能不支持此MIDI消息。</span>
<span>为了验证<code>setPolyPressure</code>是否成功,请使用<code>getPolyPressure</code></span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>noteNumber</code> - MIDI音符编号从0到12760 =中等C
</dd>
<dd>
<code>pressure</code> - 指定键的值从0到127127 =最大压力)
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#getPolyPressure-int-"><code>getPolyPressure(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="getPolyPressure-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getPolyPressure</h4> <pre>int getPolyPressure(int noteNumber)</pre>
<div class="block">
获得指定键被压下的压力。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>noteNumber</code> - MIDI音符编号从0到12760 =中间C如果设备不支持设置
<code>setPolyPressure</code>压力该方法总是返回0.调用
<code>setPolyPressure</code>将不起作用。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
该笔记压力从0到127127 =最大压力)
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setPolyPressure-int-int-"><code>setPolyPressure(int, int)</code></a>
</dd>
</dl> </li>
</ul> <a name="setChannelPressure-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setChannelPressure</h4> <pre>void setChannelPressure(int pressure)</pre>
<div class="block">
<span>反应键盘压力的变化。</span>
<span>通道压力表示键盘播放器压低整个键盘的难度。</span>
<span>这可以是<code>setPolyPressure</code>设置的每个按键压力传感器值的最大值或平均值。</span>
<span>更常见的是,它是对不具有复音键压力的器件上的单个传感器的测量。</span>
<span>压力可用于控制声音的各个方面,如<code>setPolyPressure</code> <a href="../../../javax/sound/midi/MidiChannel.html#setPolyPressure-int-int-">所述</a></span>
<span>底层合成器可能不支持此MIDI消息。</span>
<span>为了验证<code>setChannelPressure</code>是否成功,请使用<code>getChannelPressure</code></span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>pressure</code> - 键盘被压下的压力从0到127127 =最大压力)
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setPolyPressure-int-int-"><code>setPolyPressure(int, int)</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#getChannelPressure--"><code>getChannelPressure()</code></a>
</dd>
</dl> </li>
</ul> <a name="getChannelPressure--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getChannelPressure</h4> <pre>int getChannelPressure()</pre>
<div class="block">
<span>获取频道的键盘压力。</span>
<span>如果设备不支持设置通道压力则此方法始终返回0.调用<code>setChannelPressure</code>将不起作用。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
该笔记压力从0到127127 =最大压力)
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setChannelPressure-int-"><code>setChannelPressure(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="controlChange-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>controlChange</h4> <pre>void controlChange(int controller,
int value)</pre>
<div class="block">
<span>反映指定控制器价值的变化。</span>
<span>控制器是除键盘键之外的一些控制器,例如开关,滑块,踏板,轮子或呼吸压力传感器。</span>
<span>MIDI 1.0规范为MIDI设备上的典型控制器提供标准号码并描述了某些控制器的预期效果。</span>
<span><code>Instrument</code>对控制器更改的反应方式可能特定于<code>Instrument</code></span>
<p> <span>MIDI 1.0规范定义了7位控制器和14位控制器。</span> <span>连续的控制器例如轮子和滑块通常具有14位两个MIDI字节而离散控制器例如开关通常具有7位一个MIDI字节</span> <span>请参阅规范以查看每种控制类型的预期分辨率。</span> </p>
<p> <span>控制器64到950x40 - 0x5F允许7位精度。</span> <span>一个7位控制器的值完全由<code>value</code>参数设置。</span> <span>另外一组控制器通过使用两个控制器编号提供14位精度一个用于最高有效7位另一个用于最不重要的7位。</span> <span>控制器编号0到310x00 - 0x1F控制最高有效位的14位控制器;</span> <span>控制器编号32到630x20 - 0x3F控制这些控制器的最低有效7位。</span> <span>例如控制器编号70x07控制通道音量控制器的高7位控制器编号390x27控制低7位。</span> <span>14位控制器的值由两半的相互作用决定。</span> <span>当控制器的最高有效7位使用控制器编号0到31低7位自动设置为0.然后可以使用较低7位的相应控制器编号进一步调制控制器值。</span> <span>底层合成器可能不支持特定的控制器消息。</span> <span>为了验证<code>controlChange</code>的呼叫是否成功,请使用<code>getController</code></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>controller</code> - 控制器号码0〜127;请参阅MIDI 1.0规格说明)
</dd>
<dd>
<code>value</code> - 指定控制器更改的值0到127
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#getController-int-"><code>getController(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="getController-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getController</h4> <pre>int getController(int controller)</pre>
<div class="block">
<span>获取指定控制器的当前值。</span>
<span>返回值用7位表示。</span>
<span>对于14位控制器需要单独获取MSB和LSB控制器值。</span>
<span>例如音量控制器的14位值可以通过将控制器70x07通道音量MSB的值乘以128并将控制器39的值0x27通道音量LSB相加来计算。</span>
<span>如果设备不支持设置特定控制器该方法将为该控制器返回0。</span>
<span>调用<code>controlChange</code>将不起作用。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>controller</code> - 需要其值的控制器的编号。</span>
<span>允许范围为0-127;</span>
<span>请参阅MIDI 1.0规范的解释。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
指定控制器的当前值0〜127
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#controlChange-int-int-"><code>controlChange(int, int)</code></a>
</dd>
</dl> </li>
</ul> <a name="programChange-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>programChange</h4> <pre>void programChange(int program)</pre>
<div class="block">
<span>更改程序(补丁)。</span>
<span>这将从当前选定的乐器库中选择一个特定乐器。</span>
<p> <span>MIDI规范不规定已经发声的音符是否应切换到新乐器音色或继续其原始音色直到由音符关闭终止。</span> </p>
<p> <span>程序号为0从0到127表示</span> <span>请注意MIDI硬件显示和关于MIDI的文献通常使用1到128的范围。</span> <span>底层合成器可能不支持特定的程序。</span> <span>为了验证<code>programChange</code>的呼叫是否成功,请使用<code>getProgram</code></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>program</code> - 要切换到的程序号0到127
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#programChange-int-int-"><code>programChange(int, int)</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#getProgram--"><code>getProgram()</code></a>
</dd>
</dl> </li>
</ul> <a name="programChange-int-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>programChange</h4> <pre>void programChange(int bank,
int program)</pre>
<div class="block">
<span>使用银行和程序(补丁)号码更改程序。</span>
<span>底层合成器可能不支持特定的银行或程序。</span>
<span>为了验证<code>programChange</code>的呼叫是否成功,请使用<code>getProgram</code><code>getController</code></span>
<span>由于银行通过控制变更的方式进行更改,因此您可以使用以下声明验证当前银行:</span>
<pre> <span>int bank = (getController(0) * 128)
+ getController(32);</span> </pre>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>bank</code> - 要切换到的银行号码0至16383
</dd>
<dd>
<code>program</code> - 在指定银行使用的程序补丁0到127
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#programChange-int-"><code>programChange(int)</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#getProgram--"><code>getProgram()</code></a>
</dd>
</dl> </li>
</ul> <a name="getProgram--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getProgram</h4> <pre>int getProgram()</pre>
<div class="block">
获取此通道的当前程序编号。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
当前所选补丁的程序号
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/Patch.html#getProgram--"><code>Patch.getProgram()</code></a>
<a href="../../../javax/sound/midi/Synthesizer.html#loadInstrument-javax.sound.midi.Instrument-"><code>Synthesizer.loadInstrument(javax.sound.midi.Instrument)</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#programChange-int-"><code>programChange(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="setPitchBend-int-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setPitchBend</h4> <pre>void setPitchBend(int bend)</pre>
<div class="block">
<span>更改此通道上所有音符的音高偏移量。</span>
<span>这会影响目前所有的音符和随后的音符。</span>
<span>(为了停止弯曲,该值需要重置到中心位置。)</span>
<p> <span>MIDI规范规定音高为14位值零为最大向下弯曲16383为最大向上弯曲8192为中心无节距弯曲</span> <span>音高变化的实际量未指定;</span> <span>它可以通过俯仰灵敏度设置来改变。</span> <span>然而通用MIDI规范说默认范围应该是从中心向上和向下两个半音。</span> <span>底层合成器可能不支持此MIDI消息。</span> <span>为了验证<code>setPitchBend</code>是否成功,请使用<code>getPitchBend</code></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>bend</code> - 音调变化量作为非负14位值8192 =无弯)
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#getPitchBend--"><code>getPitchBend()</code></a>
</dd>
</dl> </li>
</ul> <a name="getPitchBend--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getPitchBend</h4> <pre>int getPitchBend()</pre>
<div class="block">
<span>获得此通道的向上或向下音高偏移量。</span>
<span>如果设备不支持设置音高此方法总是返回8192.调用<code>setPitchBend</code>将不起作用。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
弯曲量作为非负14位值8192 =无弯)
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setPitchBend-int-"><code>setPitchBend(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="resetAllControllers--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>resetAllControllers</h4> <pre>void resetAllControllers()</pre>
<div class="block">
将所有实现的控制器重置为其默认值。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#controlChange-int-int-"><code>controlChange(int, int)</code></a>
</dd>
</dl> </li>
</ul> <a name="allNotesOff--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>allNotesOff</h4> <pre>void allNotesOff()</pre>
<div class="block">
<span>关闭当前在此频道上播放的所有音符。</span>
<span>票据可能不会立即消失;</span>
<span>它们的衰减率由Instrument的内部<code>Instrument</code></span>
<span>如果保持踏板控制器(见<a href="../../../javax/sound/midi/MidiChannel.html#controlChange-int-int-"><code>controlChange</code></a> )关闭,则此方法的效果将延迟,直到踏板松开。</span>
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#allSoundOff--"><code>allSoundOff()</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#noteOff-int-"><code>noteOff(int)</code></a>
</dd>
</dl> </li>
</ul> <a name="allSoundOff--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>allSoundOff</h4> <pre>void allSoundOff()</pre>
<div class="block">
立即关闭此通道上的所有声音,忽略保持踏板的状态和当前
<code>Instrument</code>的内部衰减速率。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#allNotesOff--"><code>allNotesOff()</code></a>
</dd>
</dl> </li>
</ul> <a name="localControl-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>localControl</h4> <pre>boolean localControl(boolean on)</pre>
<div class="block">
<span>打开或关闭本地控制。</span>
<span>默认值为本地控制。</span>
<span>“开”设置意味着如果设备能够合成声音和发送MIDI消息则它会根据其本身传输的音符开启和音符关闭消息来合成声音。</span>
<span>它还将响应从其他发射设备接收的消息。</span>
<span>“关闭”设置意味着合成器将忽略其自己发送的MIDI消息而不会从其他设备接收的消息。</span>
<span>底层合成器可能不支持本地控制。</span>
<span>为了验证对<code>localControl</code>的调用是否成功,请检查返回值。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>on</code> -
<code>true</code>打开本地控制,
<code>false</code>关闭本地控制
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
新的本地控制值如果不支持本地控制则为false
</dd>
</dl> </li>
</ul> <a name="setMono-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setMono</h4> <pre>void setMono(boolean on)</pre>
<div class="block">
<span>打开或关闭单声道模式。</span>
<span>在单声道模式下,通道一次只合成一个音符。</span>
<span>在多模式(与单声道关闭相同)中,通道可以同时合成多个音符。</span>
<span>默认为单声道关闭(多模式打开)。</span>
<p> <span>“单声道”是“单声道”这个词的缩写在这种情况下它与“复音”一词相反是指每个MIDI通道单个合成器的声音。</span> <span>它与可能有多少音频通道无关(如“单声道”和“立体声”录音)。</span> <span>底层合成器可能不支持单声道模式。</span> <span>为了验证对<code>setMono</code>的呼叫是否成功,请使用<code>getMono</code></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>on</code> -
<code>true</code>打开单声道模式,
<code>false</code>将其关闭(这意味着打开多模式模式)。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/midi/MidiChannel.html#getMono--"><code>getMono()</code></a> <a href="../../../javax/sound/midi/VoiceStatus.html" title="javax.sound.midi中的类"><code>VoiceStatus</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getMono--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getMono</h4> <pre>boolean getMono()</pre>
<div class="block">
<span>获取当前单声道/多声道模式。</span>
<span>合成不允许改变单/多模式将始终返回相同的值,无论调用到<code>setMono</code></span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>如果单声道模式打开,否则
<code>false</code> (意思是多模式打开)。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setMono-boolean-"><code>setMono(boolean)</code></a>
</dd>
</dl> </li>
</ul> <a name="setOmni-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setOmni</h4> <pre>void setOmni(boolean on)</pre>
<div class="block">
<span>打开或关闭全向模式。</span>
<span>在全方式模式下,频道响应所有频道上发送的消息。</span>
<span>当全方位关闭时,频道仅响应其频道号码发送的消息。</span>
<span>默认是全方位关闭。</span>
<span>底层合成器可能不支持全向模式。</span>
<span>为了验证<code>setOmni</code>是否成功,请使用<code>getOmni</code></span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>on</code> -
<code>true</code>打开全方位模式,
<code>false</code>关闭它。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/sound/midi/MidiChannel.html#getOmni--"><code>getOmni()</code></a> <a href="../../../javax/sound/midi/VoiceStatus.html" title="javax.sound.midi中的类"><code>VoiceStatus</code></a></span>
</dd>
</dl> </li>
</ul> <a name="getOmni--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getOmni</h4> <pre>boolean getOmni()</pre>
<div class="block">
<span>获取当前的全向模式。</span>
<span>不允许更改全向模式的合成器将始终返回相同的值,而不管调用<code>setOmni</code></span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>如果全方位模式打开,否则
<code>false</code> (意味着全向模式关闭)。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setOmni-boolean-"><code>setOmni(boolean)</code></a>
</dd>
</dl> </li>
</ul> <a name="setMute-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setMute</h4> <pre>void setMute(boolean mute)</pre>
<div class="block">
<span>设置此通道的静音状态。</span>
<span><code>true</code>的值表示通道要静音, <code>false</code>表示通道可以声音(如果其他通道没有独奏)。</span>
<p> <span><a href="../../../javax/sound/midi/MidiChannel.html#allSoundOff--"><code>allSoundOff()</code></a>不同,此方法仅适用于特定通道,而不适用于所有通道。</span> <span>此外,它不仅沉默了当前的声音,还随后收到了笔记。</span> <span>底层合成器可能不支持静音通道。</span> <span>为了验证对<code>setMute</code>的呼叫是否成功,请使用<code>getMute</code></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>mute</code> - 新的静音状态
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#getMute--"><code>getMute()</code></a>
<a href="../../../javax/sound/midi/MidiChannel.html#setSolo-boolean-"><code>setSolo(boolean)</code></a>
</dd>
</dl> </li>
</ul> <a name="getMute--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getMute</h4> <pre>boolean getMute()</pre>
<div class="block">
<span>获取此通道的当前静音状态。</span>
<span>如果底层合成器不支持对该通道进行静音,则此方法始终返回<code>false</code></span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>通道静音,否则为
<code>false</code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setMute-boolean-"><code>setMute(boolean)</code></a>
</dd>
</dl> </li>
</ul> <a name="setSolo-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setSolo</h4> <pre>void setSolo(boolean soloState)</pre>
<div class="block">
<span>设置此频道的独奏状态。</span>
<span>如果<code>solo</code><code>true</code>只有这个通道和其他独奏频道才会发出声音。</span>
<span>如果<code>solo</code><code>false</code>则除非没有声道独奏,否则只有其他独奏声道才会发出声音,在这种情况下,所有未静音通道都会发出声音。</span>
<span>底层合成器可能不支持独奏频道。</span>
<span>为了验证对<code>setSolo</code>的调用是否成功,请使用<code>getSolo</code></span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>soloState</code> - 频道的新独奏状态
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#getSolo--"><code>getSolo()</code></a>
</dd>
</dl> </li>
</ul> <a name="getSolo--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>getSolo</h4> <pre>boolean getSolo()</pre>
<div class="block">
<span>获取此频道的当前独奏状态。</span>
<span>如果底层合成器在此频道上不支持独奏,则此方法总是返回<code>false</code></span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<code>true</code>通道是独奏的,如果没有
<code>false</code>
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/sound/midi/MidiChannel.html#setSolo-boolean-"><code>setSolo(boolean)</code></a>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>