## 概要

RainMIDIはMIDIファイルを再生、ピアノロール風に表示するためのフリーソフトです。
重たいMIDIファイル(通称：黒MIDI)をスムーズに再生することを目指して開発されました。

## 使用許諾

このソフトウェアは MIT License のもとで公開されています。
※以下の条件に従う限り、このソフトウェアを使用できます。

1. このソフトウェアはフリーソフトウェアです。個人使用に関わらず自由に使用してかまいません。
2. 複製、再配布を行う場合は、著作権表示、配布物とともに提供される文書を必ず含めること。
3. 動作環境や、プログラムの不具合などによって問題が生じる場合があります。それらを原因とした損害が発生しても、著作権者は一切の責任を取りません。

## 動作環境

快適に使用するためにはこれらのスペック以上を推奨します。

- OS: Windows 11
- CPU: Intel第10世代Core以上
- RAM: 16GB以上
- GPU: Geforce GTX 1060以上

なお、PCのスペックを満たしていない場合でも、設定項目の値を調整することで、動作が軽くなる可能性があります。
詳細はFAQをご覧ください。

MacやLinuxで動作させる場合は、別途JREをインストールする必要があります。
※WindowsはJREを同梱しているため、ユーザーが別途インストールする必要はありません。

## 起動方法・アンインストール方法

フォルダ内の`RainMIDI.exe`を実行することで起動できます。
アンインストールする場合は、exeを含むフォルダごと削除するだけで完了します。
※「プログラムの追加と削除」等の操作は必要ありません。

## 使い方

以下の操作を行うだけでMIDIファイルを再生できます。
特別な初期設定を必要としません。
※音が出ない場合は、FAQを参照してください。

### 基本操作

- `RainMIDI.exe`を起動する
- 「プレイヤーを起動」ボタンを押す
- MIDIファイルを画面内にドラッグアンドドロップする

## 設定項目

各設定の説明です。
音声やレンダラーの動作・見た目をカスタマイズできます。

項目 | 説明 | デフォルト | 範囲 / 備考
--- | --- | --- | ---
MIDIデバイス | 音声を出力するMIDIデバイスを指定します。 Autoにすると、利用可能なMIDIデバイスの中から最適なものが自動で選択されます。 | Auto | 利用可能なMIDIデバイス
Low-High間のベロシティを発声しない | MIDIファイル内の小さな音を無視して再生します。 値を大きくすると、より多くの音が無視され動作が軽くなります。 | 1 ～ 20 | 1 ～ 127
音量 | 出力音量を調整します。 | システムの音量 | 1 ～ 100%
デフォルトデザイン | デフォルトのデザインを設定します。 |  |
デザイン読込 | カスタムデザインを読み込みます。 |  |
VRAMを使用しない | 描画時にVRAMを使用しません。 ※画面がカクつく場合はONにしてください。 | OFF | ON / OFF
エフェクトを無効化 | 描画効果を無効化します。 ※画面がカクつく場合はONにしてください。 | OFF | ON / OFF
画面サイズ | ウィンドウのサイズを指定します。 | 720p | 720p / 480p / 360p
表示モード | 表示モードを指定します。 Rain Fallは、ノートが上から下に流れるモードです。 Side Flowは、ノートが左から右に流れるモードです。 | Rain Fall | Rain Fall / Side Flow
使用するRAM | 使用するRAMの量を指定します。 | 中 | 低 / 中 / 高 / 最大
ノーツ速度 | ノートの移動速度を指定します。 | 普通 | 遅い / 普通 / 速い / とても速い
描画順序 | MIDIトラックのノート描画順序を指定します。 | Track1が背面 | Track1が背面 / Track1が前面
モニター表示 | MIDI情報表示の種類を指定します。 | ノーツ解析 | なし / ノーツ解析 / カウンター / クラシック
ゴーストノートを表示しない | ゴーストノートを隠すかどうかを指定します。 ※ゴーストノートとは、MIDIファイル内のノートイベントのうち、再生されないもの(表示専用のノート)を指します。 | OFF | ON / OFF
設定を初期化 | すべての設定項目をデフォルトに初期化します。 |  |

## FAQ

Q. 音が出ない。楽器が鳴らない。

「MIDIデバイス」を確認してください。
選択肢の中に「Gervil」か「Microsoft GS Wavetable SW Synth」があるはずなので選択してください。

Q. 音が途切れる。

内蔵シンセ「Gervil」や「Microsoft GS Wavetable SW Synth」は、スペックの高いPCでも重たいMIDIファイルを再生すると音が途切れることがあります。 別途性能の高いシンセをインストールして、「MIDI Receiver」から選択してください。
以下のシンセは無料で使用でき、性能も高いためおすすめです。

- OmniMIDI: https://github.com/KeppySoftware/OmniMIDI/releases
- VirtualMIDISynth: https://coolsoft.altervista.org/en/virtualmidisynth

Q. 画面がカクカクする。重たい。

「VRAMを使用しない」をONにしてください。
※それでもダメなら、「使用するRAM」を低にしてください。
※それでもダメなら、「エフェクトを無効化」をONにしてください。(デザインは軽量なものになってしまいます)
※それでもダメなら、PCのスペックが足りていない可能性があります。orz

Q. 再生中にエラーになった。ソフトが落ちた。

Javaが確保できるRAM上限を超えた可能性があります。
PCスペックが十分であれば、ソフトを終了した後「RainMIDI-Ram8G.exe」または「RainMIDI-Ram16G.exe」を起動して再度お試しください。

## Zulu JDK/JREについて

本アプリケーションには、Azul Systems, Inc. により提供されるZulu OpenJDK が含まれています。
Zulu OpenJDK は、GNU General Public License version 2（GPLv2）および Classpath Exception のもとでライセンスされています。

- OpenJDK Project: https://openjdk.java.net/
- GPLv2 + Classpath Exception: https://openjdk.java.net/legal/gplv2+ce.html
- Azul Systems: https://www.azul.com/

Zulu JDK/JRE のソースコードは、Azul にリクエストすることで入手可能です（受領から3年間以内、実費のみ）。
詳細は azul_openjdk@azul.com にお問い合わせください。
使用しているJDK/JREのバージョン：Zulu 25.0.2+10

## FFmpeg、FFprobeについて

本アプリケーションは FFmpeg および FFprobe を使用しています。
FFmpeg は GNU Lesser General Public License（LGPL）バージョン 2.1 以降のもとでライセンスされています。

- FFmpeg プロジェクト：https://ffmpeg.org/
- FFmpeg のソースコード: https://ffmpeg.org/download.html

## 連絡先・リンク

ご質問やご要望がある場合は、以下の連絡先からお気軽にお問い合わせください。
不具合の報告も歓迎します！

- 作者メールアドレス: suka.dev6626@gmail.com
- GitHub
- Youtube
- X(Twitter)