よくある質問

Last-modified: 2012-11-23 (金) 09:28:44

質問

Q.NSFをWAVやmp3に変換したい

A. VirtuaNSF、VirtuaNES、G-NSFなどはWAV出力機能があります。
また、WinampのDisk Writer Pluginプラグインを使ってもWAV出力できます。
参考 NSFプレイヤー/Google:winamp wav 変換
WAVからmp3への変換は「午後のこ~だ」「CDex」「lame」などのソフトウェアを
利用してください。

Q.内蔵音源の矩形波で、o4aの付近でビブラートをかけると音がブツブツする

A.2A03内蔵音源の矩形波では、周波数を11bitで表現しています。
(このうち、下位8bitは$4002(矩形波1)/$4006(矩形波2)で、上位3bitは$4003(矩形波1)/$4007(矩形波2)でアクセスします。)
ビブラートやピッチエンベロープとは周波数の値を変化させることですから、
ビブラートやピッチエンベロープをかけた結果、周波数の上位3bit用レジスタが更新される場合があります。
周波数の上位3bit用レジスタに書き込みを行うと、2A03内蔵音源の矩形波の仕様により位相がリセットされてしまいます。
音が鳴っている途中で位相がリセットされると、「プチ」っとか「ガリガリ」といった音が生じます。
上位3bitが変化する周波数に近い音程は以下のとおりです。
o4a, o3a, o2a, o2f, o2d, o1b
上記の音程付近でビブラート等を使わないようにすればこの問題はとりあえず回避できます。
また、o4aなら、上位3bit用レジスタが切り替わるのは周波数を-2したときなので、
以下のように周波数を-1の範囲におさえることでも回避できます。
 ・@MPのparam3(デプス)を1にする
 ・@EP0 = { 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | 2 2 1 -2 -2 -1 -1 1 }
  のように、周波数が-1の範囲になるよう、高くずらしてビブラートする(その分、わずかに高く聴こえます) 

 ・デチューンで周波数を上にずらすことでも回避できるかもしれません(全体がわずかに高くなります)
または、ピッチエンベロープの代わりにスイープを使えば回避できるかもしれません。*1
あるいは、o4aが現れないように曲全体を移調してしまうという手もあります。
ちなみに、NSFplugとNotSo? Fatsoは$4003/$4007の書き込み時に位相をリセットするかどうかオプションで選択できます。

Q.MCKwatch使用中にDPCMファイルが無いとエラーが出る

A.MML中に記述するDPCMファイルは「mckc実行時のカレントディレクトリから見てどこにあるか」です。
MCKwatchを使用する場合、mckc実行時のカレントディレクトリはmckフォルダなので(バージョンによって違うかも?)、
用意したDPCMファイルはmckフォルダに置きましょう。

Q.DPCMのプチノイズが気になる (ppmck)

A. @DPCMの<param2>を$ffにしてみてください。

Q.打ち込んでいるといつのまにかバンクオーバーフローエラーが出る(ppmck)

A. #AUTO-BANKSWITCHコマンドで対処してください。

Q.マカー用mckが起動できない

A.StuffIt?で解凍したとするとそれは間違いです。
LHA Expanderで解凍し直してください。

Q.FDSと他の拡張音源を併用すると挙動がおかしいんだけど? (ppmck)

A.FDS使用時はアドレス$6000-$DFFFがRAMとして扱われるため
 この範囲のレジスタへの書き込みで$8000-$DFFFにある
 プログラム本体やデータが破壊される可能性があります。
 MMC5($5000-$5015)やNamco106($4800,$F800)は問題なく併用出来ます。

Q.VRC7のプリセット音色がプレイヤーによって全然違う……

A.それぞれのプレイヤーのエミュレーションコードの違いか、プリセットの音色定義データの違いによるものと思われます。
各プレイヤーのソースコード(例:2413tone.h、vrc7tone.h)から定義を抜き出して
ユーザー音色として使えば、どのプレイヤーでもある程度は同じ音色になります。
ただし、ユーザー音色は一度に一つしか使えないわけですが……

Q.NSFplugで長い曲を再生すると、5分で強制フェードアウトされてしまう。回避方法は?

A.プラグインの設定変更だけでは回避できません。VirtuaNESやVirtuaNSFで再生しましょう。
Famicompo miniエントリーなどで再生時間の特定が必要な場合はストップウォッチで測定してください。
またホストプレイヤーがWinampの場合は「拡張プレイリスト」を設定することで、5分以上の再生が可能です。
(ただし詳細不明。情報求む)


オリジナルmck特有の問題

Q.DPCMチャンネルで休符使用時にプチノイズが

(ppmckではこの問題は生じません)

A.mckでは休符時に初期値ゼロを書き込んでいるようです。
鳴らしていたDPCMデータによってはそのゼロがネックとなりプチノイズが乗ります。
rコマンドの代わりにwコマンドで対処すると解決します。

Q.LFOを複数設定しても反映されない

(ppmckではこの問題は生じません)

A.LFOは複数設定できますが、同時に使用できるのは一つまでです。

Q.ノートエンベロープが鳴らない

(ppmckではこの問題は生じません)

A.ノートエンベロープ利用時はソフトウェアエンベロープ併用が必須。
通常のvコマンドだと鳴りません。

Q.DPCMのプチノイズが気になる (mck)

A.DPCMはデータ値が急激に変化するとプチノイズが乗り易いようです。
effect.hのDPCMの直接出力データ項目(初期値)を直接いじるか、
DPCM用データバイナリを調整するのが良いようです。
この説明でわからない場合は諦めてください。

Q.打ち込んでいるといつのまにかバンクオーバーフローエラーが出る(mck)

A.バンクチェンジコマンドで対処します。詳しい使い方はmckc.txtを参照してください。

Q.(MML)連符中に休符を使うとおかしくなる

(ppmckではこの問題は生じません)

A.仕様です。音量ゼロの音を挟んだり、連符コマンドを使わずにc12r12e12と
記述したりで対処。

Q.ENを使うと音が鳴らないんだけど。

(ppmckではこの問題は生じません)

A.そのチャンネルでENを使わずに音を出して(音量0でも可)
からでないと鳴りません。曲の最初に短いダミー音符を入れましょう。
その際、他のチャンネルも休符なりで合わせるように。

Q.ENで指定したのと違う、とんでもない音程が鳴るんだけど。

(ppmckではこの問題は生じません)

A.mck(2003.2.28)の不具合です。修正方法は以下の通り。
スターターキットは修正済みの物です。

sounddrv.hの1073行のlda sound_freq_high,xと
1074行のsta temporary2をコメントアウト(;)または削除する
1082行のcmp temporary2,yをcmp $4003,yに置換する
(lda、sta、cmpの後の半角スペースは実際にはタブ)

Q. |: ~ :| のリピートを使うと各トラック2回目からリピート回数が1回多くなっちゃうよ。

(ppmckではこの問題は生じません)

A. mck(2003.2.28)の不具合です。(スターターキットでは修正済み)

対策はsounddrv.hの1266行目
loop_end:
のラベルの下に
dec channel_loop,x
を挟めばとりあえず回避可能です。

(本家mck掲示板より)

Q.@FMで波形を定義してFチャンネルにmmlを書いても鳴らないよ?

(ppmckではこの問題は生じません)

A.mckc0.27で処理されていない部分があります。次のQ&Aを見てください。

Q.「mckcのfds対応」ってどういうこと?

(ppmckではFDS対応済みです)

A.上記Q&Aの対策を施した改造版mckcです。これでfdsを鳴らせます。
 スターターキットでも対応済みです。

Q.FDSってただの波形メモリじゃなくて変調できるんじゃなかった?

(ppmckではハードウェアエフェクトパッチ適用済みです)

A.mckc0.27時点では記述方法が確立されていないため使用出来ません。
 暫定的にハードウェアエフェクトパッチ(5-658)を適用することで使えるようになります。

参考

スレテンプレ案まとめ所
http://fukuicat.hp.infoseek.co.jp/mck/MckTips.htm