Copyright: TMIDIヘルプ version.1.1 (C)1996 by T.Ohtake
Citation: TMIDIヘルプ version.1.1 (C)1996 by T.Ohtake


インデックス

1997/2/10 version 1.4

 このヘルプファイルと、TMIDI本体とでバージョンが異なる記述がある場合がありますので、あらかじめご了承ください。

著作権

TMIDI Player for Windows 95 version 1.4 [1997/2/10]

Copyright(C) 1996,97 by T.Ohtake. All rights reserved.

配布制限

TMIDIはフリーソフトです。したがってこのソフトに関する著作権は私こと大竹敏史が保持します。

また、再配布に関しては、実費以外の金銭の授受が伴わない限り自由です。転載する場合は、事後承諾で構いませんのでE-Mailで報告してください。

雑誌／書籍などに掲載する場合は、事前に承諾が必要です。

無保証

TMIDIを使用したことによる、直接あるいは間接的な損害に関する一切の責任を負いかねますのでご了承ください。

連絡先

E-Mail: c396022@ns.kogakuin.ac.jp

たまに停電やサーバーがダウンしているときがあるので、そのときはc396022@ccs.kogakuin.ac.jpにお願いします。

TMIDIサポートページURL http://www.ns.kogakuin.ac.jp/~c396022/

意見、要望、バグレポート、感想等、大歓迎です。お待ちしております。

動作機種、使用MIDI I/F、使用楽器を添えてくださると大変助かります。

謝辞

このソフトの制作に当たっては、次のような書籍／資料を参考にしました。

Borland C++ 4.0/4.5/5.0各説明書,Borland

CVS ver.5.06説明書, Hajime Koikeさん

DirectDrawプログラミング,Bret Timmins (平林雅英訳),翔泳社

まぐろーだー仕様書,Woody-RINNさん

MIMPI Ver.4.23 for PC-98の説明書, マスターネットの斎藤さん

MS-DOS 3.3C for PC-9801のユーザーズリファレンスマニュアル,NEC

SC-88説明書,Roland

The BASICより 「譜面エディタをつくろう」,林檎郎,技術評論社

VSC-55試用版説明書,Roland

Win32オンラインヘルプ(英語版), Microsoft

Win32sオンラインヘルプ, Microsoft

Ｗｉｎｄｏｗｓシンプルサンプルパーツ,瀬戸内海ウィンドウズ倶楽部,技術評論社

演出君メカReference Manual, BUCHIさん

改訂 高校音楽１,教育芸術社

高校生のための音楽3,教育芸術社

このソフトの制作には、次のソフトを使用させていただきました。

Borland C++ 4.5/5.0, Borland

ヘルプファイルの作成に次のソフトを利用させていただきました。

GV ver0.63b

それから、TMIDI ver1.3,ベータ版のバグレポート、動作確認、各BBSへ転載をしてくださった皆さん本当にありがとうございました。


概要

 TMIDI Player for Windows95は、Windows 95上で動くMIDIプレイヤーです.

 通常のMIDIプレイヤーと違い、MCIを経由せずに直接MIDIポートにデータを送信しますので、他のプレイヤーには無い2ポート対応、エミュレーション機能、ＲＣＰファイル対応、倍速演奏モード、液晶表示などが楽しめます。

 また、MIMPI ver.4相当の歌詞表示機能が楽しめます。

Win32アプリケーションにもかかわらず、S-MPUのようなインテリジェントなMIDI I/Fを使わなくても、演奏エンジンをWin16-DLLにすることにより、かなりの演奏安定度があります。

 リストファイルを使用することにより、ＣＤのプログラム機能のようなことができます。

 ver1.4からLZHファイル中のMIDIファイルを演奏できます。

Ver1.4で追加された機能

演奏状況を表示できるようになりました。楽器名、各コントロールチェンジ、ノート情報が見れるようになっています。

リストをアルバム化してTMIDIのメニューから呼び出せるようになりました。

若干動作が高速化されました。

９８グラフィックキャラクタを使用しているWRDファイルに対応しました。

32TRデータで、全chを強制的にAポートに出力できるようになっているので、１ポートしかなくても多少は聞くことができます。

LZHファイル中のMIDIファイルを演奏できます。


対応機種

TMIDI Playerは、以下のような環境に対応しています。

OS

Microsoft Windows 95

CPU

i486,Pentium,Pentium PRO以降 (Pentium以降を推奨)

ビデオ表示能力

800x600 256色以上動画表示が速いのものを推奨します。特にAPIのSetDIBitsToDevice()が速いもの。

WinTachでOverallが100以上のものを推奨します。

(High Color 16bpp以上でも問題無く歌詞表示ができます。)

     Ver1.3からDirectXの機能を利用できます。640x480で動かします (なくても動きます)

MIDI I/F

WindowsのMIDIポートとして使用可能なものなら何でも可

対応MIDI楽器

基本的にすべて使用可能です。SC-88とSoundBlasterで動作確認しています。

メモリ

TMIDIでは歌詞表示のために1MB弱消費します。

当方では以下のような環境で動作確認しております。

環境１

自作AT互換機 快適に動作します。

ASUS P55TP4XE (PB-SRAM 256KB, Triton)

Pentium 133MHz

Memory EDO 60ns 32MB+64MB (=96MB)

ASUS SC-200 (NCR 53C810) (SCSI I/F)

TOSHIBA XM-3401B (SCSI CD-ROM)

IBM DORS-32160 (SCSI 2GB HDD)

FUJITSU M2512A (SCSI 230MB MO)

Quantum MV540/s (SCSI 540MB HDD)

Millennium RAMDAC 220MHz WRAM 2MB (PowerDesk ver 3を使用) 256色以上のすべての画面モードで確認

Sound Blaster 32 (RAMなし)

Roland SC-88 (内蔵シリアルI/FとSoundBlaster MIDI出力を使用)

環境２

自作AT互換機 快適に動作します。

ASUS P55TP4N (PB-SRAM 256KB, Triton)

Pentium 75MHz

Memory EDO 70ns 16MB

TOSHIBA XM-5401B (ATAPI CD-ROM)

Western Digital 2635 (IDE 635MB HDD)

Diamond Speed Star 64 (CL-GD5434 Alpine)256色以上のすべての画面モードで確認

Sound Blaster 32 (RAMありGSパッチ)

環境3

98互換機 実用的な速度が出ませんでした (^^;

おそらくビデオカードが遅いのが原因でしょう

EPSON PC-486SR i486SX 33MHz

DPES-31080 (SCSI HDD 1GB)

FUJITSU M2511A (128MB MO)

NEC CD-ROM:210 (2倍速CD-ROM)

MELCO WAB-EP (CL-GD5428)


インストール

 解凍したファイルを１つのフォルダに入れます。

 必要なファイルはTMIDI.EXE TMIDI16.DLL TMIDI32.DLL TMIDI.HLP TMIDI.CNT MODULE.DEFの６つで、DEFAULT.MAG DEFAULT.WRDは入れることを推奨します。

 TMIDI.EXEを起動して、メニューの[オプション]-[設定]をクリックすると環境設定ダイアログが出ます。それぞれを適当に指定します。MIDIエミュレーションには自分の使用している音源を登録します。

 SC-88をシリアル接続している人はMIDI転送レートの調整をチェックするとメッセージの取りこぼしがなくなります。(そのかわりテンポがもたります)

 次にファイルタイプタブを押します。関連付けたい拡張子をすべてチェックします。

 最後にOKを押して設定をセーブします。変更した内容はすぐに反映します。

 MIDIポートが使用可能な状態かどうかを知るには、ﾒｲﾝｳｨﾝﾄﾞｳ下方の状況表示部のPORTの項目を見れば分かります。


すでにわかっているバグ

 TMIDIにはいくつかバグがあります。

早送り（巻き戻し）をすると反応しない

これは早送りを一括して処理するためでしばらくすると演奏が開始するはずです。

倍速演奏モードを使用するとマウス等が効かなくなる

これは外部音源を使用している場合に起こります。８倍速以上になるとCPUを占有してしまうようです。

そのまま演奏が終わるまで停止ボタンを連打すれば止まります。

TMIDIの液晶レベルメータとSC-88の液晶の表示が合わない

完全にシミュレートするとかなりの手間がかかるので、これは仕様ということにしてください。(特に裏ポート制御とか)

32TRデータが演奏できない

標準MIDIファイルでの32TRの制御方法は規格で特に決まっていません。ですので、データによって制御方法がまちまちです。TMIDIで聞けるのは次のような方式です。

メタイベントを使用

確実に聞けるようになっています。

1トラック=Aポート、2トラック＝Ｂポートと決めうちしたデータ

TDFファイルを編集すれば聞けます。

１トラックから１６トラック=Ａポート、１７トラック以降＝Ｂポートと決めうちしたデータ

TDFファイルを編集すれば聞けます。

それ以外

残念ながらそのままでは聞けないので各種ツールを使ってメタイベントを追加してください。

RCPファイルでは確実に聞けるはずです。

WRDのタイミングずれ

TMIDIではなるべくMIMPIの仕様にあわせたつもりですがどうしてタイミングが合わない場合があります。特に次のようなデータはずれます。

古いバージョンのMIMPI用のWRDで、@WAITのバグを使っているもの

１文字表示モードを使用しているもの。

歌詞表示で文字が半分残る

これはそのうち直します。(^^;


演奏できるファイルの種類

 TMIDIで演奏できるファイル形式には次のようなものがあります。

MID	標準MIDIフォーマット

SMF	同上

RMI	同上

MFF	同上

RCP	レコンポーザver 2.5F以前

R36	同上

 などがあります。

また、LZHファイル内のMIDIファイルを直接聞くことができます。

(UNLHA32.DLLが必要)

 レコンポーザのテンポグラデーションには対応していません。（無視します）

以下は、将来サポート予定のファイル形式です。

G18	レコンポーザver 2.5G以降

G36	同上

以下は、一応サポート予定なのですが、、、あまりやる気が無い(^^;

SNG	バラード、ミュージ郎

MM2	マイクロミュージシャン２


倍速演奏

 TMIDIでは2から１６倍速までテンポを変えることができます。

 メインウィンドウの下方の [image] を押すと、2倍、4倍....１６倍と変化します。

 元に戻すには [image] を押してください。

 あまり早くするとCPUを独占してしまう可能性があります。その場合は停止ボタンを連打してください。必ずとまるはずです。(ちょっと自信なし)


選曲

 リスト機能もしくはフォルダ機能を使用する場合は、曲リストの中から選曲して演奏させることができます。

曲リストウィンドウを利用した方法

メニューバーの中のList!を押すと、ウィンドウに曲リストが表示されます。

その中の曲名の部分を押すと、その曲が演奏されます。

キーボードを利用した方法

カーソルキーを押すと選曲できます。

ver1.3から↑↓キーはやめました。(Document!との関係で)

テンキーの８、６	次の曲に移動

テンキーの２、４	前の曲に移動

ボタンを利用した方法

を押すと、次／前の曲に移動します。


早送り／巻戻し

 曲中の任意の場所に瞬時に移動できます。

 ただし、現在の場所からさかのぼる場合は、いったん先頭に戻って目的の場所に移動するので時間がかかる場合があります。

スクロールバーを動かすことにより、マウスのボタンを離したときに移動します。


フォルダ選曲

 あるフォルダに存在する曲すべてをリストにして、演奏します。

 ファイルメニューのフォルダを開くを選ぶと、フォルダ選択画面になります。

 選曲の仕方はこちらを参照してください。


リピート機能

 演奏を終了せずに、エンドレスに曲を鳴らすモードです。を押すとリピート機能のON/OFFができます。

 リストあるいはフォルダ選曲を使用しているときは、曲がすべて聞き終わると一番最初の曲の戻ります。

 MIDIファイル単体を聞いているときは、1曲をリピートします。


ドラッグアンドドロップ

 TMIDIでは、MIDIファイルのドロップができます。

 フォルダをドロップすると、そのフォルダの中のMIDIファイルすべてを探索してリストに追加します。

 ドロップするときにリストファイルがオープンされていると、そのリストへMIDIファイルを追加します。基本フォルダ外のファイルがドロップされたときはエラーとなります。


キーボード

TMIDIではキーボードでも操作できます。Fullscreen!を使用するときに便利です。

機能	ﾌｧﾝｸｼｮﾝｷｰ	テンキー	その他

リストを開く	F3

リスト編集	Shift+F3

ヘルプ	F1

WRD切替	F5	／

DOC切替	F6	＊

リスト切替	F7	－

小型化	F8

全画面切替	F9	＋

次曲	８と６

前曲	４と２

停止	Enter

一時停止	５


ボタン


MIDIシーケンサの設定

 このタブではMIDI演奏に関する設定をします。

MIDIポート

TMIDIでは3つのポートを指定できます。（現バージョンではそのうちの2つを使用）

MIDIポートが使用可能になったかどうかは下図のように確認できます。

この例ではABの両ポートが使用可能です。

起動時に何らかの原因でポートの初期化に失敗してポートが使用不能状態になった場合は、Shift+Mキーを押すと再オープンします。

割り込み間隔

TMIDIではユーザーのニーズに合わせて割り込み間隔を変えることができます。

割り込み間隔は、短くするとリズムが正確になりますが、CPU占有率が高くなります。逆に、長くするとリズムが不正確になります。

NT版の場合は割り込み間隔を短くすると演奏がもたってしまう場合があります。

無限ループの繰り返し数

RCPの無限ループの回数を指定します。

midiOutShortMsg()を使用する

YAMAHA S-YG20で使用する時や、TMIDIは正常に動いているようだが音が鳴らない場合に限り使用してください。また、このオプションを有効にするとメッセージ送信時のウェイトがすべて無効になります。ＭＩＤＩ転送レートの調整も無効になります。

MIDI転送レートの調整

TMIDIでは、シリアルI/FとSC-88の組み合わせでしようしているユーザーのために転送レートの調整をすることができます。

通常Roland Serial MIDI I/Fを使用する場合、38.4kbpsでSC88と通信しますが、速すぎてSC88のバッファがあふれて正常な演奏ができません。そこでTMIDI側で転送レートを意図的に遅くすることにより正常な演奏を可能としています。このオプションをチェックした場合転送レートは平均28kbpsくらいになります。ただし、チェックするともたりが多少発生します。

また、性能の低いMIDI I/Fを使用している場合もこのオプションをチェックするとＣＰＵ占有率が低くなります。（Sound Blaster16のMIDIポートはこれにあたります）

このオプションは内蔵音源ではまったく意味がありませんのでチェックしないでください。


MIDIエミュレーションの設定

 TMIDIでは自分の所有している音源と違う音源用データを聞くために、エミュレーションすることができます。

 ここに設定するデータは、使用する音源の機種を設定します。詳しくはエミュレーション機能についてを参照してください。

使用音源

自分が使用している音源を指定します。

リストに入っていない場合は以下を参考にしてください

KORG系GM	05R/Wを選択してください

GS互換（バンク126,127あり）	SC-55を選択

GS互換（バンク126,127なし）	SC-33を選択

GM準拠	GMを選択

XG互換	MU-80を選択

自分が使用している機種が分からない人はGMを選んでおくのが無難です。

どうしても意図する演奏にならないときは使用音源をTHRUにするかTDFファイルを編集して曲ごとにTHRUにしてください。


ウィンドウ設定

TMIDIの外観を設定します。

別ウィンドウ設定

チェックされたウィンドウは、TMIDIのメインウィンドウとは別のウィンドウに表示されます。

ドロップしたら演奏開始

このオプションをチェックするとMIDIファイルをドロップすると自動的に演奏開始します。

ドキュメントウィンドウ

ドキュメントウィンドウに表示されるフォントを変えることができます。

リストウィンドウ

リストウィンドウに表示されるフォントを変えることができます。

"ファイル名表示"をチェックするとリストウィンドウ内にファイル名が表示されます。

小型化時の動作

常に手前を有効にすると小型化時には常に手前に表示されます。

小型化ボタンを押したときの動作を定義します。

小型化ボタンを押すと次のようになります。

両方を表示のとき

状況表示＆ボタンのみ


WRD設定

歌詞表示設定

WRD歌詞表示の動作を設定します。

歌詞表示用フォント

歌詞を表示するためのフォントを設定します。このリストには固定幅フォントしかリストされません。日本語フォント以外を選ぶと日本語の表示が化けます。

高速表示

WRD表示を高速化します。このオプションをチェックするとCPUが暇になったときに一度に描かれます。

16bpp(HI-Color)モード時に歌詞表示が追いつかない場合にのみ有効です。

なるべく高速表示を無効にするのを推奨します。

自動的にWRDウィンドウへ切り替える

このオプションをチェックすると、リストウィンドウ表示時に再生開始すると、WRDが存在する時に限りWRDウィンドウへ切り替えます。

全画面表示(DirectDraw設定)

全画面表示時のDirectDrawの設定を変えます。

なるべく推奨されている "色数を変更しない" を使ってください。

意味の分からない人はいじらない方が賢明です。


液晶表示設定

液晶表示部分の外観／動作を設定します。

液晶バックライト

液晶表示部の色を変更します。


ファイルタイプ

ファイルタイプ設定(関連付け)

 TMIDIではDDEを使用してエクスプローラから呼び出すことができます。またこの機能はMIDIファイル,LISTファイル,WRDファイルが使用できます。

  このように、Settingをクリックしてください。

ファイルタイプをクリックする次のようなダイアログが出ます。

必要な項目をチェックしてOKを押すと、エクスプローラでファイルをダブルクリックするだけで呼び出すことができます。

 ＷＲＤファイルも関連付けることができます。この場合、曲データはRCP,R36,MID,SMF,RMI,MFFの順に検索します。


リスト機能について

 リスト機能とは、MIDIファイル(曲)を登録し、その登録した曲順にしたがって演奏していく機能です。

 リスト機能を使用するには、[File]-[New list]（リストファイルの作成）を選んで、登録したいMIDIファイルの入ったフォルダのトップ（一番上）にリストファイルを作成します。作成すると、直ちに編集画面に移りますので、聞きたいファイルを順番に登録してください。

 リストファイルは基本フォルダという考え方を使用します。

 基本フォルダはリストファイルが存在するフォルダとなります。

 ファイルを追加するときは必ず基本フォルダ下のファイルである必要があります。

 リストファイルには基本フォルダからの相対パスがセーブされるので、フォルダごとコピーしてもリストファイルに影響はありません。

 関連付けすると高度な(こちらを参照)使用をすることができます。


リストファイルの作成

FileメニューのNew listをクリックすると、リストファイルの作成ができます。

作成されると直ちにリストファイルの編集に移ります。


リストファイルを開く

FileメニューのOpen Listをクリックすると、リストファイルを開くことができます。また、TORファイルを関連付けておけばダブルクリックするだけでTMIDIを起動してTORファイルを開くことができます。(ファイルタイプを参照)

開いた後は演奏させることができます。


リストファイルの編集

FileメニューのEdit Listをクリックすると、リストの編集ができます。

クリックすると大きいダイアログが表示されます。

<< 追加

左のペインの指定したファイルから右のペイン（曲順）の末尾に移動します。フォルダを指示した場合はそのフォルダの中に含まれている(サブディレクトリも)曲全部を追加します。

<< 挿入

基本的に追加と同じですが、左側の曲順ペインの指示されたところから挿入されるという点が違います。

上へ(下へ)

左側の曲順ペインの中で、指示した曲を上(下)へ1つずらします。

削除

左側の曲順ペインの中で、指示した曲を曲順リストからはずします。

全削除

左側の曲順ペインの中の全曲をはずします。

現在のフォルダ

この項目で示される位置は、リストファイルの存在するフォルダをルートとした時の位置です。

また、右側のペインで、[Name]のように[ ]で囲まれているのはフォルダ名です。ダブルクリックするとそのフォルダの中に入れます。


リストファイルの構造

リストファイルの構造 (*.torファイル)

 TMIDIのリストファイルの拡張子はTORです。

 最初の行には "#! /usr/local/bin/tmidi" があります。現在のバージョンでは特にチェックをしていませんが、自分で作る場合は `#!' と `tmidi' だけは必ず入れてください。(UNIXのシェルスクリプトの真似です(^^;)

 次の行からは曲データを羅列します。１行に１つのデータがあり、１曲は次のようなデータで構成されます。

ファイルの位置（基本フォルダからの相対パス）

題名

曲の長さ (秒単位)

小節数

終了マークの '@'

 最後の終了マークは必ず必要です。このマークは、将来データ数が増えたときのためにあります。１曲のデータを区切るのに必ずチェックしてください。

 小節数と曲の長さは０でも構いません。０の場合はTMIDIが演奏するときにMIDIデータから取り出します。


歌詞ファイルについて

 TMIDIではMIMPI ver.4相当の歌詞ファイル(拡張子はWRD)を表示することができます。また、Ver.1.3から演出君メカの一部コマンドに対応しました。

 ビデオモードがHighColor(16ビット)でも、パレットアニメーションができるように最適化されています。

 WRD!メニューを押すと歌詞が表示されます。歌詞ファイルが無い場合はDEFAULT.WRD（こちらを参考）を表示します。


MIMPIとの違い

 TMIDIではWindows上で実現不可能なものを除いて、おおよそMIMPI ver4.23との互換性があります。

 現在のバージョンでは以下のような命令をサポートしています。

命令	MIMPIとの違い

@STARTUP(version)	なし

@WMODE(n<,mode>)	なし

@WAIT(bar <,step>)	なし

@OFFSET(nnn)	なし

@REST(bar <,step>)	なし

@INKEY(bar)	@WAITと同じに解釈されます。

@END()	なし

@LOCATE(y;x)	なし

@LOCATE(x,y)	なし(MIMPIの説明書には載っていないが存在するのでサポートしました。)

@TON(sw)	sw=2のときの動作が違います。詳しくは後述

@ESC(str)	ほとんどのエスケープシーケンスに対応

@COLOR(c)	属性はリバースとアンダーラインのみ対応

@TCLS(x1,y1,x2,y2,color.char)	なし

@SCROLL(x1,y1,x2,y2,mode,color,char)	なし

@GINIT()	無視します

@GCLS(sw)	なし

@GSCREEN(act,dsp)	なし

@GON(sw)	なし

@GLINE(x1,y1,x2,y2,p1,sw,p2)	ラインスタイルの設定ができません

@GCIRCLE(x,y,r,p1,sw,p2)	なし

@PLOAD(filename)	なし

@PAL(<#n,>rgb1,....rgb16)	なし

@PALREV(p)	なし

@FADE(p1,p2<,speed>)	なし (タイミングが若干違うかも)

@GMODE(sw)	なし

@GMOVE(x1,y1,x2,y2,xd,yd<,vs><,vd><,sw>	なし

@MAG(filename,x,y,s,p)	なし

@MIDI(d1...dn)	無視されます。

@EXEC(filename)	WRDCMD2に対応

@PATH(*)	無視されます。

@PATH(@)	常にこの状態です。

@PATH()	無視されます。

@PATH(str)	無視されます。

@LOOP(count)	無視されます。

@STOP()	無視されます。

WRDCMD2のコマンド	WRDCMD2との違い

^FONTM(p)	なし

^VCOPY(x1,y1,x2,y2,xd,yd,vs,vd,sw)	なし

^VSGET(p)	なし

その他	無視されます。

MIMPIには存在しないコマンド

@DTITLE(y,x1,x2)	テキスト画面に曲名を表示します。

@TONについて

 TMIDIでは、@TON命令をサポートしていますが、MIMPIと動作が異なります。

 98のテキスト表示は40桁と80桁で画面全体が切替となりますが、TMIDIでは画面全体が切り替わらずにその命令以降の文字だけ切り替わります。

<例>

WRDファイル内:	@TON(1);

８０桁です。;

@TON(2);

４  ０  桁  で  す  。  ;

@TON(1);

８０桁に戻りました。;

画面上のイメージ

 NIFTY-ServeのFMIDIDATフォーラムでは、この技術を応用した曲が存在していますので、この機能をつけました。


WRDコマンドリファレンス

@STARTUP(version)

この命令以降の文を演奏の始まる前に実行します。

;(セミコロン)でつなげることもできます。

versionにはMIMPIのバージョンを記述します。４．０だったら４００とします。

@WMODE(n<,mode>)

WRDコマンドの1行を実行するタイミングを設定します。

nには1小節を９６としたティック数－1を指定します。

MIMPIと違い速いタイミングにしても正確にカウントします。

mode=1にすると、1行単位でなく文字単位でタイミングを決められます。（デフォルトはmode=0）

このモードにすると `|' `_' `\'は特別な意味を持ちます。'_'はｎで決めたタイミングを待ちます。'|'で囲んだ文字は1回のタイミングで表示することを意味します。'\'は'|'や'_'や'\'を表示するために使います。

<例>

__I___| Love|___| You.|____

@WAIT(measure<,step>)

measureで指定した小節まで待ちます。@OFFSETを指定されている数値を加えます。

stepはmeasureで指定した小節からstepティック（4分音符の分解能は４８）分だけ待ちます。

<例>

@WAIT(54,144)	４／４の曲の場合、54小節目の3拍目まで待ちます。

@OFFSET(n)

@WAIT()で指定する数値を補正します。

@REST(measure<,step>)

measure小節のstepティックだけ待ちます。

MIMPIと非互換なので使わないでください。

@INKEY(measure)

@WAIT()と同じです。

@END()

曲の演奏が終了するまで待ちます。

TMIDIの場合は曲の演奏が終了するとWRDも停止しますので、実質上この命令は意味がありません。

@LOCATE(y;x) または @LOCATE(x,y)

テキスト画面のカーソル位置を変更します。

(1;1)がホームポジションです。

(x,y)形式はMIMPIのドキュメントには記述してないのですが、そのような歌詞ファイルが存在するのでサポートしました。

@TON(sw)

テキスト表示の制御をします。

sw=0の時は非表示です。

sw=1の時は表示状態で80桁モードになります。

sw=2の時は表示状態で40桁モードになります。

@ESC(str)

ESC[をstrの前にくっつけてテキスト表示します。

エスケープシーケンスを使うときに便利です。

@COLOR(c)

テキスト表示の色を変更します。

@TCLS(x1,y1,x2,y2,color,char)

指定した範囲のテキスト画面を消去します。消去するときはcharで指定した文字でcolorで指定した色で消去します。

x1=1,y1=1,x2=80,y2=25,color=0,char=32がデフォルトです。

この命令を実行してもカーソル位置は変更されません。

@SCROLL(x1,y1,x2,y2,mode,color,char)

指定した範囲のテキスト画面をスクロールします。

mode=0のとき、上に1行スクロール

mode=1のとき、下に1行スクロール

mode=2のとき、右に1行スクロール

mode=3のとき、左に1行スクロール

スクロールしてあいた部分にはcolorとcharで指定した文字で消去されます。

x1=1,y1=1,x2=80,y2=25,mode=0,color=0,char=32がデフォルトです。

@GINIT()

グラフィック画面の初期化をします。

アクティブページとディスプレイページを０にして、表示状態になります。

@GCLS(sw)

グラフィック画面を消去します。

swには消去するプレーンを指定します。4ビットで、上位ビットからEGRBと指定できます。

省略したときや、０を指定すると全プレーンを消去します。

@GSCREEN(active, display)

描画ページ(active)と表示ページ(display)を変更します。

@GON(sw)

グラフィック画面の表示制御をします。

sw=0で非表示状態で、sw=1で表示状態になります。

@GLINE(x1,y1,x2,y2,p1,sw,p2)

線／四辺形を描きます。

sw=0のときは、(x1,y1)から(x2,y2)に直線を描きます。

sw=1のときは、(x1,y1)から(x2,y2)を頂点としたに四辺形を描きます。

sw=2のときは、(x1,y1)から(x2,y2)を頂点とした四辺形を描き、中を塗りつぶします。

p1は描画する色を指定します。

p2には塗りつぶす色を指定します。sw=0の時は無視します。（MIMPIではラインスタイル）

@GCIRCLE(x,y,r,p1,sw,p2)

中心座標(x,y)、半径rの円を描画します。

sw=0のときは、円

sw=1のときは、円

sw=2のときは、円を描いて、中を塗りつぶします。

p1は描画する色で、p2は塗りつぶす色です。

@PLOAD(filename)

PHOファイルをロードします。

@PAL(rgb1,rgb2,rgb3.....rgb16)

#0のパレットを変更します。

#0なので画面にすぐ反映します。

r,g,bはそれぞれ0-F(１０進で0-15)を指定できます。

<例>

@PAL(000,00F,0F0,0FF,F00,F0F,FF0,FFF,................)

@PAL(#p,rgb1,rgb2,....rgb16)

#pバンクのパレットを変更します。#0のときは画面にすぐ反映します。

#0は画面に実際に使用されているパレットが設定されます。

#1-#16は自由に使用できます、

#17は @MAGのファイルのパレット情報が格納されます。

#18は アクティブ画面が表のときの@MAGファイルのパレットです。

#19は アクティブ画面が裏のときの@MAGファイルのパレットです。

@PALREV(p)

#pバンクのパレットを色反転します。#0の時は画面にすぐ反映します。

@FADE(p1,p2<,speed>)

#p1バンクから#p2バンクへパレットを滑らかに変更します。

speedは指定したスピードでパレットを変更します。4分音符の分解能が４８として指定します。

speedは省略時のときは１となります。

@GMODE(sw)

書き込みするプレーンを指定します。4ビットで最上ビットからEGBRと指定します。

@GMOVE(x1,y1,x2,y2,xd,yd<,vs><,vd><,sw>)

x1,y1,x2,y2で指定した範囲と(xd,yd)で指定した座標にコピー／交換をします。

vsはコピーもとのページ、vdはコピー先のページを指定します。

sw=0でコピー、sw=1で交換となります。

@MAG(filename,x,y,s,p)

Woody-RINNさんの開発したＭＡＧ形式の画像ファイルを表示します。

(x,y)で指定した座標を左上の頂点として表示します。

sは縮小率です。たとえば２を指定すると縦横のサイズが１／２になります。

p=0のとき、画像＋パレットを読み込みます。

p=1のとき、画像のみ

p=2のとき、パレットのみになります。

^FONTM(p)

BUCHIさんが開発したWRDCMD2(演出君メカ)のコマンドです。

p=0のとき、システム本来のフォントを使用。

p=1のとき、指定したフォントを使用


エクスプローラによるショートカットとリスト

 TMIDIでは、リストファイル(拡張子TOR)をファイルタイプで設定すると、エクスプローラ上でリストファイルをダブルクリックするだけで、リストファイルの演奏が可能になります。

 更に発展させると、デスクトップにショートカットとしておいて置くことができます。（TORファイルには相対パスで曲ファイルが登録されているので、TORファイル自体をコピーしないで、ショートカットを使わなければならないことに注意）

 また、デスクトップ上にフォルダを作って、その中にショートカットを複数作ると便利でしょう。（下の図を参考）


対象音源を強制的に設定する(TDFファイルの設定)

オプションメニューのTDF演奏設定ファイルの編集を選ぶと次のようなダイアログが表示されます。

 対象音源のコンボボックスを変更してSaveを押すと変更されます。

 対象音源には、自分の使用している機種ではなく、曲データが対応している音源を指定してください。自分の使用している機種を設定するにはエミュレーションモードについてを参考してください。

 ここで、Saveを押すと曲データと同じディレクトリに同じ名前で、拡張子がTDFのファイルが作られます。

 もしTDFファイルが存在しない曲ならば、ファイル名／ドキュメント／題名を参考にして自動判別します。

 ＬＺＨファイル内の曲も正しく設定できます。


歌詞ファイルが無い曲のとき

 TMIDIでは常に歌詞ファイルが表示されます。歌詞ファイルが無い曲の場合、画面が黒だと寂しいので、TMIDI.EXEと同じフォルダにあるDEFAULT.WRDとDEFAULT.MAGを使用するようになっています。

 このDEFAULT.WRDは普通の歌詞ファイルと同じ扱いをします。

 このDEAFULT.WRDはユーザが自由に変更することができます。ただし、曲によってテンポが違うということを認識して作ってください。


サポートしているドキュメントファイルと拡張子

 TMIDIでは、曲のドキュメントファイルを表示することができます。表示されるドキュメントファイルは、拡張子がTXT,DOC,ﾎｿｸ,HEDのファイルです。

 画面上方のメニューバーの中Document!を押すと表示されます。

 拡張子ﾎｿｸ HED TXT DOCのファイルが順番に表示されます。

 Ｖｅｒ１．３から、Ｍａｃのテキストファイルが見れるようになりました。


Fileメニュー

Fileメニューには次のような機能があります。

Open a midi file

各種MIDIファイルを開きます。

Open Folder

フォルダごと開きます。こちらを参照

Create list

リストを新しく作成します。こちらを参照

Open list

リストを開きます。こちらを参照

Edit list

リストを編集します。こちらを参照

Close list/file

リストファイルを閉じます

Explorer

基本フォルダをルートにしてエクスプローラを起動します。


Optionメニュー

Optionメニューには次のような機能があります。

設定

環境設定をします。MIDIシーケンサ、MIDIエミュレーション、ウィンドウ設定、ファイルタイプ（関連付け）の設定ができます。

TDF演奏設定ファイルの編集

TDFファイルの編集をします。演奏中のみ有効です。こちらを参照

ベンチマーク

コンピュータがTMIDIを実行するのにふさわしいかを判断します。ビデオカードの動画表示(SetDIBitsToDevice)の性能を調べます。


WRD! Document! List!メニュー

WRD Document List Minimize FullScreenボタン

注：ver1.4からはボタンに変更されました。

ボタンのWRD Doc Listを押すとウィンドウ外観が変化します。

それぞれのボタンの説明

WRD

歌詞表示します。詳しくは歌詞表示機能を参考

F5キー／テンキーの７を押しても同じ結果が得られます。

Doc

ドキュメントを表示します。詳しくはドキュメントファイルと拡張子を参考

F6キー／テンキーの8を押しても同じ結果が得られます。

List

リストを表示します。詳しくは選曲を参考

F7キー／テンキーの＋を押しても同じ結果が得られます。

小型化

WRD/Document/Listを表示するウィンドウを削除して液晶表示部分だけを表示します。

F8キーを押しても同じ結果が得られます。

FullScreen

全画面モードにします。(DirectXが必要です)

、Alt+Returnキー、F9キー、テンキーの０でも切り替えられます

全画面モードにすると意図的に一部のキーが(たとえばAlt+TABとかCtrl+ESC)無効になります。


液晶表示

 上に表示されているのが液晶表示です。レベルメータ表示時は、上半分はB-portで、下半分はA-portです。A-portからB-portを制御している場合でもある程度は表示されます。

 Roland SC-55から備わっている液晶には、自由な絵や文字を表示することができます。これと同じように、TMIDIではSC-55/88以外の機種をお持ちの方にも見れるように、この機能をサポートしており、エクスクルーシブのModelID=45hのDisplayed Letter,Displayed Dot Data,Display Page,Display Timeと、ModelID=42hのPATCH NAMEに対応しています。


状況表示

 上に表示されいるのが状況表示部分です。

TITLE	MIDIファイルの題名です。

TEMPO	テンポ(BPM; Beat Per Minutes)です。

TIME	現在演奏している時間です。

MEASURE	現在演奏している小節番号です。

BEAT	現在演奏している小節内の拍数とティック数です。

GS	GS Resetを送信したことを示します。

GM	GM System ONを送信したことを示します。

XG	XG Reset?を送信したことを示します。

CM	CM PCM Resetを送信したことを示します。

SMF0	データがSMF Format 0であることを示します。

SMF1	データがSMF Format 1であることを示します。

RCP	データがレコンポーザ2.5F以前であることを示します。

A (prot)	Aポートが使用可能な状態であることを示します。

B (port)	Bポートが使用可能な状態であることを示します。

C (port)	Cポートが使用可能な状態であることを示します。

JAM	MIDIデータの送信が滞っていることを示します。（一度に多くのメッセージを送ろうとすると表示されます。）

WRD	歌詞ファイルが存在していることを示します。

DOC	ドキュメントファイルが存在していることを示します。

SC-88	ここには、そのMIDIデータの対象とする機種名が表示されます。

自動判別の場合、期待する機種名と違う表示になることがあるので、その時にはこちらを参照してください。


キャプション

"テストの歌"	これは演奏している曲の名前を意味します。

[PAUSE]	一時停止中であることを示します。

[x2]	現在2倍速であることを示します。

リストファイルをオープンしているときには次のように出ます。


バージョン履歴

 Version 1.1 [1996/11/26]

 Initial version.

 Version 1.2 [1996/11/26]

 DIB.DRVの無いマシンでも動作可能にする。

 Version 1.3 [1997/1/7]

 ［全般］

 [File]-[Exit]が動作しなかったバグを修正。

 液晶バックライトの色を２種類選択に、明るさを可変にする。

 ウィンドウの大きさを小さくできるようにした(Minimize!)

 レコンポーザのメモ欄を見れるようにした

 DirectDrawを使って全画面モードを使用可能にした(FullScreen!)

 全画面モードに対応するために画面デザインを多少変更。640x480に収めるため。改悪でした(^^;

 実行優先レベルを変更できるようにした

 Ｍａｃヘッダのついたテキストファイルも表示できるように

 複数のドキュメントファイルを見れるようにした、

 ウィンドウが非アクティブの時のＣＰＵ占有率を下げました。

 ドラッグアンドドロップに暫定対応

 ［MIDIシーケンサ部］

 ポーズ時、All Sound Offメッセージを受信しないMIDIモジュールのために、All Note OFFとOMNI OFFも送るようにする。

 エラーチェック強化

 ＭＩＤＩ送信方法を変更。転送レートを制限するようにした。(Roland Serial MIDI Driver+SC-88対策)。

 2 Port対応の幅を拡大

 TMIDI16.DLLの安定性が向上しました。

 RCPファイルの複雑なループに対応しました。

 ［WRD表示部］

 @COLOR()で無効なパラメータを指定したときの動作を変える。（無効のときは白にする）

 演出君メカの一部コマンドに対応。(^FONTM)

 @COLOR()でハイライト(1)に対応

 歌詞表示用のフォントを変更可能に

 ベンチマーク機能（おまけ）

 テキスト表示時のバグFix

 DirectDrawのWaitForVerticalBlank()を使用してパレットチェンジ時の水平線ノイズを除去

 パレット変更時のちらつきを軽減

 表示タイミングを抜本的に変更しました。これによって、タイミングが合うようになった曲は多いのですが、逆に今まで合っていた曲が合わなくなっている可能性があります。

 @MAGの縮小率に対応しました。

 @MAG命令のバグを直す

 全体的な高速化 (まさか16bitDLL呼び出しにあんな時間がかかっていたとは (^^;)

 データを32bit転送することによりテキスト合成、領域転送、スクロール、水平ライン描画、ボックスフィル描画、サークルフィルの速度向上 （当社比約４倍 ^^）

Version 1.4 [1997/2/9]

     WRDCMD2の ^VCOPY ^VSGET等仮想VRAMに対応

     Hi-Color/True-Color時の "高速表示" をさらに高速化

     SC-88の System Mode Set エクスクルーシブに対する処理を追加

     @GCIRCLEのバグ直し

     リスト関連のコード見直し (見直しただけで新たな機能追加はありません)

     リスト編集ダイアログのリストボックス内でドラッグアンドドロップ可能

     List,Documentを別ウィンドウで表示可能

     DEFAULT.WRDがないと暴走するバグを除去

     ベンチマークテストのテスト時間短縮 (20秒=>6秒)

     MAGファイル展開の高速化 （ただコンパイルオプションを変えただけ）

     インクルードファイル見直しによりデッドコードを削減

     WRDのタイミングの若干変更

     演奏状況(楽器、鍵盤、コントロールメッセージ等)を表示できるようにする

     メニューバーと下のツールバーを変更

     WRD初期化を高速化  演奏状況表示の初期化に時間がかかるので±０ (T_T)

     コマンドラインにファイル名を指定すると自動的に演奏開始します。

     （すでに起動していた場合はDDE経由で演奏開始）

     RCPデータのNoteON/OFF管理に問題点があったのを改善

     強制的にポートＡに出力させる機能を追加

     @TCLS()において98のグラフィックキャラクタ対応

     WRDの文字表示に簡単なキャッシング機構を使うことにより（一部のWRDに

     おいて）高速化しました。

     DDEサーバ仕様をほぼ決定。

     リストウィンドウのフォントを変更可能にしました。

     リストウィンドウにファイル名を表示することができます。

     アルバム機能？をつけました。（これによりベータ版に存在していたショート

     カット機能は削除されました。）

     88PROの88MAPで正常に切り替えないバグを修正

     MIDI初期化時にウェイトをかけられるようにしました。(MODULE.DEF参考)

     ２重起動できるようにしました。（制限付きですが）

     トランスポーズ、チャンネルミュートができるようになりました。

     ツールチップウィンドウを表示できるようにしました。

     ドキュメント表示の際、Windowsが表示できる以上のサイズだった場合に警告

     音がなるバグを除去。

     エラーチェックを強化（今度はかなり強力です）

     LZHファイルの対応

     ドキュメント表示フォントを変更可能に

     ドロップされた曲を即演奏するオプションを追加

     リスト表示時にWRD付きのファイルを再生すると自動的にWRDウィンドウへ切替

     るオプションを追加

     DirectDrawの画面モード切替の仕方を変えられるようにした。

     TMIDI16.DLL内の演奏エンジンの軽量化

     WRDファイルが添付されているかどうかを分かるようにした。

     MAGファイルの展開の高速化（ループ中に誘導変数を使用し、除算命令を削減）

     小型化時に限りAlways On Topできるようにした。

     小型化時に限りタイトルバーとメニュバーを消せるようにしました。

     midiOutShortMsg()を使用するモードを設置。これはS-YG20試用版で確認

     した現象を回避するためにつけたものです。

     無限ループのファイルに対応


エミュレーションモードについて

エミュレーション機能について

 TMIDIの特色の1つにこのエミュレーション機能があります。

 この機能は、例えばSC-55mkII等GS機器でCM-64用のLA/PCMのデータを聞いたり、Sound BlasterやSC-33などのバンク127が無い楽器でも、バンク127の音をＧＭキャピタルにパッチしたりすることができます。

 どのようにエミュレーションしているかは、モジュール定義ファイル(module.def)の中を参照してください。

 実際に演奏するときは、曲データのドキュメントファイルや、題名、ファイル名を参考にして対象音源を自動判定してエミュレーションをします。判定結果は状況表示部に表示されます。

添付のモジュール定義ファイルでは、対象音源と使用音源が一致したときは、なにも手を加えません。

添付のモジュール定義ファイルが対応している変換

対象音源	=>	使用音源

SC-33/55系	=>	SC-88	55Mapにセット

SC-88	=>	SC-55/33系	GMとして演奏(バンクセレクト/エクスクルーシブ無効)

SC-88	=>	その他(GM)	GMとして演奏(バンクセレクト/エクスクルーシブ無効)

その他(GM)	=>	SC-33/55/88	GMとして演奏(バンクセレクト/エクスクルーシブ無効)

SC-55	=>	SC-33	Bank126,127をエミュレートする

CM-64系	=>	SC-33/55/88	LA/PCM音源をエミュレートする

SC-33/55/88	=>	SoundBlaster 32	GSのエクスクルーシブ／Bank126,127をエミュレートする

Roland GS系	=>	YAMAHA XG系	Bank126,127をエミュレート

詳しくは、http://www.ns.kogakuin.ac.jp/~c396022/tmidi/のMIDIエミュレーションについてをご覧ください。


エミュレーションモードの使用方法

エミュレーション機能の使用方法

 まず、環境設定-MIDIエミュレーションに、自分が使用する音源モジュールの機種を選んでください。

 次に、エミュレーションしたい曲データを演奏させます。そして、自動判定の状況を見るために、状況表示の右下を見ます。もしTHRUだったら音源名がうまく判定されていませんので、手動で指定する必要があります。

 手動で設定するには、[Option]-[TDF Edit]で、そのデータが対象としている音源の名前を選んでください。


モジュール定義ファイルについて

 モジュール定義ファイルの中をご覧ください。