English / Japanese

# MIDITrail Ver.1.2.0 for iOS

Copyright (c) 2010-2018, WADA Masashi All rights reserved.
Web: https://osdn.jp/projects/miditrail/
Mail: yknk@users.osdn.me

## 0. 目次

1. はじめに
2. 動作環境
3. 導入方法
4. 使用方法
5. 設定
6. 制限事項
7. 著作権とライセンス
8. 補遺
9. 履歴

## 1. はじめに

MIDITrailは、MIDIデータを三次元可視化するMIDIプレーヤーです。
空間を移動することにより、演奏を聴くだけでなく、見て楽しむことができます。
標準MIDIファイルFormat0/1、および複数ポート出力に対応しています。
MIDITrailは、Windows、macOS、iOSに対応しています。

スクリーンショット：ピアノロール3D
スクリーンショット：ピアノロールレイン

## 2. 動作環境

デバイス：iPad, iPhone, iPod touch
OS：iOS 8.0

MIDIデータに含まれるノート（音符）の数が多くなるほど、より高いグラフィック性能が必要になります。

## 3. 導入方法

### (1) MIDIファイルの準備

MIDITrailは、標準MIDIファイル(Format0/1)に対応しています。
MIDITrailで再生するMIDIファイルは、事前にMacまたはPCからiOSデバイスに転送しておく必要があります。
iOSデバイスをMacまたはPCに接続してからiTunesを起動してください。ファイル共有機能を用いてMIDIファイルを転送することができます。

### (2) 音源の準備

Core MIDIに対応した音源を別途用意するか、内部ウェーブテーブルシンセサイザを利用してください。
音源を用意する方法は三つあります。

一つめは、Core MIDIに対応したMIDIインターフェースと外部MIDI音源を接続する方法です。
（MIDIインターフェース：iRig MIDI, i-MX1 など）

二つめは、Virtual MIDIポートとバックグラウンド演奏に対応したシンセアプリを利用する方法です。
（シンセアプリ：Sound Canvas for iOS, bs-16i など）

三つめは、内部ウェーブテーブルシンセサイザを利用する方法です。
利用するウェーブテーブル(DLS/SF2)を、あらかじめiOSデバイスに転送しておく必要があります。

音源の準備ができたらMIDITrailを起動して、MIDI出力先を選択してください。

## 4. 使用方法

### (1) MIDIファイルの選択

「MIDI Files」タブを選択すると、デバイスに保存されているMIDIファイルの一覧が表示されます。
MIDIファイルは、iTunesのファイル共有を用いてあらかじめデバイスにコピーしておいてください。
MIDIファイルをタップすると、MIDITrailはファイルを読み込んで、メイン画面を表示します。

### (2) メイン画面

ボタンを押すことで、演奏の開始や停止を行います。

スクリーンをスワイプすることで、空間移動や視線方向の変更ができます。

### (3) MIDI IN モニタ

「MIDI IN Monitor」タブを選択してから「Start Monitoring」ボタンを押すと、MIDITrailはメイン画面を表示します。
このメイン画面で、MIDI INデバイスで受信したデータをリアルタイムで参照することができます。
あらかじめSettingタブで、モニタリングするMIDI INデバイスを選択してください。
モニタリング中に、MIDI INで受信したデータをMIDI OUTに出力する場合は、MIDITHRUを有効にしてください。
注意：MIDITrailは、MIDI INで受信したデータを保存することはできません。

## 5. 設定

「Setting」タブを選択すると、設定項目が表示されます。

### (1) View Mode

ビューモードを選択します。

### (2) Display Item

メイン画面で表示する項目を選択します。

### (3) MIDI OUT Device

MIDI出力デバイスを選択します。
ポートAの出力先は必ず設定してください。通常のMIDIデータはポートAを使って演奏されます。
複数ポートを利用するMIDIデータを再生する場合は、ポートB以降の出力先を設定してください。
複数ポートを利用するMIDIデータを再生しない場合は、ポートB以降の出力先を設定する必要はありません。
複数ポートを利用するMIDIデータを再生するには、 複数の音源を用意する必要があります。
出力先に内部シンセサイザ(Internal Wavetable Synthesizer)を選択した場合は、
必ずウェーブテーブルファイルを選択してください。

### (4) Internal Wavetable Synthesizer

Wavetable File: 内部シンセサイザを利用する場合は、ウェーブテーブルファイル(DLS/SF2)を選択してください。
ウェーブテーブルファイルはiTunesのファイル共有機能を用いて、MacまたはPCからiOSデバイスに転送する必要があります。
ウェーブテーブルファイルの拡張子は、".dls"または".sf2"としてください。
注意：MIDITrailはチャンネル番号10をパーカッション用として割り当てます。
注意：ウェーブテーブルファイルによっては、音が正しく出力されないことがあります。

### (5) MIDI IN Device

モニタ対象のMIDI入力デバイスを選択します。

### (6) MIDI IN Monitor

MIDITHRU: MIDI INで受信したデータをそのままMIDI OUTに出力する場合は、MIDITHRUを有効にしてください。

### (7) MIDI File

Character Encoding: MIDIファイルの文字エンコードを選択してください。MIDIファイルの曲タイトルを表示する際に利用します。

### (8) Background Image

Image File: 背景画像を表示する場合は、画像ファイルを選択してください。
画像ファイルはiTunesのファイル共有機能を用いて、MacまたはPCからiOSデバイスに転送する必要があります。
画像ファイルの拡張子は、".jpg"または".png"としてください。
読み込み可能な画像の最大サイズは4096x4096ピクセルです。

## 6. 制限事項

### (1) 演奏と画面表示の同期について

アプリケーションが発音を指示してから実際に音が鳴るまでに遅延が生じる音源を利用する場合、 演奏と画面表示がずれる可能性があります。

### (2) グラフィックチップの性能について

MIDITrailは、MIDIデータに含まれるすべてのノートをリアルタイムレンダリングします。
このため、ノート数が多いMIDIデータほど画面描画処理の負荷が高くなります。
ノート数が数万個に達するMIDIデータを快適に鑑賞するには、 高性能なグラフィックチップを搭載したiOSデバイスを使用してください。

### (3) 複数ポート出力について

標準MIDIファイルの仕様には、複数ポート出力への対応方法は定義されていません。
しかし特定のパラメータを用いて複数ポート出力に対応する方式(*1)が存在します。
MIDITrailは、この方式に沿って複数ポート出力対応を行っていますが、 MIDIデータによってはうまく再生できない可能性があります。
(*1) メタイベント(FF 21 01 pp)を出力先ポート番号の切替とみなします。

### (4) 標準MIDIファイル対応について

デルタタイムが実時間タイムコードで表現されているMIDIデータには対応していません。

## 7. 著作権とライセンス

MIDITrailの著作権は和田雅志が保有しています。 MIDITrailは修正BSDライセンスを適用して公開しています。

Copyright (c) 2010-2018, WADA Masashi <yknk@users.osdn.me> All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

## 8. 補遺

### (1) ピアノロール表示の構造

(a) ピアノロール3Dの三次元可視化方式

複数ポートを使用するMIDIデータを読み込んだ場合、未出力ポートを省略して表示します。
例えばポートA,C,Eに出力するMIDIデータの場合、ポートA,C,Eを隣接させて表示し、ポートB,Dは省略します。

(b) ピアノロールレインの三次元可視化方式

複数ポートを使用するMIDIデータを読み込んだ場合、現状はポートAのキーボードのみが表示されます。
ピアノロールバーは全ポート分が表示されます。

### (2) ピッチベンドについて

発音中のピアノロールバーは、ピッチベンドの変化に合わせて上下または左右に移動します。
MIDIアニメ作品の中には、ピッチベンドを用いて、 音の高さを変えずにバーの表示位置を意図的にずらしているものがあります。
MIDIアニメ作品が正常に表示されない場合は、バーの表示位置を固定するために、 設定でピッチベンド表現(Pitch Bend Motion)を無効にしてください。

## 9. 履歴

日時 | バージョン | 変更内容
--- | --- | ---
2012/03/17 | Ver.0.0.0 | MIDITrail Ver.1.2.0 for Mac OS XをベースにしてiOS版の開発を開始
2012/08/05 | Ver.1.0.0 | iOS版 初回正式リリース #29179 MIDITrail for iOS 開発
2014/01/19 | Ver.1.0.1 | #32933 マージ：MIDITrail Ver.1.2.1 for Mac OS X 追加機能 #32367 機能追加：ビューモード「ピアノロールレイン2D」追加 #32427 機能追加：押下状態のキーにノートの色を反映する #32915 機能追加：iPhone5対応 #32916 機能追加：他アプリからのMIDIファイル受け取り対応 #32941 仕様変更：Base SDKをiOS6.1に変更 #30548 バグ修正：再生開始直後の演奏が引っかかる
2017/2/12 | Ver.1.1.0 | #35775 仕様変更：SourceForge.JPサイト名称変更に伴うユーザマニュアル修正 #36981 仕様変更：iOS版 64bit対応 #36982 機能追加：iPhone6,iPhone6 Plus,iPad Pro対応 #36983 機能追加：画面操作ロック機能追加 #36984 機能追加：背景画像表示機能追加 #36985 機能追加：複数ポート出力対応 #36986 仕様変更：起動画面のストーリーボード化 #36987 バグ修正：日本語環境のロケール判定に失敗する
2017/2/20 | Ver.1.1.1 | #37007 バグ修正：カウンタの数値が正しく表示されない
2018/1/15 | Ver.1.1.2 | #37881 機能追加：ファイル一覧にファイル削除とファイル名変更の機能を追加 #37882 機能追加：発音中ノートボックスを大きく描画する #37883 仕様変更：波紋の色を明るくする #37884 仕様変更：iPhone 6以降のカウンタ文字列にラベルを追加 #37885 仕様変更：開発環境をXcode 9に移行 #37616 バグ修正：Piano Roll 2Dでピアノロールバーがちらつく #37860 バグ修正：メインスクリーンでタッチしてもボタンが表示されない
| 2018/2/20 | Ver.1.2.0 | #37955 機能追加：内部シンセサイザ追加 #37971 機能追加：背景画像ファイル一覧にファイル削除とファイル名変更の機能を追加