|
SMFパックの実際の変換エンジンのアルゴリズムを紹介いたします。MIDIメッセージやSMFの仕様をある程度理解されている必要があります。
□ マックバイナリを削除する
マックバイナリの付いたSMFの場合、マックバイナリを削除することでファイルサイズを128Byte減少させることができます。
□ Universal SysEx を利用する
GS MASTER VOLUME EXC が11Byte、XG MASTER VOLUME EXC が9Byteなのに対し、Universal Master Volume EXCは8Byteで同じ内容を記述できます。これを利用してサイズを減らします。マスターボリュームを利用してフェードアウトなどの処理をしているデータには効果があります。 *Universal SysExを理解できない音源もあります。(SC55など) □ ランニングステータスを適用する
ランニングステータスルールを適用すると、特にFormat1のファイルサイズを縮小させることができます。このオプションはよほどのことが無い限りチェックするようにしましょう。 □ テキストメタイベントを削除する
曲のタイトル以外の、演奏には直接関係のない、テキスト、トラック名、歌詞、著作権表示、コメントなどを削除します。 □ チャネルプレッシャーを削除する
GS音源などは、初期設定ではチャネルプレッシャー(=アフタータッチ)に効果が割り当てられていません。しかし、鍵盤からリアルタイムで入力したデータなどでは、チャネルプレッシャー情報が入力されたままのデータも多くあります。これらのチャネルプレッシャーを削除しデータを圧縮します。
□ キープレッシャーを削除する
同様に、キープレッシャー(キーごとのアフタータッチ)を削除します。キープレッシャーに対応している音源は非常に少ないので、削除しても演奏にはあまり影響はない場合がほとんどです。
□ CC#64をノートイベントに変換する
SMFナイフ v1.30以降と互換の機能です。ダンパーペダル(CC#64)と全く同じ効果をノートオン/ノートオフのみで再現します。CC#64が全て削除されるという直接的な効果はもとより、ランニングステータスが効率的にかかるという間接的な効果により、非常に大きな圧縮効果が得られます。 * ハーフペダルに対応した音源の場合はハーフペダルのニュアンスはなくなります。また、CC#64がダイナミックモジュレーションソースに割り当てられており、エフェクトのON/OFFなどを兼ねている場合はその効果は発揮されなくなります。 □ 同値の連続は削除する
コントロールチェンジ、NRPN、及びピッチベンドの同値が連続した場合、無駄な後方のイベントを削除します。モジュレーションホイールを使った CC#1の入力データがあるデータなどでには非常に有効です。 * フォーマット1のファイルでは、同じMIDIチャネルの演奏データが複数トラックに入力されている場合があり、そのようなケースでは演奏内容に影響が出る場合もあります。 □ ノートオフ中の無駄なイベントを削除する
無音状態でのコントロールチェンジやピッチベンドの変化は演奏には無意味ですので、それを削除します。リアルタイムでピッチベンドを入力しているデータでは、ピッチベンダーホイールの「戻り」の時に、不要なデータが入力される場合が多いので、高い効果を発揮します。
* リリースの長い音色の場合、ノートオフ中のコントロールチェンジ等の変化が重要な意味を持つ場合もあります。その場合、演奏内容に影響が出てしまうこともあります。 □ ノートオフをノートオンベロシティ0に変換する
通常のSMFはノートオフメッセージはノートオンベロシティ0で代替してます。ただ、Visionなどシーケンサーは、「本当のノートオフメッセージ」を出力することができます。「本当のノートオフ」より「ノートオンベロシティ0」にしたほうが、ランニングステータスルールの適用率が上がりファイルサイズが小さくて済みます。このオプションを使うときは、「ランニングステータスを適用する」オプションも合わせてオンにしましょう。 | MIDIツールトップ | SMFパック | SMFパックPro | MCONV | MFT | ダウンロード | |