改訂履歴(Revision)

改訂履歴

ヴァージョン内容改定日
1.16 ●音源ドライバー本体
・利便性を考え、makefileや、ヘッダーファイルを作り直した。
・nsd_main_bgm()関数及び、nsd_main_se()関数を実装した。
 これにより、マッパーLSI使用時に、BGMと効果音を異なるバンクに配置することが出来ます。
・演奏状態を保存するnsd_save()関数及び、演奏状態をロードするnsd_load()関数を実装した。
 これにより、別の曲を鳴らしている最中でも、演奏状態を保存した曲を途中から再生可能です。
・制御用構造体を最適化し、使用するRAMの量を減らした。
 拡張音源無しの`nsd.lib'では、セグメント"bss"(未初期化データ)領域が14[Byte]減ります。
●サンプル
・makefileや、ヘッダーファイルの作り直しに伴う改定。
●MMLコンパイラ
・Tick数をカウントする処理を追加した。また、-t オプションにて無効にできます。
2014年 4月27日
1.15 ●音源ドライバー本体
・ポルタメント後にスラーで繋げた場合、繋げた先の音符でポルタメントの変位がそのままになってしまうバグをFixした。
●MMLコンパイラ
・エラー・ワーニングの出力先を標準エラー出力に設定するオプションスイッチを実装した。
・それに伴い、エラー、ワーニングの出力先のデフォルトは、標準出力とした。
・Jコマンドにて、ポルタメントも無視するようにした。
・相対音量コマンドにて、数値指定し変化量を指定できるようにした。
・{}コマンドにて、ポルタメントを簡素化して記述できるようにした。
・マクロ定義の中で、`{'の個数分だけ`}'を記述できるようにした。
 これに伴い、マクロの中で、K{}コマンド、{}コマンドが使えるようになります。
・ド♭、シ#がある場合、疑似エコーコマンドにて疑似エコーを正常に生成できていなかったバグを修正。
・kコマンドによる、MMLコンパイラ側での移調に対応した。
・音長に0を指定するとハングするバグが再発していたので、修正した。
●取扱説明書
・エンベロープの説明にて、FDS音源のキャリアとモジュレータの説明が逆になっていたのを修正。
2014年 3月 4日
1.14 ●MMLコンパイラ
・エラー、ワーニングは、標準出力ではなく、エラー出力に出力するようにした。
 これにより、アプリケーション組み込み時のmakefile等が作りやすくなります。
・音符、休符、サブルーチン、効果音呼出を無視するコマンドに対応。
 このコマンドにより、コメントアウトしないでも、シーケンスの途中から鳴らすことができます。
・ゲートクオンタイズに対応。また、分母も曲毎に設定可能です。
2014年 2月25日
1.13 ●音源ドライバー本体
・nsd_all.bin, nsd_all2.bin, nsd_oall.bin, nsd_hfe4.bin, nsd_hfx4.binにて、 Version 1.12におけるシーケンス64kByte化の副作用として、音量エンベロープが効かなくなることがあるバグ及び、 ΔPCMのIRQが使えなくなっていたバグをFix。
・ノートコマンドのオペコードのビット位置を最適化のためを変更しました。
・オクターブコマンドで指定できるオクターブを2〜9から1〜8へ変更しました。
●MMLコンパイラ
・疑似エコーのバッファをリセットするコマンドを実装した。
・EC(疑似エコー)コマンドにオプションで第三パラメータを追加し、 休符を書かないでも疑似エコーをできるようにした。
・音符及び休符にて、lコマンドと音長が同じ場合は、1Byte短いオペコードを出力するようにした。
・音量、ゲートタイムの指定値が前回と同じ場合は、コンパイルしないようにした(リピート、ダルセーニョ後は除外)。
2014年 1月19日
1.12 ●音源ドライバー本体
・Sunsoft 5Bにて、sコマンド使用時にプチノイズが入る場合があるバグを修正。
・効果音の優先度設定に対応。
・効果音にて、パルス波ch2, ノイズchで個別の効果音を鳴らせるようにした。
・nsd_all.bin, nsd_all2.bin, nsd_oall.bin, nsd_hfe4.bin, nsd_hfx4.binにて、シーケンスを64KByteまで使えるようにした。
●MMLコンパイラ
・マクロ名の検出アルゴリズムを変更し、長いマクロ名を優先するようにしました。
●取扱説明書
・Tipsのスケールとコードに、各コード(和音)毎に使えるスケール(旋法)を記載しました。
2014年 1月 3日
1.11 ●音源ドライバー本体
・フレームオーバーによる暴走回避ルーチンを実装。
・移調の演算を、エンベロープの処理ルーチンから、ノート番号の計算ルーチンへ移動。
・nsd_hfx4.bin を新設。OPLLを含む全ての拡張音源を使用可能です。
●MMLコンパイラ
・w コマンド(休符2)を実装しました。
・休符のモードを設定する、#rest コマンド、 #wait コマンドを実装しました。
・音長の減算を`~'でもできるようにしました。
・マクロ名の検出アルゴリズムを変更し、スペースを置く必要を無くしました。
・Mode(), Major, Minor, MMinor(), HMinor()コマンドを新設しました。
●コンパイル済み音源ドライバ
・TNS-HFCシリーズにおいて、nsd_all.bin, nsd_all2.bin使用時にリセットボタンを連打するとハングする不具合を修正。
・TNS-HFC4にVRC6, VRC7を差した時に、ハングする不具合を修正。
 但し、nsd_all.bin, nsd_all2.binをリンクした場合は、TNS-HFC4に直接VRC6, VRC7を刺すとハングします。
 これらのドカモリ用のbinにおいて、TNS-HFC4でVRC6, VRC7を使う場合は、TNS-HFX4が必須となります。
2013年 9月16日
1.10 ●音源ドライバー本体
・VRC7, OPLLにて、音色切り替わり時に最初の音が正常に発音されない場合があったバグを修正。
●コンパイル済み音源ドライバ
・ΔPCM-IRQの割り込み処理中にNMI割り込みが発生した場合に、ΔPCMが正常に発音されなくなるバグを修正。
2013年 6月 9日
1.09 ●音源ドライバー本体
・VRC7, OPLLの@コマンド及び音色エンベロープにて、ユーザー音色のTL, MLを操作出来るようにした。
 (ドライバー内部での論理演算により他のパラメータに影響を与えずに設定します。)
2013年 5月29日
1.08 ●音源ドライバー本体
・儕CMが停止できなくなっていたバグを修正。
●MMLコンパイラ
・cis-moll, gis-moll, dis-mollの不具合を修正。
2013年 5月13日
1.07 ●音源ドライバー本体
・ノイズチャンネルで音色エンベロープが出来なかったバグを修正。
・再生ルーチン処理中にIRQが発生するNSFプレイヤーにおいて、 儕CM-IRQを使用時に正常に再生されない可能性があるバグを修正。
(※実機では、NMIの方が優先順位が高いため、この現象は発生しません。)
●MMLコンパイラ
・NSFへビルドする場合に、音源ドライバー情報をNSFに含めるようにした。
(※この情報は、音源ドライバのライブラリ本体には含まれていません。)
・NSFへビルドする場合に、サイズ、バンク数などの情報を出力するようにした。
・K{}コマンドにおいて、短調の調号指定が一部音楽理論的に間違えていたミスを修正。
・エラー、警告のメッセージの内容を全体的に見直した。
●取扱説明書
・スケールとコードの関係表に4和音のコードを追加。
・FAQによくある質問を追加した。
・いくらかの誤植を修正。
2013年 5月12日
1.06 ●音源ドライバー本体
・効果音発音終了時に、BGMの音程に戻らない場合があるバグを修正。
2013年 4月13日
1.05 ●音源ドライバー本体
・nsd_vrc6.binが、TNS-HFC3で鳴らなくなっていた不具合を修正。
●MMLコンパイラ
・Scale()コマンドを実装した。
 K{}コマンドの調指定とあわせ、その調におけるスケール(20種)を設定できるようになりました。
●取扱説明書
・いくらかの誤植を修正。
2013年 4月10日
1.04 ●MMLコンパイラ
・オプションスイッチで何も指定しない場合は、NSFに変換するようにした。
 MMLをD&Dしてコンパイルできるようになりました。
 (※その場合は、カレントディレクトリは、MMLコンパイラのあるディレクトリです。)
・K{}コマンドで、調(例:C-Dur, c-moll, etc..)で指定できるようにした、
●ROMイメージ(nsf)の起動コード & MMLコンパイラ
・TNS-HFC3で、儕CMのIRQを使用する方法を思いついたので、対応した。
●取扱説明書
・チュートリアル作成中(まだ、作り途中です)。
2013年 4月 6日
1.03 ●MMLコンパイラ
・ストトン記法に対応。
●その他
・`sample\template'フォルダーに、「MML記法」及び「ストトン記法」のテンプレートを追加した。
2013年 3月12日
1.02 ●MMLコンパイラ
・NSFヘッダーの拡張音源フラグを指定する#Externalコマンドを実装した。
・#Bankコマンド指定時に、NSF中でシーケンス領域を固定で24kByte確保いていたのを、サイズに合わせるようにした。
●取扱説明書
・儕CMの定義ブロック部において、サンプリングレートの説明が抜けていた。
2013年 2月20日
1.01 ●音源ドライバー本体
・nsd_all.bin 及び nsd_all2.bin にて、儕CMのバンク切り替え及びIRQに対応した。
●MMLコンパイラ
・#Bankコマンド(上述の.binを使う場合に指定)を追加した。
・儕CMの記述ブロックにおいて、IRQに対応した。
●取扱説明書
・各.lib/.binの仕様の説明を追加した。
2013年 2月15日
1.00 ●音源ドライバー本体
・一時停止関数(nsd_pause_bgm())及び、再生再開関数(nsd_resume_bgm())を実装した。
・nsd_stop_bgm()関数で再生停止したときに発音中の音があった場合、鳴りっぱなしになっていたバグを修正。
●MMLコンパイラ
・マクロに対応した。
・疑似エコーに、スラーで繋げるモードを追加した。
・リピート(A)コマンドにて、リピート回数をどちらにも記述できるようにした。
・アセンブリ言語ソースを出力する際に、数値が3桁毎にカンマが出てしまっていたバグを修正。
・#SegmentPCMコマンドが機能していなかったバグを修正。
・#SegmentPCMコマンドにて""を指定した際、アセンブリ言語で儕CMの実体を出力しないようにした。
●取扱説明書
・これまでに質問があった内容を、FAQに記載しました。
・その他、色々と見直しました。
●その他
・アセンブリ言語から nsd.lib を制御するサンプルソースを作った。
2013年 2月 9日

改訂履歴(α・β版)

ヴァージョン内容改定日
0.27β ●音源ドライバー本体
・使用するRAMの量を若干減らした。
●MMLコンパイラ
・TRコマンドにて複数トラックの指定に対応した。
2013年 1月18日
0.26β ●音源ドライバー本体
・拡張音源使用時に、使用するRAMの量を若干減らした。
●MMLコンパイラ
・#timebase コマンドを実装した。
2013年 1月11日
0.25β ●音源ドライバー本体
・FDSに対応。
・BGMから、SE(効果音)を呼べるようにした。
・効果音発音終了時に、BGMへうまく復帰できていなかったバグを修正。
●MMLコンパイラ
・FDS関連のコマンド群を実装した。
・SEを呼ぶコマンド SE を実装した。
2013年 1月10日
0.24β ●MMLコンパイラ
・#offsetE@, #offsetEv, #offsetEm, #offsetEnコマンドを追加した。
●取扱説明書
・Spcial Thanksを追加しました。
・VRC7の音色について、また、少し数学的な解説を追記した。
2013年 1月 5日
0.23β ●MMLコンパイラ
・エンベロープ定義で、(start,end,length)の指定をできるようにした。
●取扱説明書
・VRC7の音色パラメータについて、少し解説を追記した。
・nsd_oall.binの仕様を記載(書き忘れていた)。
2012年12月22日
0.22β ●MMLコンパイラ
・gccでコンパイルできるように、ソースを修正。
 (C++の機能だけを使っているつもりが、Visual C++の機能を使っていた。)
●その他
・修正BSDライセンス(但しNSFデータは除外)に変更しました。
2012年12月 1日
0.21β ●音源ドライバー本体
・OPLLのリズム音源の仕様を変更。音程を持たせれるようにした。
・OPLLのリズム音源がちゃんとなってなかったバグをFix。
・曲頭の休符に、通常の休符を使うと不要な音が鳴ってしまっていた仕様を改善。鳴らなくした。
2012年11月19日
0.20β ●音源ドライバー本体
・ノートナンバー64以降の儕CMの定義が適用されていなかったバグを修正。
・OPLLに対応(改造VRC7搭載カートリッジ)。
●MMLコンパイラ
・儕CMを使う曲をnsfにビルドする際に、少しファイルサイズが小さくなるようにした。
●取扱説明書
・疑似エコー及び、制御トラックが説明不足だった点を加筆。
2012年11月13日
0.19β ●音源ドライバー本体
・"nsd_all.bin"に、音源に割り当てないトラックを設けた。
 テンポコマンドや、n106/163とVRC7の音色設定等の設定トラックとして使用可能です。
・いつの間にか、効果音がならなくなっていたバグを修正。
●MMLコンパイラ
・疑似エコー(MMLコンパイラ側の命令です)を実装しました。
・範囲コメントの終端 */ の直後(スペースを空けず)に記述したコマンドが認識されなかったバグを修正。
●取扱説明書
・ちょっと見やすさを考えてみた。
2012年11月12日
0.18β ●音源ドライバー本体
・Sunsoft 5Bに対応。
・Rm0コマンドで、儕CMが指定音長でKeyOffされなかったバグをFix。
●MMLコンパイラ
・バンクが不連続に配置されたnsfに非対応の実機再生環境に対応(TNS-HFC3など)。
●取扱説明書
・Rm0コマンドで、儕CMが指定音長でKeyOffされる旨を記載(書き忘れていた)。
2012年10月22日
0.17β ●音源ドライバー本体
・n163にて、アドレス$40番地以降(@命令にて32に相当するアドレス)の波形データを破壊してしまっていたバグを修正。
2012年10月19日
0.16β ●音源ドライバー本体
・Version 0.10β〜0.15βにて、実機で鳴らなくなっていた不具合を修正。
●取扱説明書
・n163の使い方の解説ページを追加。
2012年10月15日
0.15β ●音源ドライバー本体
・n163に対応。
2012年10月11日
0.14β ●音源ドライバー本体
・色々と拡張音源を実装するに当たり、改めてコードを再確認。無駄なコードを省いて若干最適化した。
・nsd_all.binを作った。現状、内蔵音源及びVRC6 VRC7 MMC5のみに対応です。
●取扱説明書
・取説を見直して、若干、再構成した。
2012年10月 6日
0.13β ●音源ドライバー本体
・VRC7に対応。
2012年10月 3日
0.12β ●音源ドライバー本体
・儕CMの休符の処理で、r,r+ の挙動と、 r- の挙動が逆になってたバグをFix。
2012年10月 2日
0.11β ●音源ドライバー本体
・VRC6に対応。
・MMC5に対応。
2012年10月 1日
0.10β ●音源ドライバー本体
・儕CMに対応。
●MMLコンパイラ
・儕CM対応により、DPCM{}記述ブロックが増えました。
・TR5の各音階に、儕CMを割り当てることができます。
●取扱説明書
・「索引」と「検索」を実装した。
2012年 9月30日
0.07α ●音源ドライバー本体
・儕CMルーチンを開発中(未デバッグです)。
●MMLコンパイラ
・コンパイルオプションで、NSF用の実行コード(*.bin)を指定できるようにした。
・nsfにコンパイルする場合において、実行コードを0xE000番地から0x8000番地に変更した。
 これにより、儕CMが実装できれば、合計16KByte(0xC000〜0xFFFF番地)使えるようになります。
・"#offsetPCM"コマンドを実装。曲データはこのアドレス-1までの領域とし、これ以後を儕CMの領域として割り当てます。
・それに伴い、シーケンスデータが"#offsetPCM"コマンドで指定したアドレスを超えた場合に、エラーを吐くようにした。
 (シーケンスデータが32kByteを超えると、コンパイラがハングするバグがありました。)
・アセンブリ言語出力に対応した。
・また、それに伴い、出力するアセンブリ言語に対して、各種設定するコマンドを実装。
・アセンブリ言語出力に対応したので、アーカイブ中の"\sample\cc65\"のサンプルC言語コードも書き直しました。
2012年 9月25日
0.06α ●音源ドライバー本体
・ポルタメントに対応した。
●MMLコンパイラ
・エンベロープ・サブルーチンにおいて、0〜4294967295番まで指定できるようにした(以前は0〜65535番でした)。
・エンベロープのパターン定義において、Lコマンドを省略できるようにした。
・エンベロープのパターン定義において、音源ドライバが暴走するようなパターン定義の場合、エラーを吐くようにした。
・K{}コマンド(調号)により、r(休符)にも自動で調号(キーオフのモード指定)を付けられるようにした。
●取扱説明書
・休符や、エンベロープについて説明が足りていなかったので、追記した。
・FAQのページを作成した。
2012年 9月17日
0.05α ●音源ドライバー本体
・効果音処理ルーチンを開発中(一応、効果音が使えるようになってますが、未デバッグです)。
●取扱説明書
・BGM,SEデータフォーマット(Format of BGM and SE)のページにおいて、エンベロープがまだ実装されていないことになっていた記述を修正。
●SDK
・アセンブリ言語及び、C言語用のヘッダーファイルを作成した。"include"フォルダを参照。
●MMLコンパイラ
・音名・休符コマンドに、付点のみを指定できなかったバグを修正。
2012年 9月12日
0.04α ●取扱説明書
・主に、ノイズチャンネル関連の説明が不足していた点を加筆。
●MMLコンパイラ
・0及び9から始まる音長を、コンパイルできなかったバグを修正(水平展開できてなかった)。
・音長で0を指定すると、例外が発生して異常終了するバグを修正。
2012年 9月 7日
0.03α ●音源ドライバー本体
・エンベロープを4系統実装した。
●MMLコンパイラ
・オクターブの設定値が1つ高かったバグを修正。
・0及び9から始まる数値を、コンパイルできなかったバグを修正。
・サブルーチン番号で128を超えた場合に、コンパイルできないことがあったバグを修正。
・トラック先頭に L コマンドを書いた場合、無限ループされないコードにコンパイルしていたバグを修正。
2012年 9月 6日
0.02α ●音源ドライバー本体
・休符時の音量の状態が設計どおりで無かったバグを修正。
・サブルーチンからの復帰時に、戻り先のアドレスがずれていたバグを修正。
・リピート(A)命令でリピートされなかったバグを修正。
・リピート(B)命令をもう1系統作った。(op-code 0x18〜0x1A)
・音色命令を追加(op-code 0x1B)。この命令は、音色エンベロープと排他的に使用できる予定です。
●MMLコンパイラ
・作りました。
2012年 9月 3日
0.01α α版です。
どこまで動くかは分からないが、評価版として公開。
まずは、音源ドライバーを設計。
効果音はまだ実装していませんので、効果音関係の関数は呼ばないでください。
2012年 8月10日