English / Japanese

# MIDITrail Ver.2.0.2 for macOS ユーザーマニュアル

Copyright (c) 2010-2022, WADA Masashi All rights reserved.
Web: https://osdn.jp/projects/miditrail/
Mail:

## 0. 目次

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

## 1. はじめに

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

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

## 2. 動作環境

対応OS： macOS 10.12(Sierra), 10.13(High Sierra), 10.14(Mojave), 10.15(Catalina), 11(Big Sur), 12(Monterey)

スムーズな画面表示を実現するため、高性能グラフィックチップが搭載されたMacの使用を推奨します。
MIDIデータに含まれるノート（音符）の数が多くなるほど、より性能の高いグラフィックチップが必要になります。
Macの性能が許す限り、大画面でお楽しみください。

## 3. 導入方法

### (1) インストール

配布されている圧縮ファイルを任意のフォルダに展開して、MIDITrailを開いてください。

### (2) 初回起動時の設定

MIDITrailを起動したら、最初にMIDI出力ポートの設定を行ってください。
「Option」メニューから「MIDI OUT...」を選択すると、MIDI OUT設定ダイアログが表示されます。

[Port A] ポートA
ポートAの出力先は必ず設定してください。通常のMIDIデータはポートAを使って演奏されます。
出力先に内部シンセサイザ(Internal Wavetable Synthesizer)を選択した場合は、 必ずウェーブテーブルファイルを選択してください。

[Port B,C,D,E,F] ポートB,C,D,E,F
複数ポートを利用するMIDIデータを再生する場合は、ポートB以降の出力先を設定してください。
複数ポートを利用するMIDIデータを再生しない場合は、ポートB以降の出力先を設定する必要はありません。
なお、複数ポートを利用するMIDIデータを再生するには、複数ポート対応のMIDIインターフェースと音源を用意する必要があります。

[Wavetable file path] ウェーブテーブル ファイルパス
内部シンセサイザ(Internal Wavetable Synthesizer)を利用する場合は、ウェーブテーブルファイルを選択してください。
ウェーブテーブルファイルの拡張子は、".dls"または".sf2"としてください。
MIDITrailはチャンネル番号10をパーカッション用として割り当てます。
MIDITrailの内部シンセサイザは非常に簡易的に実装されており、性能はよくありません。
ウェーブテーブルファイルによっては、音が正しく出力されないことがあります。

### (3) アンインストール

MIDITrailを展開したフォルダを削除してください。

## 4. 使用方法

### (1) 標準MIDIファイルの読み込み

「File」メニューから「Open File...」を選択すると、ファイル選択ダイアログが表示されます。 ここで標準MIDIファイル(*.mid)を選択してください。
また、標準MIDIファイル(*.mid)をMIDITrailのウィンドウにドラッグ＆ドロップすることにより、 ファイルを読み込むことができます。

### (2) 演奏の開始／一時停止／再開／停止

次のキーを押下するか、「Playback」メニューを利用してください。

キー | 動作
--- | ---
`SPACE` | 演奏の開始／一時停止／再開
`ESC` | 演奏の停止
`1` `2` | スキップ：後方／前方
`4` `5` | 再生スピード：ダウン／アップ
`F2` | 2倍速再生

### (3) フォルダ演奏

MIDITrailは、フォルダに格納されているMIDIデータファイルを順番に開くことができます。
ファイルを開く順番は、ファイル名の昇順です。

#### 1.フォルダの選択

「File」メニューの「Open Folder...」を選択すると、フォルダ選択ダイアログが表示されます。
ここで標準MIDIファイル(*.mid)が格納されているフォルダを選択してください。
フォルダをMIDITrailのウィンドウにドラッグ＆ドロップすることもできます。

#### 2. ファイルの切替

「File」メニューから「Previous File」「Next File」を選択すると、ファイルを切り替えることができます。
次のショートカットキーも利用できます。

キー | 動作
--- | ---
`COMMAND` + `B` `COMMAND` + `P` | 前のファイルを開く
`COMMAND` + `N` | 次のファイルを開く

#### 3.フォルダ演奏

「Playback」メニューの「Foler Playback」を選択すると、 MIDITrailは演奏終了後、自動的に次のファイルを開いて演奏を開始します。

### (4) 三次元空間内の視点移動

MIDIファイルを読み込んだ直後、および演奏中に、三次元空間内を移動して、 あらゆる方向からMIDIデータを眺めることができます。
FPS（一人称シューティング）ゲームでおなじみの操作で、三次元空間内を移動します。
初めてこの操作を体験する方は違和感を持つかもしれませんが、 一度慣れてしまうと非常に快適です。

#### マウス操作

画面をクリックすると、マウスによる視線移動モードになり、マウスカーソルが消えます。
マウスの移動によって、視線方向を制御できます。 もう一度クリックすると、視線移動モードが解除されます。
またマウスホイールを操作することにより、ピアノロールを回転させることができます。

#### キーボード操作

左手の人差し指を`D`、中指を`W`、薬指を`A`、に載せて操作します。

キー | 動作
--- | ---
`W` `S` | 前後に移動します。
`A` `D` | 左右に移動します。
`Q` `E` | 上昇下降します。
`Z` `C` | MIDIデータ進行方向に沿って移動します。 （ピアノロールレインの場合はキーボードに沿って移動します）
`SHIFT` + [`W` `S`] `SHIFT` + [`A` `D`] `SHIFT` + [`Q` `E`] `SHIFT` + [`Z` `C`] | `SHIFT`キーを押しながら移動キーを押すと、より高速に移動することができます。
`CTRL` + [`W` `S`] `CTRL` + [`A` `D`] | 視線方向を制御します。

#### 左利きの方へ

カーソルキーでも移動可能です。 マウスを左手で操作する方は、こちらの方が便利かもしれません。

キー | 動作
--- | ---
`↑``↓` | 前後に移動します。
`←``→` | 左右に移動します。
`PgUp` `PgDn` | 上昇下降します。
`,``.` | MIDIデータ進行方向に沿って移動します。 （ピアノロールレインの場合はキーボードに沿って移動します）
`SHIFT` + [`↑``↓`] `SHIFT` + [`←``→`] `SHIFT` + [`PgUp` `PgDn`] `SHIFT` + [`,``.`] | `SHIFT`キーを押しながら移動キーを押すと、より高速に移動することができます。
`CTRL` + [`↑``↓`] `CTRL` + [`←``→`] | 視線方向を制御します。

### (5) 視点の選択

Viewメニューから「Viewpoint 1 / 2 / 3」を選択するか、次のキーを押すと、標準の視点に移動することができます。

キー | 動作
--- | ---
`7` | 標準視点1に移動する
`8` | 標準視点2に移動する
`9` | 標準視点3に移動する

Viewメニューから「My Viewpoint 1 / 2 / 3」を選択するか、次のキーを押すと、 あらかじめユーザが保存しておいた視点に移動することができます。
現在の視点を保存するには、Viewメニューから「Save My Viewpoint 1 / 2 / 3」を選択するか、 次のキーを押します。

キー | 動作
--- | ---
`COMMAND` + `7` | 私の視点1に移動する
`COMMAND` + `8` | 私の視点2に移動する
`COMMAND` + `9` | 私の視点3に移動する
`OPTION` + `COMMAND` + `7` | 私の視点1を保存する
`OPTION` + `COMMAND` + `8` | 私の視点2を保存する
`OPTION` + `COMMAND` + `9` | 私の視点3を保存する

### (6) ウィンドウサイズの変更

「View」メニューから「Window size...」を選択すると、ウィンドウサイズ設定ダイアログが表示されます。
お好みのウィンドウサイズを選択してOKボタンを押してください。
なお、演奏中／一時停止中にウィンドウサイズの変更はできません。

お使いのMacによって、選択できるウィンドウサイズが変わります。
任意のウィンドウサイズを指定したい場合は、「Width」「Height」にサイズを記入してください。
「Aplly to the view area」を選択すると、設定値が画像領域のサイズに反映されます。

### (7) フルスクリーン表示

「View」メニューから「Full Screen」を選択すると、ウィンドウ表示とフルスクリーン表示を 切り替えることができます。
[Control] + [Command] + [F] キーを押して、表示を切り替えることも可能です。

### (8) 表示カウンタの種類

項目 | 内容
--- | ---
FPS | 1秒間あたりの画面描画回数(Frame Per Second)
TITLE | 曲名
TIME | 演奏時間
BPM | テンポ (Beats Per Minute)
BEAT | 拍子記号
BAR | 小節番号
NOTES | ノート数（音符の数）
SPEED | 再生スピード

### (9) ビューモード選択

「View」メニューでビューモードを選択することができます。 演奏中／一時停止中にビューモードの変更はできません。

### (10) 表示／エフェクト選択

「View」メニューで表示／エフェクトの有無を切り替えることができます。

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

### (11) MIDI IN モニタ

MIDI INデバイスで受信したデータをリアルタイム表示することができます。
「Option」メニューから「MIDI IN...」を選択すると、MIDI IN設定ダイアログが表示されます。

モニタリングするMIDI INデバイスを選択してください。
MIDI INで受信したデータをそのままMIDI OUTに出力する場合は、MIDITHRUを選択してください。
モニタリングを開始するには、「Playback」メニューから「Start Monitoring」を選択してください。
なお、MIDITrailはMIDI INで受信したデータを保存することはできません。

### (12) グラフィック設定

「Option」メニューから「Graphic...」を選択すると、グラフィック設定ダイアログが表示されます。
演奏中／一時停止中にグラフィック設定の変更はできません。

[Anti-aliasing] アンチエイリアシング
アンチエイリアシングを有効にすると、ギザギザ（ジャギー）が低減し、より綺麗な画像が表示されます。
しかしアンチエイリアシングの処理は重いため、高いレベルを選択するとパフォーマンスが落ちる可能性があります。
Macがアンチエイリアシングに対応していない場合は「Not supported」と表示されます。

[Background image file path] 背景画像ファイルパス
背景画像を表示したい場合は、画像のファイルパスを指定してください。
画像ファイルの拡張子は、".jpg"または".png"としてください。
MIDITrailは、ピクセルフォーマットが8bit RGBまたは8bit RGBAである画像ファイルをサポートしています。

[Quarter note length] 四分音符の長さ
ピアノロールの四分音符の長さを指定します。0%から1000%を指定できます。デフォルトは100%です。

### (13) カラー設定

画面に表示する色を設定することができます。
「Option」メニューから「Color...」を選択すると、カラー設定ダイアログが表示されます。
カラーパレットを選択して好みの配色に変更することができます。
演奏中／一時停止中にカラー設定の変更はできません。

「Edit...」ボタンをクリックすると、カラーパレット編集ダイアログが表示されます。
カラーパレットをカスタマイズすることができます。
デフォルトのカラーパレットを編集することはできません。

グラデーションツール
[Set Gradation Colors] ユーザが指定した開始チャンネルから終了チャンネルに対して、グラデーションカラーを設定することができます。

パラメータセットアップツール
[Set Default Colors] デフォルトカラーを設定します。
[Export Color Parameters...] カラーパラメータを出力します。出力されたパラメータをテキストエディタで編集することができます。
[Import Color Parameters...] カラーパラメータを入力します。テキストエディタで編集したパラメータを入力することができます。一部のパラメータだけを入力することも可能です。

### (14) MIDITrailコマンドラインインターフェース

ターミナルを使ってコマンドラインからMIDITrailを起動する場合は、以下の引数を指定できます。

    open ./MIDITrail.app --args [-p] [-q] [path/to/file]

引数 | 詳細
--- | ---
-p | MIDITrail起動直後に指定されたMIDIファイルの再生を開始します。 "path/to/file"が指定されていない場合は無視されます。
-q | MIDIファイルの再生終了後にMIDITrailを終了します。-pオプションが有効でない場合は無視されます。
path/to/file | MIDIファイルパスを指定します。 空白を含むパスを指定する場合はエスケープコードを使ってください。例："file\ name.mid"

MIDITrailのアイコンにMIDIファイルをドロップすると、MIDITrail起動時にファイルを開くことができます。

### (15) ゲームコントローラー

macOSがサポートしているゲームコントローラーを用いて視点操作することができます。

ボタン / スティック | 操作
--- | ---
Pause ボタン | 再生/一時停止
A ボタン | 再生/一時停止
B ボタン | 停止
X ボタン | 視点移動：下降
Y ボタン | 視点移動：上昇
L1/R1 ショルダーボタン | 視点切り替え
L2/R2 トリガーボタン | 再生スキップ
十字キー | 視点移動：前後左右
左スティック | 視点移動：前後左右
右スティック | 視線方向

## 5. 制限事項

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

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

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

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

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

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

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

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

## 6. FAQ

### (1) 画面がスムーズに描画されません

ウィンドウサイズを小さくして、アンチエイリアシングをOFFにしてください。レンダリングの負荷が減少します。
ウィンドウタイトルに表示されているFPS（1秒間あたりの画面描画回数）の値が60付近を維持できていない場合、 グラフィックチップの性能が不足しています。
なお、MIDIデータに含まれる音符の数が多いほど、描画処理が重くなります。
Macの処理能力を確認するために、音符の数が少ないMIDIデータを再生してみてください。
それでも改善されない場合は、高速なグラフィックチップが搭載されたMacを使用してください。

### (2) ウィンドウのサイズと位置をカスタマイズしたいのですが

次のファイルをProperty List Editorで編集することにより、ウィンドウのサイズと位置をカスタマイズできます。
Property List EditorはXcodeに付属するユーティリティアプリです。
ウィンドウのサイズを指定する場合は、"Width"と"Height"を編集してください。
ウィンドウの位置を指定する場合は、"WindowPosition","X","Y"を追加してください。

    ~/Library/Preferences/jp.sourceforge.users.yknk.MIDITrail.plist

    View
        WindowSize
            Height=600 (Type:String)
            Width=800 (Type:String)
        WindowPosition
            X=100 (Type:String)
            Y=200 (Type:String)

### (3) MIDITrailの動画を作成したいのですが、録画機能はありますか？

現在、MIDITrailには録画機能がありません。
しかしmacOSでは、Quick Time Playerを利用して動画ファイルを作成することができます。
(1) Quick Time Playerを開いて、「ファイル」->「新規画面収録」を選択します。
(2) 「オプション」から録画ファイルの保存先を選択します。
(3) 「収録」ボタンを押します。録画を止めるには、メニューバーにある録画停止ボタンを押します。

    MacのQuickTime Playerで画面を収録する
    https://support.apple.com/ja-jp/guide/quicktime-player/qtp97b08e666/10.5/mac/12.0

### (4) プレイリストは作成できますか？

現在、MIDITrailにはプレイリストの機能がありませんが、フォルダ演奏の機能を利用できます。
詳しくは、「4.使用方法」の「(3) フォルダ演奏」を参照してください。

## 7. カスタマイズ

MIDITrailのリソースに格納されている設定ファイルをテキストエディタで編集することにより、 自分の好みに合わせてカスタマイズすることができます。
なお編集するときは、改行コードを必ずCRLFにしてください。

ファイル | 内容
--- | ---
MIDITrail.app/Contents/Resources/conf/Player.ini | プレイヤー設定
MIDITrail.app/Contents/Resources/conf/PianoRoll3D.ini | ビューモード設定：Piano Roll 3D
MIDITrail.app/Contents/Resources/conf/PianoRoll2D.ini | ビューモード設定：Piano Roll 2D
MIDITrail.app/Contents/Resources/conf/PianoRollRain.ini | ビューモード設定：Piano Roll Rain
MIDITrail.app/Contents/Resources/conf/PianoRollRain2D.ini | ビューモード設定：Piano Roll Rain 2D
MIDITrail.app/Contents/Resources/conf/PianoRollRing.ini | ビューモード設定：Piano Roll Ring
MIDITrail.app/Contents/Resources/conf/PianoRoll3DLive.ini | ビューモード設定：Piano Roll 3D（MIDI IN モニタ）
MIDITrail.app/Contents/Resources/conf/PianoRoll2DLive.ini | ビューモード設定：Piano Roll 2D（MIDI IN モニタ）
MIDITrail.app/Contents/Resources/conf/PianoRollRainLive.ini | ビューモード設定：Piano Roll Rain（MIDI IN モニタ）
MIDITrail.app/Contents/Resources/conf/PianoRollRain2DLive.ini | ビューモード設定：Piano Roll Rain 2D（MIDI IN モニタ）
MIDITrail.app/Contents/conf/PianoRollRingLive.ini | ビューモード設定：Piano Roll Ring（MIDI IN モニタ）

MIDITrailのリソースを参照するには、MIDITrailのアイコンを右クリックして 「パッケージの内容を表示」をクリックしてください。

### (1) プレイヤーの設定

#### (a) プレーヤー制御

[PlayerControl]セクションを編集します。

値名 | 内容
--- | ---
AutoPlaybackAfterOpenFile | ファイルオープン後の自動演奏開始（0:無効 / 1:有効）

#### (b) ビュー制御

[ViewControl]セクションを編集します。

値名 | 内容
--- | ---
ShowFileName | タイトルの代わりにファイル名を表示する（0:無効 / 1:有効）

#### (c) スキップ制御

[SkipControl]セクションを編集します。

値名 | 内容
--- | ---
SkipBackTimeSpanInMsec | 後方スキップ時間間隔 (msec)
SkipForwardTimeSpanInMsec | 前方スキップ時間間隔 (msec)
MovingTimeSpanInMsec | スキップアニメーション時間間隔 (msec)

#### (d) 再生スピード制御

[PlaybackSpeedControl]セクションを編集します。

値名 | 内容
--- | ---
SpeedStepInPercent | 再生スピード変化間隔 (%)
MaxSpeedInPercent | 再生スピード最大値 (%)

#### (e) 演奏制御

[Playback]セクションを編集します。

値名 | 内容
--- | ---
DelayBetweenSongsInMsec | 曲間待機時間 (msec)（0 - 10000）

### (2) ビューモードの設定

#### (a) 視点移動速度のカスタマイズ

[FirstPersonCam]セクションを編集します。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
VelocityFB | o | o | o | 前後方向の移動速度 (m/s)
VelocityLR | o | o | o | 左右方向の移動速度 (m/s)
VelocityUD | o | o | o | 上下方向の移動速度 (m/s)
VelocityPT | o | o | o | 視線の角速度 (degree/s)
AcceleRate | o | o | o | SHIFTキー押下時の加速倍率（通常速度のn倍）
VelocityAutoRoll | o | o | o | ピアノロール自動回転角速度 (degree/s)
VelocityManualRoll | o | o | o | ピアノロール手動回転角速度 (degree/s)

#### (b) ピアノロール表示のカスタマイズ

[Scale]セクションを編集します。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
QuarterNoteLength | o | o | o | 四分音符の長さ(m)
NoteBoxHeight | o | x | o | ノートボックスの高さ(m)
NoteBoxWidth | o | x | o | ノートボックスの幅(m)
NoteStep | o | x | x | ノート間隔(m)
ChStep | o | x | o | チャンネル間隔(m)
RippleHeight | o | x | o | 波紋の高さ(m)
RippleWidth | o | x | o | 波紋の幅(m)
PictBoardRelativePos | o | x | o | ピクチャボードと再生面の直交位置 0.0 画像の左端が再生面と直交する 0.5 画像の中央が再生面と直交する 1.0 画像の右端が再生面と直交する
LiveNoteLengthPerSecond | o | o | o | モニタ表示の1秒あたりのノートの長さ(m)
LiveMonitorDisplayDuration | o | o | o | モニタ表示の時間間隔(msec)
RingRadius | x | x | o | リングの半径(m)

QuarterNoteLengthの値を小さくすると、箱庭的なMIDIデータ鑑賞ができます。

#### (c) 色のカスタマイズ

[Color]セクションを編集します。
RGBAのAは透明度です。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
NoteColorType | o | o | o | ノートの色種別 CHANNEL: チャンネル単位で色を割り当てる (Ch-XX-NoteRGBA) SCALE: 音階単位で色を割り当てる (Scale-XX-NoteRGBA)
Ch-01-NoteRGBA Ch-02-NoteRGBA ・・・ Ch-16-NoteRGBA | o | o | o | ピアノロールバーのチャンネル別の色(RGBA)
Scale-01-NoteRGBA Scale-02-NoteRGBA ・・・ Scale-12-NoteRGBA | o | o | o | ピアノロールバーの音階別の色(RGBA) 01=C,02=C#,03=D,04=D#,05=E,06=F,07=F#,08=G,F09=G#,10=A,11=A#,12=B
GridLineRGBA | o | x | o | グリッド線と小節線の色(RGBA) RGBAのAが00の場合、線は消えます。
PlaybackSectionRGBA | o | x | x | 再生面の色(RGBA)
CaptionRGBA | o | o | o | キャプション／カウンタの文字色(RGBA)
BackGroundRGBA | o | o | o | 背景色(RGBA)

#### (d) 発音中ノートのカスタマイズ

[ActiveNote]セクションを編集します。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
Duration | o | x | o | 発音によって光らせる時間間隔（ミリ秒）を指定します。
WhiteRate | o | x | o | 発音開始時点の最大白色率を指定します。 0.0 ピアノロールバーの色と同じ（光らない） 0.5 ピアノロールバーの色と白の中間色 1.0 白
EmissiveRGBA | o | x | x | 発音中ピアノロールバーのエミッシブ色(RGBA) このパラメータはPianoRoll2Dでは無視されます。 このパラメータはVer.2.0.0から廃止されました。
SizeRatio | o | x | o | 発音中ピアノロールバーのサイズ拡大率を指定します。 このパラメータはMIDI INモニタでは無視されます。

#### (e) 波紋のカスタマイズ

[Ripple]セクションを編集します。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
Duration | o | x | o | 波紋を表示する時間間隔（ミリ秒）を指定します。

#### (f) 星のカスタマイズ

[Stars]セクションを編集します。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
NumberOfStars | o | o | o | 描画する星の数

#### (g) ビットマップのカスタマイズ

[Bitmap]セクションを編集します。
MIDITrailインストール先のdataフォルダに表示したいビットマップファイルを格納し、 そのファイル名を設定ファイルに記述してください。
縦横サイズが大きすぎると、グラフィックチップによっては描画できない場合があります。
またMac OS X 10.5では、画像サイズが(2^n)*mでないとテクスチャの描画が崩れるようです。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
Board | o | x | o | ピクチャボードのビットマップファイル名（例："data/Board.bmp"） ピアノ鍵盤の代わりにお好みの壁紙を表示することができます。縦横サイズは任意です。 設定ファイル [Scale] / PictBoardRelativePos を編集して、再生面との直交位置を調整してください。
Ripple | o | x | o | 波紋のビットマップファイル名（例："data/Ripple.bmp"） ノートONになったときに表示される波紋を変更することができます。縦横サイズは任意です。 設定ファイル [Scale] / RippleHeight, RippleWidth を編集して、波紋の縦横サイズを調整してください。
Keyboard | x | o | x | キーボードのビットマップファイル名（例："data/Keyboard.bmp"） ピアノキーボードのテクスチャ画像です。縦横サイズは変更できません。

#### (h) ピアノキーボードのカスタマイズ

[PianoKeyboard]セクションを編集します。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
KeyDownDuration | x | o | x | キー下降時間（ミリ秒）
KeyUpDuration | x | o | x | キー上昇時間（ミリ秒）
KeyboardStepY | x | o | x | キーボード配置間隔：水平方向(m)
KeyboardStepZ | x | o | x | キーボード配置間隔：垂直方向(m)
KeyboardMaxDispNum | x | o | x | 最大キーボード表示数（0-16）
WhiteKeyColor | x | o | x | 白鍵の色(RGBA)
BlackKeyColor | x | o | x | 黒鍵の色(RGBA)
ActiveKeyColorType | x | o | x | 発音中キーの色種別 STANDARD: 標準 (ActiveKeyColor) NOTE: ノート色 (Ch-XX-NoteRGBA or Scale-XX-NoteRGBA)
ActiveKeyColor | x | o | x | 発音中キーの色(RGBA)
ActiveKeyColorDuration | x | o | x | 発音開始から最終中間色に変化させるまでの時間間隔（ミリ秒）
ActiveKeyColorTailRate | x | o | x | 最終中間色の定義：発音開始時の色（赤）とキー色（白／黒）の色比率（0.0-1.0）
KeyDispRangeStart | x | o | x | キー表示範囲：開始位置 (0-127) 一般的な88鍵ピアノのキー開始位置は21(A0)です。
KeyDispRangeEnd | x | o | x | キー表示範囲：終了位置 (0-127) 一般的な88鍵ピアノのキー終了位置は108(C8)です。

#### (i) ピクチャボードのカスタマイズ

[Board]セクションを編集します。
[Bitmap]セクションの"Board"で指定した画像について、 一部の矩形領域を表示する場合にこの設定を利用します。

値名 | PR-3D/2D | PR-Rain | PR-Ring | 内容
--- | --- | --- | --- | ---
ClipImage | o | x | o | 画像クリップ有無（0:なし／1:あり）
ClipAreaX1 | o | x | o | クリップ領域座標 X1
ClipAreaY1 | o | x | o | クリップ領域座標 Y1
ClipAreaX2 | o | x | o | クリップ領域座標 X2
ClipAreaY2 | o | x | o | クリップ領域座標 Y2

#### (j) 標準視点のカスタマイズ

[Viewpoint-2],[Viewpoint-3]セクションを編集します。視点1はカスタマイズできません。

値名 | PR-3D/2D | PR-Rain/2D | PR-Ring | 内容
--- | --- | --- | --- | ---
X | o | o | o | X座標
Y | o | o | o | Y座標
Z | o | o | o | Z座標
Phi | o | o | o | 方位角(度)
Theta | o | o | o | 天頂角(度)
ManualRollAngle | o | o | o | 手動回転角度(度)
AutoRollVelocity | o | o | o | 自動回転速度(度/秒)

## 8. 補遺

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

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

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

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

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

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

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

    Copyright (c) 2010-2022, WADA Masashi <>
    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.

## 10. 履歴

日付 | バージョン | 変更内容
--- | --- | ---
2010/10/21 | Ver.0.0.0 | MIDITrail Ver.1.1.1 for WindowsをベースにしてMac版の開発を開始
2010/12/26 | Ver.1.1.2 | Mac OS X版 初回正式リリース #23973 MIDITrail for Mac OS X 開発
2011/12/25 | Ver.1.1.3 | #25454 機能追加：グリッドラインの表示制御 #26985 機能追加：Mac OS X 10.7 (Lion) 対応 #26987 機能追加：再生スピード制御 #26988 機能追加：スキップ制御 #26989 機能追加：星とカウンタの表示制御 #27005 機能追加：How to viewダイアログにプレイヤー操作説明図を追加 #26990 バグ修正：ライセンスの記述ミス修正
2012/02/12 | Ver.1.2.0 | #27458 機能追加：MIDI IN モニタ機能追加 #27459 機能追加：MIDI OUT 自動設定機能追加 #27457 バグ修正：リピート有効のとき演奏終了直前の前方スキップで画面がちらつく
2014/01/02 | Ver.1.2.1 | #32544 マージ：MIDITrail Ver.1.2.1 for Windows 追加機能 #30545 機能追加：キー表示範囲指定 #30546 機能追加：背景色指定 #30547 機能追加：音階色指定 #30549 機能追加：フォントエラー発生時のメッセージ改良 #32543 機能追加：ウィンドウ表示位置指定 #30550 機能追加：仮想MIDIポート対応 #30551 機能追加：INIファイル改行コード対応 #32360 機能追加：自動視点保存機能の追加 #32361 機能追加：モニタリング用視点情報の保存 #32362 機能追加：ファイルオープン直後の自動再生機能の追加 #32363 機能追加：再生中のMIDIファイルオープン対応 #32366 機能追加：ファイル名表示機能の追加 #32367 機能追加：ビューモード「ピアノロールレイン2D」追加 #32427 機能追加：押下状態のキーにノートの色を反映する #32606 機能追加：サンドボックス対応 #32365 仕様変更：TITLE:を削除してタイトルのみを表示する #32730 仕様変更：開発環境をXcode4に移行 #30548 バグ修正：再生開始直後の演奏が引っかかる #32359 バグ修正：スキップ実行時にコントロールチェンジが送信されない #32542 バグ修正：MIDIデバイスのオフラインプロパティ取得エラー #32779 バグ修正：MIDI OUT設定でnoneを選択しても反映されない
2015/11/23 | Ver.1.2.2 | #35749 バグ修正：El Capitanにて起動時にエラー発生 #35750 仕様変更：OS X版開発環境をXcode7に移行 #35751 仕様変更：サンドボックス用セキュリティメッセージを廃止 #35775 仕様変更：SourceForge.JPサイト名称変更に伴うユーザマニュアル修正
2017/07/23 | Ver.1.2.3 | #37373 機能追加：ウィンドウサイズ任意設定対応 #37374 機能追加：背景画像表示機能追加 #37375 機能追加：発音中ノートボックスを大きく描画する #37371 仕様変更：macOS版 64bit対応 #37372 仕様変更：開発環境をXcode 8に移行 #37376 仕様変更：波紋の色を明るくする #37377 仕様変更：ユーザマニュアル記載のOS名称をmacOSに変更 #37378 バグ修正：Viewメニューから"Enter Full Screen"を削除 #37379 バグ修正：設定ダイアログ表示中にキー操作をメインウィンドウに反映させない
2019/04/14 | Ver.1.2.4 | #39113 機能追加：視点選択対応 #39114 バグ修正：Piano Roll 2Dでピアノロールバーがちらつく #39115 バグ修正：Piano Roll 3Dでタイムインジケータが不透明になる #39116 仕様変更：開発環境をXcode 9に移行
2019/05/03 | Ver.1.2.5 | #39188 機能追加：内部シンセサイザ追加 #39189 機能追加：四分音符長設定機能追加 #39190 バグ修正：背景画像描画メモリリーク修正 #39191 仕様変更：ユーザマニュアル補遺修正
2019/06/02 | Ver.1.2.6 | #39276 機能追加：フルスクリーン表示対応 #39277 機能追加：ゲームコントローラー対応 #39282 バグ修正：コード分析対応 #39284 バグ修正：一部のソースファイルで改行コードがLFでない
2019/11/06 | Ver.1.3.1 | #39718 機能追加：ビューモード「ピアノロールリング」追加 #39719 機能追加：ダークモード対応 #39720 仕様変更：開発環境をXcode 10に移行 #39721 仕様変更：ディスプレイリンク対応 #39722 バグ修正：エラーダイアログをメインスレッドで表示 #39723 バグ修正：日本語環境の判定に失敗する #39726 バグ修正：起動時に"Unsupported bitmap format"エラーが発生する
2021/04/02 | Ver.1.3.2 | #41895 機能追加：macOS 11 Big Sur 対応（Core MIDI 新API対応） #41896 機能追加：Retinaディスプレイ対応 #41894 仕様変更：開発環境をXcode 12に移行（M1 Mac対応) #41903 仕様変更：MIDIデバイスの識別方法を変更 #41897 バグ修正：Piano Roll 3Dで波紋の色が暗くなる #41898 バグ修正：ソースファイルの文字コードがShift-JISになっている
2021/05/23 | Ver.1.3.3 | #42364 機能追加：フォルダ演奏対応 #42365 機能追加：チャンクサイズ不正の標準MIDIファイル読み込み対応 #42366 機能追加：RIFF形式MIDIデータファイルの読み込み対応 #42367 機能追加：演奏一時停止時にサウンドオフメッセージを送信 #42368 バグ修正：App Store アップロード時に WARNING ITMS-90788 が表示される #42369 バグ修正：仮想マシン環境でMIDITrailが起動しない
2021/09/08 | Ver.1.3.4 | #42830 機能追加：曲間待機時間の設定を追加 #42831 バグ修正：データサイズゼロのシステムエクスクルーシブ送信でクラッシュする
2022/02/13 | Ver.1.3.5 | #43853 バグ修正：ファイルオープンパネルがフリーズする
2022/07/18 | Ver.1.3.6 | #45144 機能追加：視点保存機能を追加 #45145 機能追加：グリッドラインとタイムインジケータの表示切替対応 #45146 機能追加：表示/効果スイッチの選択状態を保存 #45147 機能追加：Piano Roll 3Dにライトを追加 #45148 機能追加：システムメッセージの解析処理を追加
2022/09/27 | Ver.2.0.0 | #45695 機能追加：カラー設定機能を追加 #45696 機能追加：Piano Roll Ringで小節リングを描画 #45697 仕様変更：Piano Roll Rainでキー押下時の色をノート色に変更 #45698 仕様変更：開発環境をXcode 13に移行 #45699 仕様変更：3DグラフィックスAPIをOpenGLからMetalに移行 #45732 仕様変更：起動時のアプリ名表示のアニメーションを変更
2022/10/26 | Ver.2.0.1 | #45971 機能追加：一時停止時と停止時にノートオフを送信、再開時にノートオンを送信 #45972 バグ修正：MIDIファイルからテンポが正しく読み取れていない
2022/10/30 | Ver.2.0.2 | #46016 バグ修正：アンチエイリアス設定不備によりアプリ起動時にMetal初期化処理でクラッシュする