z2m3his.txt

→v1.32 (July 1st, 2008)

・ボリューム操作に使うコントロールチェンジ番号を指定する

-Anum スイッチを追加。初期状態では-A7。

※YAMAHAのSMAFツールで一部、音量情報が使えない為、

このようなことを思いつかれたとのこと。 (Requested from MAZさん)

→v1.31 (May 8th, 2008)

・zmsのファイル名に、"ソ"などのいわゆる5C文字(2byte目が5C(\)になる文字)

を使うと、FILE NOT FOUNDになっていたのを修正。

(5C文字対策のコードは元々入っていたのですが、機能していませんでした・・)

(thanks to ホイホイさん)

→v1.30 (Apr. 13th, 2007)

・スペシャルタイ時チャンネルチェンジすると、スペシャルタイ分の

ピッチベンドがリセットされずに残る場合がある問題を修正。

(thanks to みやざきさん)

・z80,100 de&e などで、最後のタイ接続時に余計なアフタータッチが

入るのをとりあえず削除。後日本家の正しいアフタータッチの

挿入法がわかり次第対応し直します。(thanks to wabeeさん, MAZさん)

・-b2 スイッチをつけてコンバートした場合などに、ノートオン毎に

ピッチベンドの初期化が入るようになっていたのを修正。

(thanks to MAZさん)

→v1.29 (Feb. 6th, Mar. 5th and Mar. 24th, 2007)

・通常モードのARCCのリセット値として振幅値をセットしていたり、

タイミングがおかしかったりしていたのを修正。 (thanks to 3Tさん)

・@xでリアルタイムメッセージを埋め込めるよう修正。(thanks to MAZさん)

・ARCCの重畳ロジックがおかしかったのを修正。

(4本のARCCそれぞれの波形演算後に重畳すべきところを、

演算前に重ねていたため、合算値を振幅として波形に入力してました・・)

・ARCCの1/8モード定義直後の発音時はARCCのリセット値を送信しないよう修正。

・複数trkを単一chに割り当てていた場合、無限ループのフェードアウト変換時に

音量がおかしくなっていたのを修正。(v1.25エンバグ)

・v1.25/1.28でのフェードイン・フェードアウト設定がまだおかしかったのを

修正。

・音色設定を1度も行っていない状態で、音色バンク切り替えのみを行った場合

(=@iの直後に@を置いていない場合)に、音色切り替えが正しく動作

しなかったのを修正。

→v1.28 (Aug. 6th, 2006)

・¥コマンドによるフェードイン・フェードアウトスピードが速すぎたのを

暫定修正。 (thanks to wabeeさん)

→v1.27 (May 8th, 2006)

・format0で出力した場合に限り、トラック末尾のstep timeが正しくSMFに

反映されていなかった問題を修正。

その代わり、format 0指定時に限り、トラック末尾相当の位置に、

強制的に [meta event, cue, ""] (FF06) 相当のSMFデータを埋め込むように

なり、出力されるSMFがほんの少しだけ大きくなります。

あしからずご承知おきください。

(thanks to MAZさん)

→v1.26 (Aug. 17th, 2005)

・-Znumスイッチを追加。SMFの出力フォーマットを指定する。

numには0か1が指定可能。初期値は1。

なお、暫定的に-Znumを指定しなくても別の手段でformat0を作成できるよう

以下の手段を提供する:

-Lnum ([do]~[loop]の展開回数指定) で、numに128~254を

指定することで、フォーマット0、かつ-Lにはnumから128を引いた

値が指定される。

例: -L129 と -Z0 -L1 は同じ意味。

-L255 の時は、フォーマット0、かつ-L256 という意味となります。

つまり、

・フォーマット0

・共通コマンド部の、「小節線までのウエイト挿入」を行わない

・無限ループイベントにXELFさんのXMIDIのXMF拡張メタイベントを用いる

となります。

この暫定措置は、適当な頃合いを見て解除いたします。

→v1.25 (Aug. 9th, 2005)

・[CH_FADER] [TRACK_FADER] が事実上機能していなかったのを修正。

(thanks to JIM!さん)

→v1.24 (Mar. 20th, 2005)

・使用できるポート数を4から16に拡張。

(しかしながら、結構4つ決めうちのところが残っている模様・・)

(thanks to みやざきさん)

→v1.23 (Jan. 1st, 2005)

・.commentで与えられる改行コードを正しく削除できていなかったのを修正。

(thanks to MAZさん)

→v1.22 (Jan. 1st, 2005)

・ZtoMの-Bスイッチ相当のものをようやく実装。 (thanks to MAZさん)

以前よりあちこちから要望されていたものですが、

長い間お待たせして申し訳ございませんでした。

→v1.21 (Apr 22nd, 2004, Dec. 31st, 2004)

・zmc3 v0.98.3のメタイベント記述に対応。

→v1.20(Nov. 24th, 2002)

・MacOS X向けのパッチを追加。 (thanks to i_spacecadatさん?)

・ARCCのノートオン同期とユーザー定義波形の組み合わせが

うまく動作していなかったのを修正。

→v1.19(May 27th, 2002)

・printf削除と、よこむむさんのMac対応差分取り込み。

(thanks to よこむむさん)

→v1.18(Apr. 22nd, 2002)

・switch.cで使っていたスイッチ指定値保存用のグローバル変数を

なくした。リエントラント化への布石。

・.halt使用時、指定時間の4倍時間ウエイトが入っていたのを修正。

→v1.17(Feb. 18th, 2002)

・音符に対する直接ベロシティ指定が利かなくなっていたのを修正。

(例: c,,100) (thanks to muteさん)

→v1.16(Jan. 20th, 2002)

・@uでベロシティ揺らぎを設定した場合、*0 もしくは ポルタメントで

発音した場合に正しいベロシティ値が出力されない(もしくは発音されない)

状態だったのを修正。(zでの揺らぎ設定や、*0&での発音は問題なかった)

(thanks to 内海さん)

→v1.15(Dec. 8th, 2001)

・Polyphonic Key Pressure使用時に[@]が誤動作していたのを修正。

(明示的に使用しなくても、異なる構成の和音をタイ接続した際に

暗黙の内に発生します) (thanks to かんたさん)

→v1.14(Dec. 4th, 2001)

・@w*32767 に今度こそ対応。

(ついでに、rやら通常note onやらでも対応)

副作用で、和音時gateで*32767という値を指定できなくなっていますが、

これは本家Z-MUSIC V3でも同様(undocumentedな制限)のようです。

→v1.13(Dec. 3rd, 2001)

・@w*32767 対応で和音タイがおかしくなってしまっていたので、

とりあえず1.11以前の状態に戻した。 (thanks to かんたさん)

→v1.12(Aug. 18th, 2001 / Nov. 28th, 2001)

・@w*32767 が利かなくなっていたのを修正。 (thanks to じんべさん)

・トラック頭で[@]を使っていたときに、まだ誤動作することが

あったのを修正。(v0.88での修正不足)

→v1.11(July 2nd, 2001)

・非unix系(つまりDOS系)では、標準入力がテキストモードのままで、

使い物にならなかったのを修正。

(V3 ZMDフォーマットの1byte目は0x1A :-) (thanks to じんべさん)

(注: スペシャル版としてv1.10.1としていたものと内容は同じ)

→v1.10(June 30, 2001)

・まだファイル名の大文字小文字の整合が取り切れてなかったので、

今度こそ修正。

(thanks to 岡部さん)

→v1.09(May 28, 2001)

・長い音長に各種ARCCエフェクトをかけると"Segmentation Fault"

になっていたのを修正。

(要するに、ZtoMのseigen.txtにある現象です。ZtoMの方では

制限として放置しましたが、z2m3では対策しました)

・最初の(*0&以外の)note on時にピッチベンド0のリセットが

入らないように修正。(これもZtoMの仕様でした)

・引数に指定するファイル名バッファが1byte足らなかったのを修正。

(こんな初歩的なミスがまだ残ってるかねぇマッタク・・・T_T)

(以上3つ thanks to NKGRさん)

→v1.08(Mar. 20, 2001)

・@j0 c*0&d&e などのように、*0& で入ってスラーが続く場合に

途中のスラー音階がkeyoffされていなかったのを修正。

(thanks to muteさん)

・ソースファイル末尾の^Z(0x1A, EOF)の撤廃とか、小文字ファイル名で

アーカイブを作成するようにしたとか、Makefileの微調整とか。

(thanks to 岡部さん, とよしまさん, 小林さん)

・トラック終了時、トラック終了メタイベントFF 2F 00に与える

デルタタイムが1大きかったのを修正。

(thanks to kitさん)

・エラー終了など、正常終了でない場合でも(OSに頼らず)

自分で確保したメモリはすべて自分で解放するよう修正。

・他のプログラムに組み込まれるような場合を想定して、

単純に"zmdへのポインタを渡すとmidへのポインタを返す"ような

エントリを内部的に追加。

(z2m3.c内のconvertZmdtoMid()がそれです)

(以上2つ thanks to Kobarinさん)

→v1.07(Jan. 30, 2001)

・16半音以上をまたいだポルタメントが誤動作していたのを修正。

ついでに、@g127まで受け付けるよう修正。

・音符から休符へ、ベロシティを変えつつタイでつないだ場合

(例: c& u-1 r c)、Polyphonic Key Pressureの値が異常なものに

なっていたのを修正。 (以上2つ thanks to かんたさん)

・[COMMENT ...]を使うと誤動作していたのを修正。

→v1.06(Jan. 16, 2001)

・まだテンポ指定位置がずれていたのを修正。(thanks to かんたさん)

→v1.05(Jan. 10, 2001)

・ZMD的な相対ベロシティを使用するとすべて127になっていたのを修正。

・非同期ARCC設定後最初のキーオンまでの間に休符があるとARCCが

正しく動作していなかったのを修正。

(以上2つ thanks to muteさん)

・共通コマンド部のエクスクルーシブメッセージにあるポート指定が

有効となるよう修正。

→v1.04(Jan. 5, 2001)

・相対タイマ指定が誤動作していたのを修正。

(thanks to Fussyさん)

・@g12以外の時でもポルタメント(と@J1スラー)が正常動作

するよう修正。(これにより本家非互換となるので注意)

(thanks to 我孫子さん)

・ポルタメントに適用されるピッチベンドの値を調整。

(thanks to あいはらさん)

→v1.03(Nov. 9, 2000)

・V2互換強制発音で、臨時ベロシティを指定した場合にその

ベロシティが以降の発音にも引き継がれてしまっていたのを修正。

(thanks to NKGRさん)

→v1.02(June 27, 2000)

・中身を大幅改造。ARCC周りでエンバグしていたらごめんなさい。

(うまくいっていれば次回以降EVSが比較的容易に実装できるようになる)

・一部メモリリークの可能性があったところを修正。

・オートベンドやポルタメントのディレイ値と、step値が等しい場合

Divided by 0になってしまう不具合を修正。

(まだこんなショボいレベルのバグが残ってたか・・)

→v1.01(May 8, 2000)

・-L256指定時のみ、

・共通コマンド部の、「小節線までのウエイト挿入」を行わない

・無限ループイベントにXELFさんのXMF拡張イベントを用いる

よう修正。(ゲーム作成用) (thanks to muteさん)

・FM/ADPCMパートが存在する場合不正処理で落ちていたのを修正。

・MT-32のエフェクタ設定を行うと異常なZMDを出力していたのを修正。

(とはいえ現状skipさせてるだけ) (以上2つ thanks to あーくさん)

・.XG_EXCLUSIVE の、ifとcommentがうまく反映できていなかったのを

修正。

・コメント挿入時に使うメタイベントをCue PointからText Eventに修正。

→v1.00(Feb. 13, 2000)

・トラック数が0のZMDファイルを与えるとエラー終了していた

のを修正。

・テンポ値が30~300の範囲外の場合エラーとなるよう修正。

(以上 thanks to XELFさん)

・c,,100&c,,90 などとするとベロシティ90はPolyphonic Key

Pressureで送るよう修正(=オリジナルと同じ)。

(thanks to muteさん)

・[ARCCn.SYNC]の4bit目,5bit目にとりあえず対応。

→v0.99(Nov. 28, 1999)

・-X1以上を指定した場合にテンポの挿入位置がずれていた

のを修正、 (thanks to muteさん)

→v0.98(Nov. 3, 1999)

・共通コマンドでテンポ120を設定してもSMFには反映されなかった

のを修正。

(その代わりテンポ120以外の時はテンポのメタイベントが

テンポ120とそれ以外の計2個書き込まれることがあります)

・[do]~[loop]の展開回数指定スイッチである-Lで、回数0を

指定できるよう修正。-L0の場合、[do]~[loop]部がまったく

展開されなくなる。( c [do]d[loop] e → ce )

・ztom同様の-uスイッチを追加。テンポ演算の誤差設定スイッチで、

スイッチなし(デフォルト)でプレーヤ/シーケンサでの表示

の正しさ優先、スイッチありで誤差の少なさ優先。

(以上 thanks to MAZさん)

・メタイベントFF58(拍子定義)の最後2バイトを0x18 0x08の

固定値とするよう修正。

・@tの計算が全音符の分解能が192である場合のみ正しい結果と

なっていたのを修正・

→v0.97(Oct. 26, 1999) たった一日で・・・・

・共通コマンドのないzmsを変換した場合、テンポ指定がすべて

消えてしまっていたのを修正。 (thanks to MAZさん)

→v0.96(Oct. 25, 1999)

・まれにデルタタイムの計算に失敗することがあったのを修正。

・[back]内に、q-* な音符を並べると、最後の音符が次の

[back]開始まで鳴りっぱなしになる

(以上2つ thanks to muteさん)

→v0.95(Sep. 28, 1999)

・[@][!]がうまく機能しないことがあったのを修正。

・-L のデフォルトを -L1から-L2に変更。

→v0.94(Aug. 29, 1999)

・ポルタメントのタイ部分にv0.93でエンバグしていたのを修正。

・[auto_portament]を実装。

→v0.93(Aug. 8, 1999)

・@J1(c<c)&[c>c]とすると、後の[c>c]の オクターブがずれて

(この場合低くなって)しまっていたのを修正。

# 本来 (c<c)&(c>c)と同じ様になるのが正しい

(thanks to muteさん)

→v0.92(Jul. 14, 1999)

・ALL NOTE OFFの最適化キャッシュを無効にした。

(thanks to ぱじぃーさん)

・[@]があるトラック上で、[@]と同一tick上にあるMMLはその

前後関係に関わらず無条件に削除されていたのを修正。

・[KEY][METER]使用時の出力デルタタイムが異常だったのを修正。

(以上2つ thanks to 我孫子さん)

・NRPN,RPNの最適化キャッシュ構成を見直した。

→v0.91(Jun. 9, 1999)

・-x -i スイッチのデルタタイム指定が正しく機能して

いなかったのを修正。 (thanks to muteさん)

→v0.90(Jun. 1, 1999)

・タイ時にキーオフ&再キーオンがが必要になる場合

(例: @j0 c&(dc) )、無条件にポルタメントを殺していたのを

やめた。しかし、これにより副作用が生じるかも知れず経過

観察が必要。

・ztomにあった-xスイッチを追加。

・-iスイッチでデルタタイムに1以上の値を指定した場合に

@g12の初期化が入らなかったのを修正。

(以上3つ thanks to muteさん)

→v0.89(Apr. 25, 1999)

・RolandExclusive使用時に、ランニングステータスがリセット

されていなかったのを修正。 (thanks to 我孫子さん)

→v0.88(Apr. 3, 1999)

・[@]がトラック頭にあった場合に誤動作していたのを修正。

・@cを設定するだけで、@aの設定なしでもARCCが動作していたのを

修正。 (以上2つ thanks to MASAさん)

・LittleEndianなMPUで、波形メモリ使用時の波形初期化がうまく

いっていなかったのを修正。

・pushポルタメントを2つ以上並べると、2回目以降のポルタ

メントのピッチベンドの初期化が行われなかったのを修正。

→v0.87(Mar. 6, 1999)

・何かをあわてて取り繕ったような気がするが、よく覚えていない・・

→v0.86(Mar. 6, 1999)

・[!][@]に対応。(ztomの処理ルーチンそのまま流用:-)

→v0.86(Mar. 1, 1999)

・ARCCを1trkで2個以上使っていたり、ARCCの重畳を用いていた

場合に誤動作することがあったのを修正。一体なんのための

V3対応だか・・・。

→v0.85(Feb. 18, 1999)

・拡張ARCCのリセット値が、delay=0の場合にはnote on前に送信

されていなかったのを修正。 (thanks to muteさん)

→v0.84(Feb. 16, 1999)

・ディレイ0のオートベンドとディレイ0の和音を組み合わせると

「0で割り算」状態だったのを修正。 (thanks to Fussyさん)

→v0.83(Feb. 15, 1999)

・どんなエフェクト設定をしてもコーラス設定に化けていたのを修正。

→v0.82(Feb. 14, 1999)

・X680x0以外の環境でもコンパイル出来るようにした。

・ZMD以外のファイルを食わせた時にエラーを出力するようにした。

(これまではバスエラーだった)

・標準入出力に対応した。それに伴い出力ファイル名の指定方法を

変更し、-uスイッチを廃止した。

→v0.81(Sep.8,1998)

・[m,n]なポルタメントが(m,n)なポルタメントと同じ処理にされて

いたのを修正。(v0.75エンバグ)

・[CH_FADER ??-ALL]な時にフェーダが正しく動作していなかった

のを修正。 (以上2つ thanks to muteさん)

→v0.80(Aug.25,1998)

・[do]~[loop]を使用する場合は、全トラックで使わないと無限

ループに陥っていたのを修正。 (thanks to Yggdrasillさん)

→v0.79(Jul.26,1998)

・[ARCC.SYNC c,m]で、mが省略されていた時の初期化動作を修正。

・ARCC非同期時の挙動を修正。

・ARCC未使用chに対して[ARCCn.LEVEL OFF]した時にリセット値を

送信しないよう修正。

・@j1時、単音から和音に繋ぐ際もピッチベンドを変えていたのを

修正。

・@j1時、単音から和音に繋ぐと単音のnote offが出力されなかったり、

逆にうまくタイ接続出来なかったりすることがあったのを修正。

・ARCCのリセットのタイミングを修正。

・@Bm,n,d,b にて、dとbがマッチングしていない(@b0,8191,64,-32 c*96)

と言う場合に、bを無視するよう修正。

(以上7つ thanks to Yggdrasillさん)

・共通トラック部が全くない場合、誤変換していたのを修正。

・@j1から@j0に戻せなかったのを修正。

(known bug)

・通常ARCCの1/8モードを最初に使う場合リセットがうまく行かない

ことがある。

・いつエンバグしたのか、[VIBRATO.DEEPEN]が機能していないようだ。

→v0.78

・ .ASSIGN 1 {midi1-1,128,1,PLAY,NORMAL,COMMENT}

↑ここに対応

→v0.77

・ 一応32ch対応(まだ納得いく実装ではないが・・・)

・ -Rスイッチ実装

・ 表示周り変更

→v0.76

・ @t, @t±,[PATTERN],[EMBED]に対応

・ トラック名(.ASSIGN 1 {midi1-1,,,,,COMMENT} のCOMMENT)に対応

・ スイッチによるクロックタイマ指定に対応

・ モジュレーション/ARCCのディレイ周りでひどくエンバグして

いたのを修正

・ ユーザ波形で振幅の符号指定が無効になっていたのを修正

・ -u スイッチ指定で、以後 '/'をスイッチ指定子と見なさなく

なるようにした。(e.g. z2m3 -u /test.zmd )

→v0.75

・ オートベンド、ポルタメント、@j1周り、その他色々多々細かい修正

・ [timbre_split]に対応

→v0.74

・ @h96@m127r1 などのように、note onが0回でもモジュレー

ションが掛かってしまっていたのを修正

・ 4つのARCCの重畳に対応

(例: [arcc1.control VOLUME][arcc1.level 20]

[arcc2.control VOLUME][arcc2.level 30]

な時のvolume出力値は、20 + 30 = 50)

・ [ARCCn.PHASE]に対応。[ARCCn.DEEPEN]に一応対応(自信なし)。

ARCCの初期化動作を修正。

・ @Gの変換をミスッていたのを修正。

→v0.73

・ 休符時のモジュレーション/ARCC挙動を修正

・ V3モード時の波形メモリの振幅修正

・ Mナントカの指定なしでSナントカを指定した場合の

デフォルトをM1からM2に変更(昔のZ-MUSICではM1だった

ような気がするんですが・・・いつの間に!?)

・ [ARCCn.SYNC %101], [COMMENT ~] に対応。

↑このビット

・ (t1) c8,4 / 最後の音符 のように、MMLの解釈ではDEADに

なっても演奏は続いている、と言うような場合に対応

→v0.72

・ [KEY](.KEY) [METER](.METER) [EVENT WORD,STRING,"歌詞"]に対応

(この辺は個人的にどうしても欲しかったので・・・)

・ [PROGRAM n] [TIMBRE n] で、n>127 の場合に対応

・ -V2 スイッチを新設(フェーダのスピードなどをV2互換にする)

→v0.71

・ TIE時のARCCの挙動を修正。

→v0.70

・ 同期/ARCC/ベロシティ/トランスポーズ周りをかなり修正

・ 内蔵音源パートをスキップするようになった

・ 非同期波形サポート(例によってまだV2レベルだけど)

→v0.6

・ ARCC/モジュレーション/オートベンド/@j1 の細かい不具合修正

・ 無限ループのフェードアウト速度を従来のZtoMの

デフォルトと同じくらいに変更(=遅くした)

・ 白窓対応

・ その他色々

v0.50

・初版