toMoEgah
ともえがー17 as of 121130 by ghost
ともえがー17 as of 121130 by ghost
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に変換・エクスポートすれば、本ツールに入力することができます。
標準ABC表記: abc2midi (abcMIDI あるいは ABCexplorer など)
LilyPond (GNU LilyPond あるいは Denemo など)、MusicXML (前述の MuseScore など)
一部のソフトウェアはフォーマット1のSMFを出力しますが、これはそのままでは本ツールに入力できません。前述の Domino で出力しなおすか、FC10 (YAMAHA SMAF GLOBAL) ないし ExSMF などの単体ツールを用いてフォーマット0に変換してください。
ANDALUZA (v0, shortened)
12 Danzas Españolas, No.5, Enrique Granados y Campiña
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)*
大半の変換パラメータはトラックの途中で変更することはできません。そのような入力がされた際の動作は未定義です。
音価表記の選択論理を調整した。
マルチプルノートオンに対する動作を変更した。
ティックタイムに対するクォンタイズが脱調した際に復帰しなくなる不具合を軽減した。これはr9以来の宿痾である。
極端に長い休符の出力を拒否する動作仕様を撤廃した。これはr9での退化である。
一部条件下で基準音価の選択を誤るバグを修正した。これはr12での退化である。
ポリフォニック数上限の既定値を5から6に変更した。これはr3での変更の取消である。
システム側の制限を超えるテンポ指定で異状を来すバグを修正した。これはr8での退化である。
モノモードにおいて一部条件下で残念なことになるバグを修正した。これはr10での退化である。
マルチプルノートオンに対する動作を変更した。
RPN: Fine Tuning の受信を追加した。
入力イベント数が極端に多い場合でも途中までは変換するようにした。
トラック末尾において不必要な和音表記を出力することがあるバグを修正した。これはr10での退化である。
システム側の最小音価の制約仕様変更に追従した。
ヴェロシティの事前統計を追加した。
音価表記の選択論理を調整した。
ドラムチャネルにおいて B, 罠に引っかかっていた問題を修正した。
完全な無限和音を使わないように変更した。これに伴い和音表記の文字数上限は再び無視するように変更した。
音価表記の仕様変更に対応した。これに伴いポリフォニック数1のモードをモノモードとは別に新設した。
ヴェロシティ出力および基準ヴェロシティの動的計画を追加した。
基準音価の選択を消費文字数の予測に基づく動的計画に換装した。
クォンタイザを消費文字数を予測考慮する新論理に換装した。
調性指示の出力を追加し、対応する音程出力に換装した。
トラックを {} で括って出力するように変更した。
出力パート名の埋め込み及びマルチトラック出力の機能を追加した。
Meta: Cue Point の内容を全トラックに透過出力する機能を追加した。
Meta: Text で Meta: Cue Point 等の代替とする機能を追加した。
各種コントロールチェンジ類の出力を有効化ないし追加した。
過密なコントロールチェンジ類を間引きする処理を追加した。
同値で重複する状態変更イベントを破棄する処理を追加した。
セットアップのみでノートのないトラックを出力しないように変更した。
Meta: Set Tempo 等に限り出力開始位置より前でも無視しないように変更した。
ドラムノートをアルペジオ保持論理の対象外に変更した。
雑多な変換パラメータを受信する機構を追加した。
同ノート連打障害の回避後処理を削除した。
ノートON中にテンポが変更された際のシステム側の音価解釈の不備を相殺する補正を追加した。
アルペジオ保持論理において先頭以外のノートのゲートタイムが調整されないバグを修正した。
16全音の倍数より僅かに長いステップタイムの出力を誤るバグを修正した。
一部条件下で和音数上限を超えたと判断される変換出力になるバグを修正した。これはr4での退化である。
モノモードの処理が不十分で、また同ノート連打時の発音不良障害の回避後処理と干渉していた問題を修正した。
<L:x> の自動選択論理を至極微妙に改善した。
和音表記の文字数の上限をまるっと無視していたバグを修正した。
同ノート連打時の発音不良障害の回避後処理での調整量を変更した。
一部条件下での冗長な出力表記を改善した。
チャネル走査が正常終了するまで入力ファイル名の表示をしないようにした。
極端に長い音価によりステップタイムが狂うバグを修正した。
アルペジオ保持の論理が絶望的に間違っていたバグを修正した。
同ノート連打で発音不良を起こす欠陥を回避する後処理を追加した。
ポリフォニック数上限の変更処理を追加し、既定値を6から5に変更した。
モノモードを追加した。
ステップタイムの生成を誤ることがあるバグを修正した。
ステップタイムの端数回避に失敗することがあるバグを修正した。
ゲートタイムのクォンタイズを切り上げに変更した。
無保証。本プログラムの運用は関連する権利処理を含む一切の事柄について完全に使用者の責任の下で行われなければならない。当方は本プログラムの動作内容や変換出力について所轄法の許す限りにおいて明示的にも暗黙的にも一切の保証をせず、また本プログラムの動作あるいは動作不良が直接的あるいは間接的に使用者ないし関連する権利者等に何らかの損害を生じせしめた場合においてもいかなる補償の義務も負わない。
[top]
Portions copyright © HUDSON SOFT all rights reserved