301 Moved Permanently

Moved to https://vow.g.hatena.ne.jp/vow/

r17

ともえがー17

(続き)

Download: toMoEgah.exe r17 (PE/Win32 console Unicode, 9KB) [7z 6KB]

スタンダードMIDIファイルを もえ.abc (121023仕様) のようなものに変換するツールです。配布書庫を解凍した後、 .exe のアイコンに .mid ファイルをドロップするか、コマンドプロンプトで普通に実行してください。入力ファイル名以外のオプション指定等は一切ありません。

本ツールに関するお問い合わせは、私の所属FSのBBSに書き置きするか、あるいはゲーム内で直接私を捕まえて問い質すかしてください

  • MIDI関連規格についての基礎知識は各自で仕入れてください。また個別のシーケンサの使い方などについては質問されても応対しかねます。



入力ファイルの作成について

原則として .mid の編集操作は必要になりますので、まずはお手頃なシーケンサのソフトウェアを一つ適当に用意することをおすすめします。

  • スタンダードMIDIファイル (SMF) の形で出力・保存することができるなら、商用・非商用を問わず、どのようなソフトウェアを使って演奏データを作成してもかまいません。ここではとりあえずの手持ちが無い方向けに、Windows上で利用可能な非商用ソフトウェアをいくつか紹介しておきます。
    • ピアノロール型: Domino (TAKABO SOFT)。[ファイル]→[SMF書き出し] で「フォーマット」に「format 0」を指定します。
    • 五線譜型: MuseScore。[ファイル]→[コピーを保存] で「ファイルの種類」に「標準 MIDI ファイル」を指定します。
    • 他にも古くは Cherry に始まり、比較的最近では 世界樹 など色々なものがあります。お好みにあわせて選んでください。
  • その他の形式の譜面・演奏データであっても、各対応ソフトウェアの側で一旦SMFに変換・エクスポートすれば、本ツールに入力することができます。
  • 一部のソフトウェアはフォーマット1のSMFを出力しますが、これはそのままでは本ツールに入力できません。前述の Domino で出力しなおすか、FC10 (YAMAHA SMAF GLOBAL) ないし ExSMF などの単体ツールを用いてフォーマット0に変換してください。

サンプル入力ファイル

title
ANDALUZA (v0, shortened)
reference
12 Danzas Españolas, No.5, Enrique Granados y Campiña
source smf
Download: ANDALUZA.mid [midi sequence, 10KB]

ほぼ譜面通りに音符を並べただけでアーティキュレーションを全く施していない状態のものなので、音楽的には期待しないでください。テキストメタイベントによる代替形式で「キューポイント」「出力パート名」「マルチトラック出力」が仕込んであります。



入力仕様

  • GM Lite 1.0 準拠相当のSMFパーサです。フォーマット0の常識的な .mid ファイルを与えてください。フォーマット1/2には対応しません。もえ的に演奏できる見込みのないような長いファイルは与えないでください。
  • 本ツールの側では不適切な入力データを勝手に補正するような気の利いた機能は用意していません。特に再生用に調整された既存のMIDIデータをそのまま与えた場合、消費文字数の面で大変なことになる場合が多いので注意してください。
  • ノートイベントのあるチャネルは全て処理します。既定では各チャネルをそれぞれ *_A.abc*_P.abc というファイル名で出力します。

以下のイベントは一般的なMIDI実装と同様に受信し、変換出力に反映します。

  • Note On (+ velocity)
  • Note Off, CC: Sustein, CC: Sostenuto
  • CC: Volume, CC: Expression
  • Program Change, CC: Panpot, CC: Modulation
  • Pitch Bend, RPN: Pitch Bend Sensitivity, RPN: Fine Tuning

既存のデータから変換を行う場合は、予め全ての Polyphonic Aftertouch を削除しておいてください。本ツールではこのイベントを変換パラメータの受信に使っているため、本来の意味での当該イベントがあると誤動作を起こします。また同様に特定の CC (Control Change) や Meta も特別な意味を持ちますので注意してください。

  • 変換出力の表記上のポリフォニック数の上限は CC: Poly のDataで指定することができます。既定値は6です。あるいは CC: Mono を指定するとモノモードになり、後着優先で単音に変換します。
  • Meta: Set Tempo ではテンポ値の端数を切り下げて出力します。このイベントと直前の出力イベントとの間隔が極端に短い場合、システム側の制約によりテンポ変更のタイミングが維持できず、結果トラック間で僅かな同期ずれを生じる場合があります。
  • Meta: Key Signature は調性指示としてそのまま変換出力に使用します。却って臨時記号が増えて損となるような場合には、CC: Omni Off を指定することでトラック単位で無視させることができます。この際Dataとして64を±0とする値を指定すると任意の調号を出力できます。
  • 最初に現れた空の Meta: Cue Point はセットアップの終了位置として扱い、それ以前に位置する一切の出力イベントを破棄します。出力の必要なコントロールチェンジ類はセットアップより後に配置してください。
  • 空でない Meta: Cue Point の内容テキストはそのまま全トラックに透過出力します。内容には一切手を加えませんので、例えば % でコメントを始めた場合はちゃんと改行して終わらせないと酷いことになります。
  • Meta: Instrument Name を指定すると、これをパート名として出力ファイル名の末尾に付加します。Meta: Channel Prefix が先行していなかった場合は、直前の一般イベントと同じチャネルに対する指定として解釈します。チャネル指定がうまくいかない場合は、先頭に「#1 」等と記述することで指定先を明示できます。パート名として「>1」等と記述すると、当該チャネルを指定したチャネルに結合しマルチトラックとして出力します。

ドラムチャネル変換マップ

Download: setDrums.mid (ドラムセット) | setPercs.mid (パーカッションセット)

単純に一対一で変換するドラムチャネルの雛型です。普通に .mid を直接再生した場合と同じ発音になります。

  • 入力ノート番号毎に Polyphonic Aftertouch のPressure値で変換先のノート番号を指定します。入力ノートは 12〜108 のみ受け付けます。変換先のノート番号は C が60、c が72です。変換先が指定されなかったノートは破棄します。
  • ドラムチャネルの判別はこのノート変換マップの指定の有無によって行います。チャネル番号で固定とか Program Change 時の Bank Select に反応とか System Exclusive とかではありません。
  • 既存のデータから作る場合はノートを直接変更せずに変換マップの方を追加・変更することで代理発音のような使い方をした方が手っ取り早いですが、この場合には当然 .mid を直接再生した際の発音と変換結果の発音は一致しなくなります。
  • ドラムチャネルと言っても変換処理自体はノーマルチャネルとほぼ同じです。ノートOFFが実際には受信されないドラムノートであっても、適当なゲートタイムを与えておかないと消費文字数の面で大損をしますので注意してください。

注意事項

  • Meta: Cue Point 等を入力できないシーケンサの場合は、先頭に $x と記述した通常の Meta: Text で代替することができます。
    • $C (Meta: Cue Point) 例:「$C」(空の Cue Point)
    • $I (Meta: Instrument Name) 例:「$I#2 >1」(チャネル2をチャネル1に結合しマルチトラックにする)
  • 一般的なMIDI実装と同様に、イベントの解釈は厳密に .mid ファイル上でのイベント順序に依存します。同ティックに並んでいるイベント間での順序も意味を持ちますので注意してください。
  • 入力データ上で発音期間の重複している同一ノート (いわゆるマルチプルノートオン) に対する動作は未定義です。リミテッドマルチとかいうような意味不明な動作には対応しません。
  • CC: Poly で設定する表記上のポリフォニック数の上限は実際の同時発声数とは無関係です。ましてや演奏時の消費ポリフォニック(エレメント)数とは全く一致しません。また CC: Mono でモノモードにした場合でも和音表記自体は使用されることがあります。
  • マルチトラック出力の際、トラック間でのノートの重複やコントロールチェンジ類の衝突などは一切チェックしません。単に入力チャネル単位で変換したものをそのまま束ねて出力しているだけなので、トラック間での競合は予め入力データ上で解決しておいてください。
  • ステップタイムに対するクォンタイズによりノートを移動する際、当該ノートのゲートタイムは応じて短縮します。このため入力データのステップが揃っていないのにゲートだけ揃っていた場合、クォンタイズによりゲートに端数が生じ却って文字数が増加することがあります。
  • 入力データ上で使われているヴェロシティ値の間隔が、ヴェロシティ調整記号のステップ (現時点のシステム側では5に固定) に揃っていない場合、たとえ単音であっても出力ヴェロシティに多少の誤差を生じることがあります。
  • システム側に表記上の文字数での制限が(仕様として書かれているものもいないものも含め)何種類かありますが、それらの回避は特にしていませんしチェックもしていません。このため特定の条件下では見た目には合っていても再生が狂う変換となることがあります。現時点では仕様です。
  • 特定のノート番号に対する Polyphonic Aftertouch により、その他の変換パラメータを変更することができます。但しこの領域の動作は多分に流動的なことに注意してください。既定値は全て0です。*を付したパラメータは正負の値を取り、64を±0とする値で指定します。
    • 109: 連続する同種コントロールチェンジ類の繰り上げ上限 (0〜127, 単位1/192)
    • 110: ティックタイムに対するクォンタイズのスコア閾値 (-63〜2)*
    • 111: ゲートタイムに対するクォンタイズのスコア閾値 (-63〜2)*
  • 大半の変換パラメータはトラックの途中で変更することはできません。そのような入力がされた際の動作は未定義です。

r16からの変更点

  • 音価表記の選択論理を調整した。
  • マルチプルノートオンに対する動作を変更した。


無保証。本プログラムの運用は関連する権利処理を含む一切の事柄について完全に使用者の責任の下で行われなければならない。当方は本プログラムの動作内容や変換出力について所轄法の許す限りにおいて明示的にも暗黙的にも一切の保証をせず、また本プログラムの動作あるいは動作不良が直接的あるいは間接的に使用者ないし関連する権利者等に何らかの損害を生じせしめた場合においてもいかなる補償の義務も負わない。