home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1998 January (DVD)
/
VPR980100.ISO
/
OLS
/
DOS
/
CVS506
/
CVS506.LZH
/
CVS.DOC
next >
Wrap
Text File
|
1995-08-29
|
66KB
|
1,439 lines
***************************************
* *
* CVS.EXE (Ver 5.06 95/08/29) *
* *
* MCP/RCP/R36ファイル ==> 標準MIDIファイル *
* RCPファイル <==> テキストファイル *
* *
* Copyright Hajime Koike *
***************************************
【 1.はじめに 】
このプログラムは、レコンポーザ・ファイル(MCP/RCP/R36)を標準MIDIファ
イルに変換するためのものです。フォ-マット1のみをサポ-トしています。また
RCP/R36ファイルをテキスト化する機能と、逆変換(コンパイル)する機能
も合わせ持っています。
【 2.使用方法 】
最初にこのバージョンを使用する場合は、CVS.DEFファイル(初期設定)を
作成するため、CVS -S <RET>と入力してファイルを作成してください。Ver4.10
以前のCVS.DEFファイルとは互換性がありませんので気をつけて下さい。設定内容
については、このドキュメントの4章をご覧下さい。
変換作業時には、2つワ-クファイルを作りますのでディスクの空き容量には
注意して下さい。また、ワ-クファイルにRAMディスクを指定することにより
変換時間が短縮されます。
変換中に処理を停止させたい場合は、Qを押すことにより全てのファイルをクロ
-ズして終了します。
オプションの設定は後述するCVS.DEFに記録することができます。以後
CVS.DEFの記述がディフォルトの設定となり、オプションを付けることに
より設定を反転させることができます。CVS <RET>でコマンドライン
オプションとディフォルトの設定値が表示されます。
説明を簡単にするため、これ以降はCVS.DEFファイルが無い場合にコマンド
ラインオプションSWがどういう動作をするかを説明します。CVS.DEFファ
イルにディフォルト値を設定すれば、コマンドラインオプションのを付けることに
より、ディフォルト値と反対の動作をします。
呼び出し方法は下記の通りです。ワイルドカードによる指定が可能です。
CVS file名 -[option] -[option] ... <RET>
例 CVS FILE名 -Ob: -Wc: <RET>
CVS *.MCP
CVS *.RCP
CVS *.MTD
CVS *.CM6
CVS *.GSD
CVS *.RLG
[option]
-S ....... 初期設定を記述した、CVS.DEFファイルの編集を行います。
メニューに従い設定して下さい。ファイル関係の初期設定を
記録します。
-Optah ... 出力ファイルのパスを指定します。
-Wptah ... 作業用ファイルのパスを指定します。RAMディスクを指定
しておくとより高速に変換できます。
-Fmid .... MIDIファイルを作成しません。
-Flog .... LOGファイルを作成しません。
-Frlg .... RLGファイルを作成します。
-Frcp .... RCPファイルを作成します。
-Bn ...... n=0の時拍子の変更を変換しません。n>0の時変換を行います。
nの値は、レコンポーザファイルのトラック番号です。ディフォルト
は、n=1となっておりレコンポーザの1トラック目にある拍子を変換
します。
n>36の時、全レコンポーザファイルトラックの拍子変更を変換
します。(Ver5.05までと同じ)
-C ....... RCPファイルをテキスト化する時、サイズの小さい書式で作成
します。
-E ....... 音色ファイル(MTD/CM6/GSD)を変換しません。
-G ....... テンポのグラデーションコマンドの処理を禁止します。
-Kn ...... n=0の時は、Music Keyの変換を禁止します。n>0の時変換を行います。
nの値は、レコンポーザファイルのトラック番号です。ディフォルト
はn=1となっており、レコンポーザの1トラック目のMusic Keyを
変換します。レコンポーザファイルのトラック番号が幾つであろうと
Conductorトラック(MIDファイルの最初のトラック)にのみ書き込まれ
ます。
n>36の時、全レコンポーザファイルトラックのMusic Keyを変換
します。(Ver5.05までと同じ)
-KM ...... 各トラック毎にMusic Keyを変換します。
各トラック毎にMusic Keyが異なるデータを変換したい場合
に使用します。しかし、こんなデータが存在する必要がある
かは、?です。
注:MIDファイルの各トラックにMusic Keyのデータがあると
一部のシーケンサ(Performer etc.)では、データを読み
込むことができません。
-Tkey+ ... ノートデータのトランスポーズを禁止します。ディフォルト
では、コマンドの指示に従いトランスポーズします。ノーテ
ションソフトなどに取り込みたいときに使用します。通常は
トランスポーズしいなで聞くと音痴になってしまいますので
このオプションは必要ありません。
-Tst+ .... ST+を常に0で変換します。(RCP/R36のみ)ST+というのは、
各トラックで曲の始まるまでの時間を遅らせたり/早めたり
するためのものです。ステップ単位で -99 ~ +99 まで可変
可能です。
-Tmemo ... MIDIファイル中へ、メモデ-タの取り込みを禁止します。
(RCP/R36のみ)
-Tmute ... MUTEされたトラックのデータも変換します。
-Ln ...... LOOP回数が255などのデータで変換換するとファイルが大きく
なり過ぎる場合、繰り返しの最大値を指定します。
-R ....... ランニングスのル-ルを使用せず変換します。
-V ....... RCM2.5からからST+の扱いが変更になりました。困った
仕様変更です。2.3aまでのバ-ジョンとは互換性が無く
なったたため、RCMのバ-ジョンを指定するためオプション
です。このオプションをつけることにより2.3aのST+で
変換をします。
(ST+の範囲 )
RCM2.3以前 0 ~ +255 まで
RCM2.5以後 -99 ~ +99 まで
注1:CVS.DEFファイルの記述内容により変化します。CVS <RET>で表示される
ヘルプメッセージに従います。
【 3.取り扱うファイルについて 】
以下に示すファイルを扱います。
(変換元ファイル)
1: MCPファイル ----> *.MCP (RCM Ver 1.0)
2: RCPファイル ----> *.RCP (RCM Ver 2.0 - 2.5)
3: R36ファイル ----> *.R36 (RCM Ver 2.5F)
4: 音色ファイル1 ----> *.MTD (MT32)
5: 音色ファイル2 ----> *.CM6 (CM64)
6: 音色ファイル3 ----> *.GSD (SC55)
7: テキストデータファイル ----> *.RLG (RCP --> RLG)
(作成されるファイル)
1: 標準MIDIファイル1 ----> *.MID (MCP/RCP/R36)
2: 標準MIDIファイル2 ----> *.MFF (MTD/CM6を単体で変換)
3: 標準MIDIファイル3 ----> *.SMF (GSDを単体で変換)
4: テキストデ-タファイル ----> *.RLG
5: ログファイル ----> *.LOG
6: RCPファイル ----> *.RCP (RLG --> RCP)
7: ワークファイル1 ----> *.$$1 (作業終了時 削除)
8: ワークファイル2 ----> *.$$2 (作業終了時 削除)
【 4.CVS.DEFファイルについて 】
CVS -S <RET>で、CVS.DEFファイルの編集を行います。従来のバージョンでは
CVS.DEFファイルをエディタなどで編集する必要がありました。Ver5.00
以降では、メニューに従ってプログラムが作成するようにしました。
(CVS.DEFの内容)
Work_File_Path C:\CVS\ ; 作業用ファイルのパス
Output_File_Path C:\CVS\ ; 出力ファイルのパス
Midi_File_Extension MID ; MCP/RCP/R36 --> MIDIファイル拡張子
CM6_to_MID_File_Ext. MFF ; MTD/CM6 --> MIDIファイル拡張子
GSD_to_MID_File_Ext. SMF ; GSD --> MIDIファイル拡張子
RLG_File_Extension RLG ; RCP --> テキストデータファイル拡張子
LOG_File_Extension LOG ; ログファイル拡張子
Create_MID_File 1 ; MIDIファイルの作成 注
Create_LOG_File 1 ; ログファイルの作成 注
Create_RLG_File 0 ; テキストデータファイルの作成 注
Create_RCP_File 1 ; RCPファイルの作成 注
Comoress_RLG_File 0 ; -C
CM6_File_Convert 1 ; -E
GSD_File_Convert 1 ; -E
BEAT_Change_Convert 1 ; -Bn
TEMPO_Gradation_Convert 1 ; -G
Running_Status_Enable 1 ; -R
Music_Key_Convert 1 ; -Kn
Track_ST+_Enable 1 ; -Tst+
Track_KEY+_Enable 1 ; -Tkey+
Track_MEMO_Convert 1 ; -Tmemo
MUTE_Track_Convert 0 ; -Tmute
Port_Ch_Text_Create 1 ; -Tport
Old_Version 0 ; -V
Loop_Command_Max_No 255 ; -Ln
注: 1=作成 0=非作成
【 5.変換について補足 】
ディフォルトで変換されたデータは、以下のような特徴があります。
1.ランニングステータスルールが適用されています。
2.テキストデータは、文字列の先頭および最後にある半角/全角のスペース
が取り除かれます。
3.くり返しの中のテキストデータは、MIDIファイルに展開される時、最初の
1回目のみ変換されます。ログファイルも同様です。
4.セイムメジャ-コマンドで繰り返される小節の中にある、テキストデータ
は変換しません。
5.テンポにグラデーションがかかったデータは、ある規則に従い変換を行っ
ています。テンポの変化幅が大きな場合、途中のテンポデータは最大16個
作成します。
テンポのグラデーションは、元々MPU401のハードウエアに依存しているた
め、正確に変換することが難しく、細かなニュアンスの調整が必要となる
場合があります。このときは、ログファイルにグラデーションの記述を行
うようにしましたので、修正のさいの目安としてください。
6.MIDI CHチェンジデータの変換で、MPU<-->RS232Cと出力先が変る場合は、
2トラックのMIDIファイルに展開されます。
7.出力先の指定がMPUの場合はMIDIポート番号0、RS232Cの場合はMIDIポート
番号1、に変換されます。(標準MIDIファイルメタコマンド)
8.エクスクル-シブデータは、MIDIポート番号を付けません。
9.CM6とGSDファイルの両方を使用するデータは、それぞれ別のトラックに
エクスクルーブデータを作ります。
10.MUTEされたトラックは、MIDIファイルにデータのない空のトラックを作り
<<MUTE>>という文字列とタイトルを挿入します。また、ログファイルにも
<<MUTE>>という項目を追加し注意を促します。
11.RLGファイルに変換するさい、データの無いトラックは変換しません。
トラック番号も詰められます。
【 6.RLG ファイルの書式 】
Ver4.05より、RCPテキスト化ファイルをコンパイルし、RCPファイル
を作ることができるようになりました。このテキストデ-タは、レコンポ-ザのトラ
ックエディタのイメ-ジそのものです。コマンドなどは、レコンポ-ザのマニュアル
を参照して下さい。
また、Ver5.0以前は、18トラック分のデータが無いと正常に変換しません
でしたが、今回から1トラックだけでも変換できるようにしました。以下のサンプル
を切り取って変換することができます。レコンポーザのコマンドとしては、以下の
サンプルに全て網羅されているはずです。
;*==========================================*
; <RCP> Header Info.
;*==========================================*
@RCP_HEADER ; or @R36_HEADER (注1)
@TITLE : "RCM2.5 コマンド一覧データ 作成 Haji"
@TIMEBASE : 48
@TEMPO : 120
@BEAT : 4/4
@KEY : "C Major"
@PLAY_BIAS : 0
@CM6_FILE : ""
@GSD_FILE : ""
@MEMO
; +----------------------------+
| |
| コマンドはRCMの |
| マニュアルを参照して |
| 下さい。 |
| スペルは若干異なる場合 |
| があります。 |
| |
| |
| |
| |
| CVS.EXE Ver5.06 Created |
| Copyright(c) Hajime Koike |
; +----------------------------+
@END_MEMO
@UsrExc0 "GS MASTER VOLUME "
$41 10 42 12 cs 40 00 04 ve ss
@UsrExc1 "GS MASTER KEY-SHIFT "
$41 10 42 12 cs 40 00 05 ve ss
@UsrExc2 "GS MASTER PAN "
$41 10 42 12 cs 40 00 06 ve ss
@UsrExc3 "GS SYSTEM RESET "
$41 10 42 12 cs 40 00 7F 00 ss
@UsrExc4 "GS REVERB MACRO "
$41 10 42 12 cs 40 01 30 ve ss
@UsrExc5 "GS CHORUS MACRO "
$41 10 42 12 cs 40 01 38 ve ss
@UsrExc6 "GS MASTER TUNE = 442.0 "
$41 10 42 12 cs 40 00 00 00 04 05 ve ss
;-----------------------------
;R-No. Rythm Name NOTE GT
;-----------------------------
@R1 "HandClap " 39 1
@R2 "MuteHighConga " 62 1
@R3 "OpenHighConga " 63 1
@R4 "LowConga " 64 1
@R5 "CrashCymbal1 " 49 1
@R6 "RideCymbal1 " 51 1
@R7 "PedalHi-hat " 44 1
@R8 "OpenHi-hat " 46 1
@R9 "ClosedHi-hat " 42 1
@R10 "HighTom2 " 48 1
@R11 "MidTom2 " 45 1
@R12 "LowTom2 " 41 1
@R13 "SideStick " 37 1
@R14 "SnareDrum2 " 40 1
@R15 "SnareDrum1 " 38 1
@R16 "KickDrum1 " 36 1
@R17 "HighTimbale " 65 1
@R18 "LowTimbale " 66 1
@R19 "Cowbell " 56 1
@R20 "HighBongo " 60 1
@R21 "LowBongo " 61 1
@R22 "HighAgogo " 67 1
@R23 "LowAgogo " 68 1
@R24 "Tambourine " 54 1
@R25 "Claves " 75 1
@R26 "Maracas " 70 1
@R27 "LongLowWhistle" 72 1
@R28 "ShortHiWhistle" 71 1
@R29 "Cabasa " 69 1
@R30 "ShortGuiro " 73 1
@R31 "MuteTriangle " 80 1
@R32 "OpenTriangle " 81 1
@END_HEADER
;==============================================
; <Track 1> Size = 644 byte
;==============================================
@START_TRACK 1 ;(注2)
@MEMO : "コマンド一覧 トラック "
@MODE : PLAY ;or MUTE
@CH : M1
@KEY : 0 ;-12 ~ +12
@ST : 0 ;-99 ~ +99
@RYTHM : OFF ;or ON
;------------------------------
;MEAS STEP NOTE ST GT VEL
;------------------------------
1 1 :"MIDIイベント "
:AFTER_K. 1 11 11
2 :CONTROL 2 22 22
3 :PROGRAM 3 3
4 :AFTER_C. 4 33 44
5 :PITCH 5 8191
6 :PITCH 6 -8192
:------- 21 -------
2 1 :"コントロールチェンジ"
:MODULATE 1 1 1
2 :PORTA_T 2 5 2
3 :VOLUME 3 7 3
4 :PANPOT 4 10 4
5 :EXPRESS 5 11 5
6 :PEDAL 6 64 6
7 :PORTAM 7 65 7
8 :SOSTEN 8 66 8
9 :SOFT 9 67 9
10 :CONTROL 10 84 10
11 :REVERB 11 91 11
12 :CHORUS 12 93 12
13 :NRPN(L) 13 98 13
14 :NRPN(M) 14 99 14
15 :DATA(M) 15 6 15
16 :DATA(L) 16 38 16
17 :RPN(L) 17 100 17
18 :RPN(M) 18 101 18
19 :EXPRESS 19 11 19
20 :CONTROL 20 22 20
21 :BankPrg 21 33 21
:------- 231 -------
3 1 :"MIDI制御データ "
:TEMPO 1 64 1
2 :MIDI_CH. 2 M2
3 :KeyScan 3 56
4 :Music_Key G Major
:------- 6 -------
4 1 :"エクスクルーシブ制御"
:Tr.EXCL 1 0 11
:$F0 41 10 45 12 cs 10 01 00 00 00 00 00 00 00 00
:$00 00 00 00 03 07 07 03 01 04 06 05 04 04 04 04
:$04 04 04 1C 1E 1E 1E 1C 10 00 00 00 10 08 04 08
:$00 00 00 00 00 00 00 0C 00 00 00 00 00 00 00 00
:$00 00 00 00 00 00 00 00 00 ss F7
2 :UsrExc0 2 0 22
3 :RolBase 3 16 33
4 :RolDev# 4 16 44
5 :RolPara 5 0 55
:------- 15 -------
5 1 :MKS-7 1 11 1
2 :DX.PERF 2 22 2
3 :DX7-2_R 3 33 3
4 :DX7-2_P 4 44 4
5 :DX7-2_A 5 55 5
6 :DX7FUNC 6 66 6
7 :FB-01_P 7 77 7
8 :FB-01_S 8 88 8
9 :TX.FUNC 9 99 9
10 :TX81Z_E 10 11 10
11 :TX81Z_P 11 22 11
12 :TX81Z_S 12 33 12
13 :TX81Z_V 13 44 13
:------- 91 -------
6 1 :A4 24 20 64
2 :B4 24 20 64
3 : [
3 :C4 24 20 64
4 :D4 24 20 64
5 :E4 24 20 64
6 : ] 3
6 :F4 24 20 64
7 :G4 24 20 64
7 :======= 5 =======
8 1 :A4 24 20 64
2 :B4 24 20 64
3 :C4 24 20 64
4 :D4 24 20 64
5 :E4 24 20 64
6 :F4 24 20 64
7 :G4 24 20 64
:------- 168 -------
@END_TRACK
注1:@RCP_HEADERを;@R36_HEADERに書き換えると、*.R36ファイルを作成します。
注2:Ver5.00より、@RCP_TRACK コマンドは、@START_TRACKに変更になりました。
【 7.配布および転載 】
その後のバ-ジョンアップなどのフォロ-をきちんとやっていただけるという
条件付きで自由です。ただし他のネットに転載する場合は、その旨を連絡して
下さい。(事後承諾可)
また、このソフトを使用して発生するいかなる事に関しても、作者はその責任
を負いません。
【 8.最後に 】
ご意見ご感想をお待ちしています。
Nifty PFH00375
PC VAN BHG98339
マスターネット AAY452
-----------------------------------------------------------------------------
バージョンアップ履歴 Ver5.00より
------------------------------------------------------------------------------
(Ver5.06)
1.R36ファイルの一番最後のトラックにあるテンポデータの変換ができなかった
バグを修正しました。
2.各トラック情報を表示するメタイベント(アスキーコード)の先頭に、MIDI
ポートとMIDI CH情報を追加できるオプション -Tportを新設しま
した。[A-01]、[B-02]、のように書き込まれマニュアルでMIDIポートとCH
を設定する場合に便利です。
3.拍子の変更を記録するオプションのバグを修正し、機能を一部変更しました。
前のバージョンまでは、レコンポーザファイルの小節線間のステップ数の合計が
前の小節と異なるかを検出して、異なった場合に拍子の変更を書き込んでいまし
たが、書き込んだ時点では拍子の変更が1小節遅れていました。(^^;)
また、全トラックでこの操作をしているため、小節線が少しでも異なるトラック
があると、拍子の変更が頻繁に起こることがあり、あまり実用的ではありません
でした。今回から、1つのトラックのみを対象にするよう変更すると共に、どの
トラックを対象とするかのオプション -Bnを追加しました。ディフォルトで
は、トラック1のみが有効になっています。nを36以上とすれば、今までと
同様に全トラックを対象にすることもできます。
4.Music Key(調子)の記録オプションで、全トラックを対象としていま
したが、1つのトラックのみを対象とすることができるよう変更しました。
-Knオプションで、nを36以上とすれば、今までと同様に全トラックを対象
にすることもできます。
95/08/29
(Ver5.05)
CM6/GSD/MTDファイルをエクスクルーシブデータに変換した場合、エクスクルー
シブデータパケット間(F0..F7からF0..F7の間)のデルタタイムが短くて、転送量
の限界を越える不適切な値のものがありましたので修正しました。この変換後のデ
ータを演奏させると、ソフトによっては、曲の最初が数小節音が抜けるような動作
をする場合があります。
この症状を少し詳しく説明します。MIDIデータは1Byte転送するのに約320usec
かかります。例えばテンポが120でタイムベースが48の場合、最少の分解能(1tick)
では約32byte転送できることになります。ところが、CVSで変換してできたファイル
は、266Byte転送するのに5tick(デルタタイム)の時間しか許さないといった変換
を行っておりました。266Byteを送るには 266/32=8.312 ですから、実際には9tick
のデルタタイムが必要になります。この矛盾したデータを演奏する場合、どう処理
するかはソフトによって異なりますので、場合によっては支障なく聞けるものもあ
ります。しかし、いずれにせよ決められた時間内に処理が間に合わないようなデー
タを作ることは好ましくありませんので、今回バージョンアップを行いました。
94/03/20
(Ver5.04)
1.MIDI CHチェンジコマンドの変換で不具合がありましたので修正しました。
CH OFFのデータを変換していましたので、変換しないようにしました。
RCPファイルのトラックの途中でMPUポートとRSポートが切り替わる
ようなデータでは、2トラック分のMIDファイルに展開されるのですが、
2つに分離する時に一部重複して変換してしまう場合があった不具合を修正
しました。
2.M16、R16、OFFの各データが、LOGファイルとRLGファイルに
書き込まれる時、CH 0になってしまう不具合を修正しました。
3.Music Keyの変換を禁止するオプションを追加しました。
4.CVS.DEFで全てのコマンドラインオプションが設定可能になりました。
94/03/06
(Ver5.03)
1.レコンポーザファイルで、曲の最後に休符があった場合、変換しない仕様を
変更しました。標準MIDIファイル上では、コマンドのエンドオブトラック
までのデルタタイムの時間を休符と同じにすることで対応しています。
(Ver5.02)
1.LOOP回数が255などのデータで、変換するとファイルが大きくなり
過ぎる場合に繰り返しの最大値を指定できるようにしました。
2.実際には無意味なデータですが、セイムメジャーコマンドで繰り返す小節が
現在の小節を指定された場合に、永久ループから抜けられなくなってしまう
仕様を変更しました。
3.RLGファイルを作成する場合、トラックの一番最初のデータが、セイムメジ
ャーから始まると、小節番号のカウントが一つ多くなってしまうバグを修正し
ました。
4.RLGファイルのトラックMEMOの文字の中に、* " | / : など特定
の文字があった場合MEMOデータが消えてしまうバグを修正しました。
5.プログラムの呼び出し時に CVS B:*.RCP <RET> のようにドライブ指定された
場合にプログラムが起動できないバグを修正しました。
(B:\*.RCPならOKでした)
94/02/07
(Ver5.01)
1.トラックエクスクルーシブの変換時に、パラメータとしてgt、ve、chを
指定した時、チェックサムの計算が間違っていましたので、修正しました。
2.同様にトラックエクスクルーシブの変換で、ステップの値を間違えて変換して
いましたので、修正しました。
94/02/5
【 参考資料 】
----------------------------------------------------------------------------
RCM Ver1 MCPファイル解析
----------------------------------------------------------------------------
1.ファイル形式
」」」」」」」」
.MCPの通常の音符データ、及び、MIDI関係のコマンド等、すべて4バイト
構成で出来ています。データ全体のファイルは下のようになっていますが、ファイル
全体のうち最初の100Hバイトはヘッダー情報としてタイトルとかMIDIチャン
ネルとかタイムベースとかの情報が入っています。
00H ----------------------------
| ヘッダージョウホウ |
100H |--------------------------|
| リズム パターン |
|--------------------------|
| エンソウトラック - 1 |
|--------------------------|
| エンソウトラック - 2 |
|--------------------------|
| エンソウトラック - 3 |
|----------- : ------------|
| : |
| : |
|--------------------------|
| エンソウトラック - 8 |
|--------------------------|
| リズム トラック |
|--------------------------|
各トラックの終わりにデリミタとして、FExxxxxxh(xxは何でも良い)
のデータがあり、それで各データの集まりを管理しています。
2. ヘッダー部
」」」」」」」」
00~01h:”M1” ・・・データID
02~1F :タイトル
20 :4分音符当りのタイム・ベース
21 :テンポ初期値
22、23h:BEAT
24 :KEY
30~3F 、:MIDI BUSモード
40~48 :1~8、及びリズムトラックのMIDIチャンネル
未使用トラックにはFFhが入っている
50~58 :CMU-800のON/OFFで(01h=ON)
60~6F :トーンデータファイルのファイル名
70~7F :トラック -1 コメント
80~8F :トラック -2 コメント
90~9F :トラック -3 コメント
A0~AF :トラック -4 コメント
B0~BF :トラック -5 コメント
C0~CF :トラック -6 コメント
D0~DF :トラック -7 コメント
E0~EF :トラック -8 コメント
F0~FF :リズムトラック コメント
3.曲データ
」」」」」」
曲データの4バイトは以下のようになっています。
BYT1:MIDI、キーナンバー(0~127)
2:ステップタイム(0~255)
3:ゲートタイム (0~255)
4:ベロシティ (0~127)
ステップタイムは「次のデータへ行くまでの時間」という意味を持ち、いわゆる音符
の「音長」とは異なるものです。
この1バイト目のデータが128(80H)以上の時には、そのデータはノート
[音符]ではなく後述する「コマンド」であると識別されます。
+------------------+-------------+--------------+--------------+--------------+
| 意 味 | 1 Byte | 2 Byte | 3 Byte | 4 Byte |
+------------------+-------------+--------------+--------------+--------------+
| Midi CH Change | D0 | Step | CH No. | - |
+------------------+-------------+--------------+--------------+--------------+
| Tempo Change | FA | Step | Parameter | Graduation |
+------------------+-------------+--------------+--------------+--------------+
| After Touch (CH) | E3 (An) | Step | Parameter | - |
+------------------+-------------+--------------+--------------+--------------+
| Control Change | E2 (Bn) | Step | Control No. | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| Program Change | E0 (Cn) | Step | Program No. | - |
+------------------+-------------+--------------+--------------+--------------+
| After Touch Pori.| E1 (Dn) | Step | Key No. | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| Pitch Bend | E4 (En) | Step | Parameter 1 | Parameter 2 |
+------------------+-------------+--------------+--------------+--------------+
| R.EXCLU | E6 | Step | Device ID | Model ID |
+------------------+-------------+--------------+--------------+--------------+
| MT32BASE | E7 | Step | Base Address | Base Address |
+------------------+-------------+--------------+--------------+--------------+
| MT32PARA | E8 | Step | Offset Addr. | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| Loop End | FB | Loop Count | - | - |
+------------------+-------------+--------------+--------------+--------------+
| Loop Start | FC <Cf.1> | - | - | - |
+------------------+-------------+--------------+--------------+--------------+
| Mesure End | FD | - | - | - |
+------------------+-------------+--------------+--------------+--------------+
| End of Track | FE | - | - | - |
+------------------+-------------+--------------+--------------+--------------+
| CMU-800 | F9 | Step | ON=1,OFF=0 | - |
+------------------+-------------+--------------+--------------+--------------+
| DX7 Function | C0 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX Parameter | C1 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX RERF | C2 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX Function | C3 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| FB-01 P Parameter| C5 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| FB-01 S System | C6 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z V VCED | C7 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z A ACED | C8 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z P PCED | C9 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z S Sysytem | CA | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z E EFFECT | CB | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX7-2 R REMOTE SW| CC | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX7-2 A ACED | CD | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX7-2 P PCED | CE | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX802 P PCED | CF | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
Cf.1 繰り返し関係のコマンドです。あえて「ループ」と言うのは、この繰り返し
記号にはネスティングが許されるからです。ネスティングとは以下のように
「入れ子」構造が可能であると言う事です。
[A-B-[C-D]2-E]2
4.MCPのリズムデ-タ部
」」」」」」」」」」」」」
MCPのリズムセクションのデータは、通常の演奏トラックとは別のメモリー領域
に、2箇所に分かれて格納されています。
00H ----------------------------
| ヘッダージョウホウ |
100H |--------------------------|
| 1. リズム パターン |
|--------------------------|
| エンソウトラック - 1 |
|--------------------------|
| エンソウトラック - 2 |
|----------- : ------------|
| : |
| : |
|--------------------------|
| エンソウトラック - 8 |
|--------------------------|
| 2. リズム トラック |
|--------------------------|
1.のリズムパターン部はトラックの0番に当り、各リズムパターンデータが入っ
ています。
一つのパターンデータは16個のショットデータと1個のエンドマークから成
り、ショットデータ、エンドマークはそれぞれ4バイトづつから成ります。
合計で1パターン当り68バイトで出来ています。
ショットデータのうち、下位3バイトが各リズム音のショット値(ベロシティ)
で4バイト目がステップタイムです。
|--------------------|
| ショットデータ ー 1 | 1ショット分のデータ。これが16個
|--------------------| 並んで1パターンデータになる。
| ショットデータ ー 2 |
|--------------------|
| ショットデータ ー 3 |
|--------------------|
| ステップタイム |
|--------------------|
ショットデータの3バイトは2ビットづつ11個の楽器に振り分けられ、3段階の
「ベロシティ」の情報として定義付けられています。(最初のバイトのビット6、
7は常に0です)最後のステップタイムは、演奏トラックのステップタイムと同様
に、「次のショットまでの時間」を示します。
BYT-1 |00:BD:SD:LT|
2 |MT:HT:RS:HC|
3 |CH:OH:CC:RC|
2.のトラックデータでは、トラック0へ定義されている各リズムパターンナンバ
ーを並べて、実際の演奏シーケンスを作っています。これも1データ当り4バ
イトづつ使用しています。
こちらのデータにはステップタイム等の時間情報は含まれておりません。
1データが演奏トラック中の1小節分に対応しています。
|--------------------|
| パタ-ン ナンバ- | この4バイトが演奏トラックの各小節に対応
|--------------------| している。
| ボリュームデーター1 |
|--------------------|
| ボリュームデーター2 |
|--------------------|
| ボリュームデーター3 |
|--------------------|
上記のうちボリュームデータの1~3が、トラック0で定義されているショットデ
ータ中の2ビットの値、1、2、3に対応するベロシティ値です。
-------------------------------------------
RCM Ver2 RCPファイル解析
-------------------------------------------
1.ヘッダー部
」」」」」」」」
0000H - 001FH : RCM-PC98V2.0(C)COME ON MUSICの文字列が書いてあります。
0020H - 005FH : タイトル 64BYTE
0060H - 01AFH : MEMO欄 336BYTE
01B0H - 01BFH : 40Hのコードが16個並んでいます。
01C0H : 4分音符のタイムベース下位。48,60,80,96,120,160,240
01C1H : テンポ値
01C2H : 拍子(分子)
01C3H : 拍子(分母)
01C4H : KEY
01C5H : PLAY BIAS値。
01C6H - 01D1H : コントロールファイル名(.CM6)
01D6H - 01E1H : コントロールファイル名(.GSD)
01E2H - 01E5H : 予約領域 (00H)
01E6H : トラック数 Ver2.5までは0 2.5FのRCPファイルは18(12H)
” R36 ” 36(24H)
01E7H : タイムベース上位。タイムベース480の場合のみ01H
( *(ADDR 01E7H) << 8 ) + *(ADDR 01C0H) 01E0H = 480
01E8H - 01F5H : 予約領域 (00H)
01F6H - 0205H : 各チャンネルのTONENAME.TB?の値 -1。 4ビットづつで
MPUとRS用を設定。 下位が MPU。 上位が RS。
Ver2.5FのSMPUでは、下位が MIDI OUT A。上位が MIDI OUT B。
Ver2.5Fでは R18SPL.EXEが使用。Ver2.5ではRC25PL.EXE。
ここまでが、ヘッダー(共通)情報です。
2.リズム音源定義部
」」」」」」」」」」
0206H - 0405H : 下のパタ-ンが32回続きます
----------------------------------------------------
0206H - 0213H : 楽器名。(14BYTE,空白は20Hで埋める。)
0214H : K#
0215H : GT(通常は1)
----------------------------------------------------
この繰り返しで、32音源が設定できます。
3.ユ-ザ定義エクスクル-シブデ-タ
」」」」」」」」」」」」」」」」」」
0406H - 0585H : 下記のパタ-ンが8回続きます
----------------------------------------------------------
0406H - 041DH : メモ(テキストデ-タ) 24BYTE
041EH - 0435H : エクスクル-シブ 24BYTE
-----------------------------------------------------------
この繰り返しで8種類定義できます。
4.トラックデータ
」」」」」」」」」
ここからは、トラックデータ。トラックの最初は0586hから始まります。
0586H - 0587H : データサイズ。 2 BYTE
0588H : トラック番号。 1 BYTE
0589H : RYTHM ON=80H, OFF=00H 1 BYTE
058AH : MIDI CH MPU=0..15, RS=16..31, OFF=0FFH 1 BYTE
058BH : KEY+ OFF=80H 1 BYTE
058CH : ST+ 1 BYTE (注)
058DH : Mode (0:Play 1:Mute 2:Mix 4:Rec) 1 BYTE
058EH - 05B1H : コメント 36 BYTE
05B2H - : 曲データ本体。
各トラック毎、この繰り返し。
注:RCM2.3aまでは0-255 、RCM2.5以降は-99から+99へ変更になった
5.曲データ
」」」」」」
基本的にはVer1.0と同じ4バイト構成です。
これはマニュアルにも書いてあるのですがタイは従来はGT(GATE TIME)と
ST(STEP TIME)を同じ値にする事によって実現されてましたが、V2からは
ST<GTにしなくてはならなくなりました。
+------------------+-------------+--------------+--------------+--------------+
| 意 味 | 1 Byte | 2 Byte | 3 Byte | 4 Byte |
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 1 | 90 (F0) Cf.1| Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 2 | 91 (F0) | Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 3 | 92 (F0) | Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 4 | 93 (F0) | Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 5 | 94 (F0) | Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 6 | 95 (F0) | Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 7 | 96 (F0) | Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| User Exclusive 8 | 97 (F0) | Step | Ex Data (gt) | Ex Data (vel)|
+------------------+-------------+--------------+--------------+--------------+
| CH Exclusive | 98 | Step | Ex Data (gt) | Ex Data (vel)|
| 2nd Event | F7 <Cf.2> | - | Ex Data 1 | Ex Data 2 |
+------------------+-------------+--------------+--------------+--------------+
| 外部コマンドの実行 | 99 <Cf.3> | - | Command Type | - |
| 2nd Event | F7 <Cf.4> | - | Ascii Code 1 | Ascii Code 2 |
+------------------+-------------+--------------+--------------+--------------+
| Bank & Program | E2 (Cn & Bn)| Step | Prog. Change | Bank Select |
+------------------+-------------+--------------+--------------+--------------+
| Key Scan | E5 | Step | Scan Trk No. | - |
+------------------+-------------+--------------+--------------+--------------+
| Midi CH Change | E6 <Cf.5> | Step | CH No. | - |
+------------------+-------------+--------------+--------------+--------------+
| Tempo Change | E7 | Step | Prameter | Graduation |
+------------------+-------------+--------------+--------------+--------------+
| After Touch (CH) | EA (Dn) | Step | Parameter | - |
+------------------+-------------+--------------+--------------+--------------+
| Control Change | EB (Bn) | Step | Control No. | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| Program Change | EC (Cn) | Step | Program No. | - |
+------------------+-------------+--------------+--------------+--------------+
| After Touch Pori.| ED (An) | Step | Key No. | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| Pitch Bend | EE (En) | Step | Parameter 1 | Parameter 2 |
+------------------+-------------+--------------+--------------+--------------+
| YAMAHA Base | D0 | Step | Base Addr1 | Base Addr2 |
+------------------+-------------+--------------+--------------+--------------+
| YAMAHA Dev# | D1 | Step | Device ID | Model ID |
+------------------+-------------+--------------+--------------+--------------+
| YAMAHA Addr/Para | D2 | Step | Base Addr3 | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| YAMAHA XG Ad/Para| D3 | Step | Base Addr3 | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| Roland Base | DD | Step | Base Address | Base Address |
+------------------+-------------+--------------+--------------+--------------+
| Roland Para | DE | Step | Offset Addr. | Parameter |
+------------------+-------------+--------------+--------------+--------------+
| Roland Device | DF | Step | Device ID | Model ID |
+------------------+-------------+--------------+--------------+--------------+
| Key Change | F5 | Key Data | - | - |
+------------------+-------------+--------------+--------------+--------------+
| Comment Start | F6 | - | Ascii Code 1 | Ascii Code 2 |
| 2nd Event | F7 <Cf.6> | - | Ascii Code 1 | Ascii Code 2 |
+------------------+-------------+--------------+--------------+--------------+
| Loop End | F8 | Loop Count | - | - |
+------------------+-------------+--------------+--------------+--------------+
| Loop Start | F9 <Cf.7> | - | - | - |
+------------------+-------------+--------------+--------------+--------------+
| Same Measure | FC <Cf.8> | Same Meas No.| Offset Low | Offset High |
+------------------+-------------+--------------+--------------+--------------+
| Mesure End | FD | - | - | - |
+------------------+-------------+--------------+--------------+--------------+
| End of Track | FE | - | - | - |
+------------------+-------------+--------------+--------------+--------------+
| DX7 Function | C0 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX Parameter | C1 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX RERF | C2 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX Function | C3 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| FB-01 P Parameter| C5 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| FB-01 S System | C6 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z V VCED | C7 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z A ACED | C8 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z P PCED | C9 | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z S Sysytem | CA | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX81Z E EFFECT | CB | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX7-2 R REMOTE SW| CC | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX7-2 A ACED | CD | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| DX7-2 P PCED | CE | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| TX802 P PCED | CF | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
| MKS-7 | DC | Step | Parameter | Data |
+------------------+-------------+--------------+--------------+--------------+
Cf.1 ユ-ザ定義エクスクル-シブデ-タを選択する。(8種類)このデ-タは
ファイルロ-ケ-ション0406Hから定義されている。
3 Byteおよび4 Byteのデ-タが下の値の時は特別な意味を持つ
80h = gt ;Gate Dataを割り当てる
81h = ve ;Velocity "
82h = ch ;MIDI CH
83h = cs ;Clear Cheack Sum
84h = ss ;Cheack Sum
Cf.2 2回目移行は F7で始まる。3 Byteおよび4 Byte目のデ-タがF7の時は,
エクスクル-シブの1パケットの終了
(ex)
98 00 gt vel ; Strat CH Exclusive gt & velocity data
F7 00 40 12 ; Exclusive Data
F7 00 20 30 ; Exclusive Data
F7 00 F7 F7 ; End Mark Only
F7 00 11 F7 ; 1Byte Data (11) and End Mark
3 Byteおよび4 Byteのデ-タが下の値の時は特別な意味を持つ
80h = gt ;Gate Dataを割り当てる
81h = ve ;Velocity "
82h = ch ;MIDI CH
83h = cs ;Clear Cheack Sum
84h = ss ;Cheack Sum
3 Byteおよび4 ByteにF7が無い時でも,エクスクル-シブの1パケットの終り
となる場合がある。この時は次のコマンド(1 Byte目)がF7以外のコマンドとな
る。
Cf.3 Command Type は、外部コマンドの実行の種類を表す。 0:MCI 1:RUN
(Win1.2から追加)
Cf.4 2回目移行は F7で始まる。(CH Exclusiveと同じ)
Cf.5 MIDI CH : OFF=0, MPU=1..16, RS=17..32 トラックヘッダのMIDI CHとは
異なるので要注意
Cf.6 2回目移行は F7で始まる。(CH Exclusiveと同じ)
Cf.7 繰り返し関係のコマンドです。あえて「ループ」と言うのは、この繰り返し
記号にはネスティングが許されるからです。ネスティングとは以下のように
「入れ子」構造が可能であると言う事です。
[A-B-[C-D]2-E]2
Cf.8 OFFSETアドレスは、各トラックの初めからのバイト数。
繰り返す小節番号は、OFFSET LOWの下位2BITが付け加えられて1024小節
まで指定可能(実際は999まで)
繰り返す小節番号 = 2Byte + (3Byte & 3) << 8;
Track初めからのOFFSET ADRESS = (3Byte & 0xFC) | (4Byte << 8);
6.KEYデ-タ値一覧 (ヘッダ-オフセット 1C4H)
」」」」」」」」」」」」」」」」」」」」」」」」」
#/bの数 調 No 調 No
-------------------------------------
0 C Major (00) A Minor (10)
1# G Major (01) E Minor (11)
2# D Major (02) B Minor (12)
3# A Major (03) F# Minor (13)
4# E Major (04) C# Minor (14)
5# B Major (05) G# Minor (15)
6# F# Major (06) D# Minor (16)
7# C# Major (07) A# Minor (17)
0 C Major (08) A Minor (18)
1b F Major (09) D Minor (19)
2b Bb Major (0A) G Minor (1A)
3b Eb Major (0B) C Minor (1B)
4b Ab Major (0C) F Minor (1C)
5b Db Major (0D) Bb Minor (1D)
6b Gb Major (0E) Eb Minor (1E)
7b Cb Major (0F) Ab Minor (1F)
7.音色ファイル解析
」」」」」」」」」」」
7-1.MTDファイル (MT32用)
」」」」」」」」」」」」」」」」」」」
基本的にエクスクル-シブデ-タをベタに書き落したファイルです。
(LOC) (LEN) (MT32-ADDR)
-----------------------
0080 : 017 10 00 00 ;System area
0FE0 : 100 08 00 00 ;Timbre Memory #1 (User 128)
10E0 : 100 08 02 00 ; " #2 (Ussr 129)
11E0 : 100 08 04 00
12E0 : 100 08 06 00
13E0 : 100 08 08 00
14E0 : 100 08 0A 00
15E0 : 100 08 0C 00
16E0 : 100 08 0E 00
17E0 : 100 08 10 00
18E0 : 100 08 12 00
19E0 : 100 08 14 00
1AE0 : 100 08 16 00
1BE0 : 100 08 18 00
1CE0 : 100 08 1A 00
1DE0 : 100 08 1C 00
1EE0 : 100 08 1E 00
1FE0 : 100 08 20 00
20E0 : 100 08 22 00
21E0 : 100 08 24 00
22E0 : 100 08 26 00
23E0 : 100 08 28 00
24E0 : 100 08 2A 00
25E0 : 100 08 2C 00
26E0 : 100 08 2E 00
27E0 : 100 08 30 00
28E0 : 100 08 32 00
29E0 : 100 08 34 00
2AE0 : 100 08 36 00
2BE0 : 100 08 38 00
2CE0 : 100 08 3A 00
2DE0 : 100 08 3C 00
2EE0 : 100 08 3E 00
2FE0 : 100 08 40 00
30E0 : 100 08 42 00
31E0 : 100 08 44 00
32E0 : 100 08 46 00
33E0 : 100 08 48 00
34E0 : 100 08 4A 00
35E0 : 100 08 4C 00
36E0 : 100 08 4E 00
37E0 : 100 08 50 00
38E0 : 100 08 52 00
39E0 : 100 08 54 00
3AE0 : 100 08 56 00
3BE0 : 100 08 58 00
3CE0 : 100 08 5A 00
3DE0 : 100 08 5C 00
3EE0 : 100 08 5E 00
3FE0 : 100 08 60 00
40E0 : 100 08 62 00
41E0 : 100 08 64 00
42E0 : 100 08 66 00
43E0 : 100 08 68 00
44E0 : 100 08 6A 00
45E0 : 100 08 6C 00
46E0 : 100 08 6E 00
47E0 : 100 08 70 00
48E0 : 100 08 72 00
49E0 : 100 08 74 00
4AE0 : 100 08 76 00
4BE0 : 100 08 78 00
4CE0 : 100 08 7A 00
4DE0 : 100 08 7C 00
4EE0 : 100 08 7E 00
0130 : 100 03 01 10 ;Rythm Setup Temp Area (#24 - #87)
00A0 : 090 03 00 00 ;Patch Temp Area (Part1 - Part8 - Rythm)
0230 : 0F6 04 00 00 ;Timbre Tmpo Area (Part1)
0326 : 0F6 04 01 76 ; " (part2)
041C : 0F6 04 03 6C
0512 : 0F6 04 05 62
0608 : 0F6 04 07 58
06FE : 0F6 04 09 4E
07F4 : 0F6 04 0B 44
08EA : 0F6 04 0D 3A
09E0 : 080 05 00 00 ;Patch Memory (#1 - #16)
0A60 : 080 05 01 00 ; " (#17 - #32)
0AE0 : 080 05 02 00
0B60 : 080 05 03 00
0BE0 : 080 05 04 00
0C60 : 080 05 05 00
0CE0 : 080 05 06 00
0D60 : 080 05 07 00
7-2 .CM6ファイル (CM64用)
」」」」」」」」」」」」」」」」」」」
MTDと同様にエクスクル-シブデ-タをベタに書き落したファイルです。
ファイルロケ-ションがMTDファイルとは異なっています。
(LOC) (LEN) (CM64-ADDR)
-----------------------
0080 : 017 10 00 00 ;LA System aria
0E34 : 100 08 00 00 ;Timbre Memory #1 (User 128)
0F34 : 100 08 02 00 ; " #2 (User 129)
1034 : 100 08 04 00 ; " #3 (User 130)
1134 : 100 08 06 00
1234 : 100 08 08 00
1334 : 100 08 0A 00
1434 : 100 08 0C 00
1534 : 100 08 0E 00
1634 : 100 08 10 00
1734 : 100 08 12 00
1834 : 100 08 14 00
1934 : 100 08 16 00
1A34 : 100 08 18 00
1B34 : 100 08 1A 00
1C34 : 100 08 1C 00
1D34 : 100 08 1E 00
1E34 : 100 08 20 00
1F34 : 100 08 22 00
2034 : 100 08 24 00
2134 : 100 08 26 00
2234 : 100 08 28 00
2334 : 100 08 2A 00
2434 : 100 08 2C 00
2534 : 100 08 2E 00
2634 : 100 08 30 00
2734 : 100 08 32 00
2834 : 100 08 34 00
2934 : 100 08 36 00
2A34 : 100 08 38 00
2B34 : 100 08 3A 00
2C34 : 100 08 3C 00
2D34 : 100 08 3E 00
2E34 : 100 08 40 00
2F34 : 100 08 42 00
3034 : 100 08 44 00
3134 : 100 08 46 00
3234 : 100 08 48 00
3334 : 100 08 4A 00
3434 : 100 08 4C 00
3534 : 100 08 4E 00
3634 : 100 08 50 00
3734 : 100 08 52 00
3834 : 100 08 54 00
3934 : 100 08 56 00
3A34 : 100 08 58 00
3B34 : 100 08 5A 00
3C34 : 100 08 5C 00
3D34 : 100 08 5E 00
3E34 : 100 08 60 00
3F34 : 100 08 62 00
4034 : 100 08 64 00
4134 : 100 08 66 00
4234 : 100 08 68 00
4334 : 100 08 6A 00
4434 : 100 08 6C 00
4534 : 100 08 6E 00
4634 : 100 08 70 00
4734 : 100 08 72 00
4834 : 100 08 74 00
4934 : 100 08 76 00
4A34 : 100 08 78 00
4B34 : 100 08 7A 00
4C34 : 100 08 7C 00
4D34 : 100 08 7E 00
0130 : 100 03 01 10 ;Rhythm Setup Temp Area (#24 - #87)
0230 : 054 03 03 10 ; " (#88 - #108) CM64で追加
00A0 : 090 03 00 00 ;Patch Temp Area (Part1 - Part8 - Rythm)
0284 : 0F6 04 00 00 ;Timbre Temp Area (part1)
037A : 0F6 04 01 76 ; " (Part2)
0470 : 0F6 04 03 6C
0566 : 0F6 04 05 62
065C : 0F6 04 07 58
0752 : 0F6 04 09 4E
0848 : 0F6 04 0B 44
093E : 0F6 04 0D 3A
0A34 : 080 05 00 00 ;Patch Memory (#1 - #16)
0AB4 : 080 05 01 00 ; " (#17 - #32)
0B34 : 080 05 02 00
0BB4 : 080 05 03 00
0C34 : 080 05 04 00
0CB4 : 080 05 05 00
0D34 : 080 05 06 00
0DB4 : 080 05 07 00
4E34 : 0BD 50 00 00 ;PCM Patch Temp Area (Part1 - Part6)
4EB2 : 098 51 00 00 ;PCM Patch Memory (#1 - #16)
4F4A : 098 51 01 18 ; " (#17 - #32)
4FE2 : 098 51 02 30
507A : 098 51 03 48
5112 : 098 51 04 60
51AA : 098 51 05 78
5242 : 098 51 07 10
52DA : 098 51 08 28
5372 : 098 51 09 40
540A : 098 51 0A 58
54A2 : 098 51 0B 70
553A : 098 51 0D 08
55D2 : 098 51 0E 20
566A : 098 51 0F 38
5702 : 098 51 10 50
579A : 098 51 11 68
5832 : 011 52 00 00 ;PCM Sytem Area
7-3.GSDファイル (SC55用)
」」」」」」」」」」」」」」」」」」」
このファイルの特徴は、以下に示すようなことがあります。
1.マニュアルに載っているGSのインプリチャートとだいたい同じ順で、
同じ内容のデ-タが並んでいます。
2.各パートの最後にパーシャルリザーブ値が入っています。
3.プログラムではパート情報をバルクダンプ形式で送信します。
バルクダンプ形式のデ-タは、インデビジアル形式のデ-タより短時間にエクス
ル-シブの転送が可能です。インデビジアル形式では、1バイトのデ-タに毎回
メ-カIDとアドレス付ける必要があるためデ-タの総量が多くなります。これに
対しバルクダンプ形式では、MIDIチャンネルやドラムパ-トごとにまとまった
デ-タを送るためデ-タ量がずっと少なくて済みます。また、複数のエリアを1バ
イトに圧縮してデ-タ量を減らす工夫もされています。
GSDファイルの構造は、殆どがインデビジアル形式のデ-タをベタ書きしたもの
です。したがってGSDファイルの転送を行う場合は、プログラム側でバルクダン
プ 形式に変換してやる必要があります。
(LOC) (LEN) (GSD-ADDR) (意味)
--------------------------------------------------
0020 : 004 40 00 00 /* 0: Master tune */
0024 : 001 40 00 04 /* 1: Master volume */
0025 : 001 40 00 05 /* 2: Master Key Shift */
0026 : 001 40 00 06 /* 3: Master Panpot */
0027 : 007 40 01 30 /* 4: Reverv */
002E : 008 40 01 30 /* 5: Chorus */
00AF : 010 40 01 10 /* 6: Patial Reserv */
0036 : 07A 48 02 70 /* 7: CH 1 Part Data */
00B0 : 07A 48 04 50 /* 8: CH 2 " */
012A : 07A 48 06 30 /* 9: CH 3 " */
01A4 : 07A 48 08 10 /* 10: CH 4 " */
021E : 07A 48 09 70 /* 11: CH 5 " */
0298 : 07A 48 0B 50 /* 12: CH 6 " */
0312 : 07A 48 0D 30 /* 13: CH 7 " */
038C : 07A 48 0F 10 /* 14: CH 8 " */
0406 : 07A 48 10 70 /* 15: CH 9 " */
0480 : 07A 48 01 10 /* 16: CH 10 " */
04FA : 07A 48 12 50 /* 17: CH 11 " */
0574 : 07A 48 14 30 /* 18: CH 12 " */
05EE : 07A 48 16 10 /* 19: CH 13 " */
0668 : 07A 48 17 70 /* 20: CH 14 " */
06E2 : 07A 48 19 50 /* 21: CH 15 " */
075C : 07A 48 1B 30 /* 22: CH 16 " */
07D6 : 148 49 02 00 /* 23: Rythm Map 1 */
0922 : 148 49 12 00 /* 24: Rythm Map 2 */
0A6E : 002 /* 25: Master Fine Tune */
0A70 : 001 /* 26: Master cose Tune */
-----------------------------------------------------------------------
<< CH 1 - CH16 Part Data 詳細 >>
(OFS) (LEN) (意味) (バルクダンプデ-タ)
----------------------------------------(Packet 1)---------------------
000 : BANK (LSB) DATA 0,1 (注)
001 : PROGRAM CHANGE DATA 2,3
002 : MIDI CH DATA 8,9
003 : PITCH BEND (ON/OFF) ---+
004 : CH PRESSURE (ON/OFF) | DATA 4 (圧縮)
005 : PROGRAM CHANGE (ON/OFF) |
006 : CONTROL CHANGE (ON/OFF) ---+
007 : POLY PRESSURE (ON/OFF) ---+
008 : NOTE MESSAGE (ON/OFF) | DATA 5
009 : RPN (ON/OFF) |
00A : NRPN (ON/OFF) ---+
00B : MODURATION (ON/OFF) ---+
00C : VOLUME (ON/OFF) | DATA 6
00D : PANPOT (ON/OFF) |
00E : EXPRESSION (ON/OFF) ---+
00F : HOLD1 (ON/OFF) ---+
010 : PORTMENT (ON/OFF) | DATA 7
011 : SOSTENUTE (ON/OFF) |
012 : SOFT (ON/OFF) ---+
013 : MONO/PORY MODE (ON/OFF) ---+
014 : ASSIGN MODE (0/1/2) | DATA 10,11
015 : USE FOR RHYTHM PART (0/1/2) --+
016 : PITCH KEY SHIFT DATA 12,13
017 : PITCH OFFSET FINE DATA 14
018 : PITCH OFFSET FINE (NIBBLIZED) DATA 15
019 : PART LEVEL DATA 16,17
01A : VELOCITY SENSE DEPTH DATA 22,23
01B : VELOCITY SENSE OFFSET DATA 20,21 #1
01C : PART PANPOT DATA 18,19 #2
01D : KEY RANGE LOW DATA 24,25
01E : KEY RANGE HIGH DATA 26,27
01F : CC1 CONTROLLER NUMBER DATA 76,77,
020 : CC2 CONTROLLER NUMBER DATA 78,79
021 : CHOURS SEND DEPTH DATA 28,29
022 : REVERB SEND DEPTH DATA 30,31
023 : TONE MODEFY 1 DATA 32,33
024 : TONE MODEFY 2 DATA 34,34
025 : TONE MODEFY 3 DATA 36,47
026 : TONE MODEFY 4 DATA 38,39
027 : TONE MODEFY 5 DATA 40,41
028 : TONE MODEFY 6 DATA 42,43
029 : TONE MODEFY 7 DATA 44,45
02A : TONE MODEFY 8 DATA 46,57
02B : SCALE TUNIG C DATA 52,53 (DATA 48,49,50,51の値は0)
02C : SCALE TUNIG C# DATA 54,55
02D : SCALE TUNIG D DATA 56,57
02E : SCALE TUNIG D# DATA 58,59
02F : SCALE TUNIG E DATA 60,61
020 : SCALE TUNIG F DATA 62,63
031 : SCALE TUNIG F# DATA 64,65
032 : SCALE TUNIG G DATA 66,67
033 : SCALE TUNIG G# DATA 68,69
034 : SCALE TUNIG A DATA 70,71
035 : SCALE TUNIG A# DATA 72,73
036 : SCALE TUNIG B DATA 74,75
037 : MOD PITCH CONTROL DATA 80,81
038 : MOD TVF CUTOFF CONTROL DATA 82,83
039 : MOD AMPLITUDE CONTROL DATA 84,85
03A : MOD LFO1 RATE CONTROL DATA 88,89 (DATA 86,87の値は0)
03B : MOD LFO1 PITCH DEPTH DATA 90,91
03C : MOD LFO1 TVF DEPTH DATA 92,93
03D : MOD LFO1 TVA DEPTH DATA 94,95
03E : MOD LFO2 RATE CONTROL DATA 96,97
03F : MOD LFO2 PITCH DEPTH DATA 98,99
030 : MOD LFO2 TVF DEPTH DATA 100,101
041 : MOD LFO2 TVA DEPTH DATA 102,103
042 : BEND PITCH CONTROL DATA 104,105
043 : BEND TVF CUTOFF CONTROL DATA 106,107
044 : BEND AMPLITUDE CONTROL DATA 108,109
045 : BEND LFO1 RATE CONTROL DATA 112,113 (DATA 110,111の値は0)
046 : BEND LFO1 PITCH DEPTH DATA 114,115
047 : BEND LFO1 TVF DEPTH DATA 116,117
048 : BEND LFO1 TVA DEPTH DATA 118,119
049 : BEND LFO2 RATE CONTROL DATA 120,121
04A : BEND LFO2 PITCH DEPTH DATA 122,123
04B : BEND LFO2 TVF DEPTH DATA 124,125
04C : BEND LFO2 TVA DEPTH DATA 126,127
--------------------------------------(Packet 2)-------------------------
04D : CAf PITCH CONTROL DATA 0,1
04E : CAf TVF CUTOFF CONTROL DATA 2,3
04F : CAf AMPLITUDE CONTROL DATA 4,5
050 : CAf LFO1 RATE CONTROL DATA 6,7
051 : CAf LFO1 PITCH DEPTH DATA 10,11 (DATA 8=4, DATA 9=0)
052 : CAf LFO1 TVF DEPTH DATA 12,13
053 : CAf LFO1 TVA DEPTH DATA 14,15
054 : CAf LFO2 RATE CONTROL DATA 16,17
055 : CAf LFO2 PITCH DEPTH DATA 18,19
056 : CAf LFO2 TVF DEPTH DATA 20,21
057 : CAf LFO2 TVA DEPTH DATA 22,23
058 : PAf PITCH CONTROL DATA 24,25
059 : PAf TVF CUTOFF CONTROL DATA 26,27
05A : PAf AMPLITUDE CONTROL DATA 28,29
05B : PAf LFO1 RATE CONTROL DATA 30,31
05C : PAf LFO1 PITCH DEPTH DATA 34,35 (DATA 32=4, DATA 33=0)
05D : PAf LFO1 TVF DEPTH DATA 36,37
05E : PAf LFO1 TVA DEPTH DATA 38,39
05F : PAf LFO2 RATE CONTROL DATA 40,41
060 : PAf LFO2 PITCH DEPTH DATA 42,43
061 : PAf LFO2 TVF DEPTH DATA 44,45
062 : PAf LFO2 TVA DEPTH DATA 46,47
063 : CC1 PITCH CONTROL DATA 48,49
064 : CC1 TVF CUTOFF CONTROL DATA 50,51
065 : CC1 AMPLITUDE CONTROL DATA 52,53
066 : CC1 LFO1 RATE CONTROL DATA 56,57 (DATA 54=0, DATA 55=0)
067 : CC1 LFO1 PITCH DEPTH DATA 58,59
068 : CC1 LFO1 TVF DEPTH DATA 60,61
069 : CC1 LFO1 TVA DEPTH DATA 62,63
06A : CC1 LFO2 RATE CONTROL DATA 64,65
06B : CC1 LFO2 PITCH DEPTH DATA 66,67
06C : CC1 LFO2 TVF DEPTH DATA 68,69
06D : CC1 LFO2 TVA DEPTH DATA 70,71
06E : CC2 PITCH CONTROL DATA 72,73
06F : CC2 TVF CUTOFF CONTROL DATA 74,75
070 : CC2 AMPLITUDE CONTROL DATA 76,77
071 : CC2 LFO1 RATE CONTROL DATA 80,81 (DATA 78=0, DATA 79=0)
072 : CC2 LFO1 PITCH DEPTH DATA 82,83
073 : CC2 LFO1 TVF DEPTH DATA 84,85
074 : CC2 LFO1 TVA DEPTH DATA 86,87
075 : CC2 LFO2 RATE CONTROL DATA 88,89
076 : CC2 LFO2 PITCH DEPTH DATA 90,91
077 : CC2 LFO2 TVF DEPTH DATA 92,93
078 : CC2 LFO2 TVA DEPTH DATA 94,95
079 : PARTIAL RESERVE
注: 1byteを4bitずつ2byteに拡張(以下同じ)
#1,#2 CVS Ver5.05より(誤を)修正
----------------------------------------------------------
<< DRUM デ-タの詳細 >>
(OFS) (LEN) (意味)
----------------------------------------------------------
00 : NOTE NO.27 LEVEL
01 : NOTE NO.27 PANPOT
02 : NOTE NO.27 REVERB DEPTH
03 : NOTE NO.27 CHORUS DEPTH
04 : NOTE NO.28 LEVEL
05 : NOTE NO.28 PANPOT
06 : NOTE NO.28 REVERB DEPTH
07 : NOTE NO.28 CHORUS DEPTH
.
.
.
144 : NOTE NO.108 LEVEL
145 : NOTE NO.108 PANPOT
146 : NOTE NO.108 REVERB DEPTH
147 : NOTE NO.108 CHORUS DEPTH
注: 1byteを4bitずつ2byteに拡張
バルクダンプデ-タは2パケットにして送る
パケット1(Data=64byte) : 0-27バイトにはデ-タ0が入る
パケット2(Data=64byte) : 45-64バイトにはデ-タ0が入る