blob: 9fa84daf483d32c18d4b19931d2293736899709d [file] [log] [blame]
<html devsite><head>
<title>MIDI 测试程序</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>以下测试可用于验证 Android 设备上的 MIDI 功能。成功执行这些测试是<a href="midi.html#claim-feature">声明 MIDI 功能</a>的先决条件。
</p>
<h2 id="preparation">准备</h2>
<h3 id="hardware">硬件</h3>
<p>
测试需要使用以下硬件。
</p>
<ul>
<li>配备 USB 连接器的 MIDI 键盘,例如 <a href="http://www.akaipro.com/product/lpk25">Akai LPK25</a></li>
<li>配备低功耗蓝牙 (BLE) 的 MIDI 键盘,例如 <a href="http://miselu.com/">Miselu C.24</a></li>
<li>USB 数据线</li>
<li>可将 USB-A 母头转换为 micro-USB 或 USB-C 公头的 USB On-The-Go (OTG) 适配器</li>
<li>运行 Android 6.0 Marshmallow 或更高版本的 Android 设备</li>
<li>可选:桌面设备</li>
</ul>
<h3 id="apps">应用</h3>
<p>
该测试程序涉及多个应用。您可以通过点击下表中的链接获取 GitHub 项目 <a href="https://github.com/philburk/android-midisuite">android-midisuite</a> 应用的源代码或通过 Google Play<em></em>™ 安装应用。
</p>
<table>
<tbody><tr>
<th>源代码</th>
<th>Google Play™</th>
<th>说明</th>
</tr>
<tr>
<td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiScope">MidiScope</a><a href="https://github.com/googlesamples/android-MidiScope">MidiScope</a></td>
<td><a href="https://play.google.com/store/apps/details?id=com.mobileer.example.midiscope">MIDI Scope</a></td>
<td>在屏幕上显示 MIDI 信息</td>
</tr>
<tr>
<td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiKeyboard">MidiKeyboard</a></td>
<td><a href="https://play.google.com/store/apps/details?id=com.mobileer.midikeyboard">MIDI Keyboard</a></td>
<td>在按屏幕上的音乐键盘时发送 MIDI 信息</td>
</tr>
<tr>
<td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiSynthExample">MidiSynthExample</a><br /><a href="https://github.com/googlesamples/android-MidiSynth">MidiSynth</a></td>
<td><a href="https://play.google.com/store/apps/details?id=com.mobileer.midisynthexample">MIDI Synth Ex</a></td>
<td>采用锯齿波振荡器的简易 MIDI 合成器</td>
</tr>
<tr>
<td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiBtlePairing">MidiBtlePairing</a></td>
<td><a href="https://play.google.com/store/apps/details?id=com.mobileer.example.midibtlepairing">MIDI BLE Connect</a></td>
<td>将 Android 设备与 BLE 外围设备配对使用</td>
</tr>
<tr>
<td><a href="https://github.com/philburk/android-midisuite/tree/master/MidiTools">MidiTools</a></td>
<td></td>
<td>上述应用的库依赖项</td>
</tr>
</tbody></table>
<p>
如果您选择从源代码开始编译,而不是通过 Google Play<em></em>™ 进行安装,请先使用附带的 <em></em>Android.mk 编译应用。然后使用 <a href="http://developer.android.com/tools/help/adb.html">Android 调试桥</a> (ADB) 安装该应用。例如,要安装 <em></em>MidiScope 应用,请按以下步骤操作:</p>
<ol>
<li>使用安装了 ADB 的工作站。</li>
<li>使用 USB 数据线将工作站连接到 Android 设备。</li>
<li>您可能需要在 Android 设备上允许 USB 连接;请参阅 <a href="midi.html#usb-peripheral">USB 外设模式</a></li>
<li>在工作站上,输入以下内容:</li>
</ol>
<pre class="devsite-click-to-copy">
<code class="devsite-terminal">cd <var>THIS_FOLDER</var></code>
<code class="devsite-terminal">adb install -r MidiScope.apk</code>
</pre>
<h2 id="virtual_synth_tests">虚拟合成器测试</h2>
<p>请注意,MIDI 输入端口只能建立一个连接。因此,如果另一个应用已经连接到输入端口,则该端口将不可用。如果您无法连接到输入端口,请尝试关闭其他应用。</p>
<p>所需的硬件:受测 Android 设备 </p>
<h3 id="simple_connection">简易连接</h3>
<p>所需的应用:MidiKeyboard、MidiSynthExample<em></em><em></em></p>
<p>这部分是测试设备枚举、虚拟设备、端口连接和消息发送等功能。</p>
<ol>
<li>将 Android 设备上的音量调节至大约一半的位置。</li>
<li>将手机切换为横屏模式。</li>
<li>启动 MidiKeyboard 应用。<em></em></li>
<li>从下拉菜单中选择 <strong>SynthExample</strong></li>
<li>弹奏琴键。您应该能听到 SynthExample 应用中播放的音符。<em></em></li>
<li><strong>返回</strong>按钮退出应用后,端口将关闭。</li>
</ol>
<h2 id="host_mode">USB 测试:主机模式</h2>
<p>所需的硬件:USB MIDI 键盘、USB 数据线、OTG 适配器</p>
<p>这些测试需要重复进行几次。我们发现,如果将设备插入和拔下数次,某些原型设备上会出现 USB 协议栈严重崩溃。</p>
<h3 id="keyboard_already_plugged_in">键盘已插入</h3>
<p>所需的应用:MidiSynthExample 或 MidiScope<em></em><em></em></p>
<p>这部分是在主机模式下测试 USB MIDI。</p>
<ol>
<li>将 Android 设备上的音量调节至大约一半的位置。</li>
<li>使用 OTG 适配器连接 USB 键盘。</li>
<li>启动 SynthExample 应用或 MidiScope 应用。<em></em><em></em></li>
<li>从菜单中选择 USB 键盘。将显示键盘的品牌信息。</li>
<li>在键盘上弹奏音符。如果运行 SynthExample,您应该能在手机上听到播放的音符。<em></em>如果运行 MidiScope,屏幕上将显示 NoteOn 和 NoteOff 消息。<em></em><em></em><em></em></li>
<li>拔下键盘。<em></em><em></em>“合成器的发送器”菜单应该会显示“- - - - -”。</li>
<li><strong>返回</strong>按钮退出应用。</li>
</ol>
<h3 id="hot_plug_usb_keyboard">热插拔 USB 键盘</h3>
<p>所需的应用:MidiSynthExample 或 MidiScope<em></em><em></em></p>
<p>这部分是在主机模式下测试 USB MIDI。</p>
<ol>
<li>将 Android 设备上的音量调节至大约一半的位置。</li>
<li>确保没有插入任何 USB MIDI 键盘。</li>
<li>启动 SynthExample 应用。<em></em></li>
<li>在中间位置,找到“合成器的发送器”旁边的菜单。<em></em>应该不会列出 USB 键盘。</li>
<li>使用 OTG 适配器连接 USB 键盘。</li>
<li>在中间位置,选择“合成器的发送器”旁边的 USB 键盘。<em></em>将显示键盘的品牌信息。</li>
<li>在键盘上弹奏音符。您应该能在手机上听到播放的音符。</li>
<li><em></em>在中间位置,选择“合成器的发送器”旁边的 <strong>- - - - -</strong></li>
<li>在键盘上弹奏音符。您应该不会听到任何声音。</li>
<li>在中间位置,选择“合成器的发送器”旁边的 USB 键盘。<em></em>将显示键盘的品牌信息。</li>
<li>在键盘上弹奏音符。您应该能在手机上听到播放的音符。</li>
<li>拔下合成器。<em></em><em></em>“合成器的发送器”菜单应该会显示“- - - - -”。</li>
<li><strong>返回</strong>按钮退出应用。</li>
</ol>
<h2 id="peripheral_mode">USB 测试:外围设备模式</h2>
<p>所需的硬件:USB 数据线、OTG 适配器</p>
<h3 id="android_to_android">Android 设备到 Android 设备</h3>
<p>所需的应用:受测 Android 设备上的 MidiKeyboard,另一台 Android 设备上的 MidiScope。<em></em><em></em></p>
<p>将 Android 设备用作另一台 Android 设备的外围设备控制器。为了帮助测试该模式,请使用另一台在主机模式下运行的 Android 设备。请注意,您可以修改测试,以便与运行数字音频工作站 (DAW) 软件(如 workGarageBand)的台式机配合使用。</p>
<ol>
<li>将 USB 数据线连接到受测 Android 设备(Android 设备 <strong>A</strong>)。</li>
<li>使用 OTG 适配器将数据线的另一端连接到另一台 Android 设备 <strong>B</strong>(在主机模式下运行)。</li>
<li>在 Android 设备 A 上执行以下操作:
<ol>
<li>用手指从屏幕顶部向下滑动。</li>
<li>选择<strong>正在通过 USB 充电</strong>图标。</li>
<li>选择 <strong>MIDI</strong></li>
<li>启动 MidiKeyboard 应用。<em></em></li>
<li>从顶部的“按键接收器”菜单中选择 <strong>Android USB 外设端口</strong><em></em></li>
</ol>
</li>
<li>在 Android 设备 B 上执行以下操作:
<ol>
<li>启动 MidiScope 应用。<em></em></li>
<li>选择另一台 Android 设备作为源设备。</li>
</ol>
</li>
<li>在 Android 设备 A 上执行以下操作:
<ol>
<li>在键盘上弹奏音符,并在 Android 设备 B 上查找 NoteOn 和 NoteOff。<em></em><em></em></li>
</ol>
</li>
</ol>
<h2 id="bluetooth_le_test">BLE 测试</h2>
<p>所需的硬件:支持 BLE 的 MIDI 键盘</p>
<h3 id="basic_pairing_and_playing">基本配对和弹奏</h3>
<p>所需的应用:MidiBtlePairing、MidiSynthExample<em></em><em></em></p>
<p>这部分是测试通过 BLE 连接到 Android 设备的键盘。</p>
<ol>
<li>重新启动 Android 设备。</li>
<li>开启 BLE 键盘。<br />
(按下靠近背面的按钮,开启 Miselu C.24 键盘,从而使其弹开。在配对模式下,C.24 上的电源按钮闪烁蓝光。)</li>
<li>启动 MidiBtlePairing 应用。<em></em>该应用具有 MIDI + BTLE<em></em> 图标。</li>
<li><strong>蓝牙扫描</strong>按钮。</li>
<li>选择所需的 BLE 外围设备。</li>
<li>应用应该返回到主页面,您应该会看到列出的外围设备。如果您使用的是 C.24,那么您会发现 C.24 上的指示灯变绿,表明已配对成功。</li>
<li><strong>主屏幕</strong>按钮(而非<strong>返回</strong>按钮)退出应用。</li>
<li>启动 SynthExample 应用。</li>
<li>从菜单中选择 BLE 键盘作为发送器。</li>
<li>在 BLE 键盘上弹奏琴键后,您能够在 Android 设备上听到播放的音符。</li>
</ol>
</body></html>