| <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> |