トップ → トラブルシューティング


トラブルシューティング

再生できない、あるいはプレイリストに追加できない
 本ソフトが対応するファイル形式は、

( a) PCM フォーマットの WAV ファイル
   サンプリング周波数:8〜192kHz
   量子化ビット数   :8ビットまたは 16 ビット
   チャネル数     :1(モノラル)または2(ステレオ)

( b) MP3 ファイル
   MPEG のバージョン:MPEG-1, MPEG-2, MPEG-2.5
   レイヤ        :Layer-3
   ビットレート     :CBR, VBR(Xing), VBR(VBRI) いずれもフリービットレート以外

です。それ以外の形式には対応していません。
 MP3 ファイルの再生ができない場合は「ファイル」メニューから「MP3ファイル診断」を選択し、ダイアログボックスから当該ファイルを選択することにより、そのファイルを解析します。 解析結果は

MP3OPEN.TXT:ファイルの詳細情報
MP3READ.TXT:読み込み/デコード処理の詳細情報

としてそれぞれ当該ファイルと同じフォルダに出力します。MP3READ.TXT はファイルのオープンに成功した場合のみ出力します。

音声がブツブツ途切れる
( 1) ウェーブバッファ1個の長さが短めに設定されていませんか?
→「オプション」→「ウェーブバッファ1個の長さ」を長めに設定してください。
( 2) ウェーブバッファの数が1個になっていませんか?
→これはデバッグ用なので「オプション」→「ウェーブバッファの数」を2個以上に設定してください。
( 3) ウェーブバッファの数を少なめに設定したまま、重いソフトを走らせていませんか?
→「オプション」→「ウェーブバッファの数」を多めに設定してください。
( 4) 再生スレッドの優先順位を低めに設定したまま、重いソフトを走らせていませんか?
→「オプション」→「再生スレッドの優先順位」を高めに設定してください。
( 5) 描画スレッドの優先順位が高めに設定されていませんか?
→描画スレッドの優先順位が高いと、画像ウィンドウを描画する頻度が上がるため動きが滑らかになりますが、CPU 使用率が上がります。 このため、音声再生処理に使われる CPU 時間が影響を受ける可能性があります。 「オプション」→「描画スレッドの優先順位」を低めに設定してください。
( 6) メインスレッドの優先順位
→高めに設定すると、再生スレッドからの要求に対する応答がしやすくなるため、音声が途切れにくくなる可能性はあります。 しかし、メッセージキューに溜まった仕事が早く片付くため WM_PAINT などのメッセージを受けやすくなり、 かえって処理が重くなってしまい、音声が途切れやすくなってしまう可能性もあります。 「オプション」→「メインスレッドの優先順位」をいろいろいじってみてください。

リバーブをかけると音が割れる
 本ソフトのリバーブ処理はマルチタップ・ディレイによって実現しているので、波形同士の加算合成が多く、 録音レベルの大きい音声ファイルを再生すると、振幅が飽和して音が割れる可能性が高くなります。
 リバーブのパラメータを調整することによって問題を解決するには、

( 1) DELAY TAP を少なくする。
( 2) FEEDBACK を小さくする。
( 3) HPF を小さくする。
( 4) COMP GAIN の減衰率を大きくする (スライダを下げる) 。
( 5) WET RATIO を小さくする。

といった方法が挙げられます。また、

( 6) 他のエフェクタと同時使用しない。

という方法もあります。 しかし、これらを用いると当然ですがエフェクタの効果が低減されてしまいます。 音質を変えずに音割れを防ぐ唯一の方法は、

( 7) VOLUME を下げる。

です。

操作のレスポンスが悪い
( 1) ウェーブバッファ1個の長さが長めに設定されていませんか?
→ウェーブバッファが長いと、音量などの変更やシークなどの操作が行われた時にバッファへ波形データを多く貯め込み直すので、レスポンスが低下します。 「オプション」→「ウェーブバッファ1個の長さ」を短めに設定してください。 ただし、あまり短く設定すると、音声が途切れやすくなります。 「レスポンスの良さ」と「音声の途切れにくさ」は排他的な関係にあります。
( 2) ウェーブバッファの数が多めに設定されていませんか?
→ウェーブバッファの数が多いと、音量などの変更やシークなどの操作が行われた時にバッファへ波形データを多く貯め込み直すので、レスポンスが低下します。 「オプション」→「ウェーブバッファの数」を少なめに設定してください。 ただし、あまり少なく設定すると、音声が途切れやすくなります。 これも ( 1) と同様に「レスポンスの良さ」と「音声の途切れにくさ」は排他的な関係にあります。
( 3) 再生スレッドのスリープ時間が長めに設定されていませんか?
→メインスレッドから送られてきたコマンドを処理するまでには最大で再生スレッドのスリープ時間分の遅延があります。 これが長いと音量などの変更やシークなどの操作に対するレスポンスが低下します。 短く設定するとシークバーの書き換えが忙しくなるため CPU やグラフィックデバイスに負荷を掛けますが、 PC に充分な性能がある場合は「オプション」→「再生スレッドのスリープ時間」を短めに設定してください。
( 4) 描画スレッドのスリープ時間が短めに設定されていませんか?
→ CPU やグラフィックが弱い機種では負荷が重くなってレスポンスが悪くなったり、サブメニューが開かなくなったりします。 「オプション」→「描画スレッドのスリープ時間」を長めに設定してください。
( 5) FFT のサンプル数が多めに設定されていませんか?
→ FFT のサンプル数を多くすれば当然負荷が重くなり、レスポンスは低下します。 「オプション」→「FFTのサンプル数」を少なめに設定してください。

A−B間リピートにおいて、リピートせずにB点を通過してしまうことがある
 A−B間リピートのアルゴリズムは、まずB点未満が再生されていることを確認し、次にB点以上が再生されていることを確認することで、 「B点に達した瞬間」を検出し、A点に自動シークするようになっています。
 リピート処理はシーク操作が自動で行われたのと同じですので、一旦ウェーブバッファを空にして音声波形データを展開し直します。
 リピート区間が短すぎたり、B点の直前にシークしたりすると、他のプロセスに CPU 時間を多く取られた場合、 本ソフトの再生スレッドが音声波形データを展開し終えてメインループに戻ってきた時に、いきなりB点以上が再生されていることがあります。 この場合、B点未満が再生されていることをまだ1度も確認していないので、「B点に達した瞬間」を検出することができず、 「さっきからずーっとB点以上を再生いている」と見なし、そのまま再生を続けることになるので、B点を通過してしまいます。
 また、B点に達する直前に再生速度、チャネル選択、左右バランス、音量、エフェクタなどの各種パラメータを変更した場合も、B点を通過してしまうことがあります。
 これを防ぐ方法は、

( 1) 「オプション」→「ウェーブバッファ1個の長さ」を短めに設定する。
( 2) 「オプション」→「ウェーブバッファの数」を少なめに設定する。
( 3) 「オプション」→「再生スレッドのスリープ時間」を短めに設定する。

などがありますが、音声が途切れやすくなったり、他のスレッドが影響を受ける可能性があるので、あまりお勧めのできる手段ではありません。 これはマルチタスクシステムの宿命なので、やはり本質的な対策は、

( 4) リピート区間をある程度長くする。
( 5) B点の直前にシークしない。
( 6) B点の直前を再生している時に各種パラメータを変更しない。

となります。

画像ウィンドウの動きがカクカクする
( 1) メインスレッドの優先順位が低めに設定されていませんか?
→メインスレッドの優先順位が低いと、描画スレッドからの要求に対する応答が遅れるため、スペクトラム波形などの動きがぎこちなくなります。 「オプション」→「メインスレッドの優先順位」を高めに設定してください。 ただし、メインスレッドの優先順位を高めに設定すると CPU 使用率が上がり、音声再生処理に使われる CPU 時間が影響を受けて音声が途切れる可能性があります。 「画像の動きの滑らかさ」と「音声の途切れにくさ」は排他的な関係にあります。
 動きの滑らかさを重視したい場合は、 「表示」メニューまたは画像ウィンドウの右クリックメニューから「フレームレート」をチェックすることによりフレームレートを表示させることができるので、 これを使って 60fps 前後になるようにメインスレッドの優先順位を調整してください。 当然ですが、再生停止中は画像ウィンドウの書き換えがほとんど発生しないので、この調整は音声ファイルの再生中に行ってください。
 また、他のソフトの影響でフレームレートが上下することもあります。
( 2) 描画スレッドの優先順位が低めに設定されていませんか?
→描画スレッドの優先順位が低いと、画像ウィンドウを描画する頻度が下がるため、スペクトラム波形などの動きがぎこちなくなります。 「オプション」→「描画スレッドの優先順位」を高めに設定してください。 ただし、描画スレッドの優先順位を高めに設定すると CPU 使用率が上がり、音声再生処理に使われる CPU 時間が影響を受けて音声が途切れる可能性があります。 これも ( 1) と同様に「画像の動きの滑らかさ」と「音声の途切れにくさ」は排他的な関係にあります。
 動きの滑らかさを重視したい場合は、 「表示」メニューまたは画像ウィンドウの右クリックメニューから「フレームレート」をチェックすることによりフレームレートを表示させることができるので、 これを使って 60fps 前後になるように描画スレッドの優先順位を調整してください。 当然ですが、再生停止中は画像ウィンドウの書き換えがほとんど発生しないので、この調整は音声ファイルの再生中に行ってください。
 また、他のソフトの影響でフレームレートが上下することもあります。
( 3) 再生スレッドのスリープ時間が長めに設定されていませんか?
→現在の再生位置の取得を再生スレッド内で行っているため、再生スレッドのスリープ時間が長いと再生位置がなかなか更新されず、画像ウィンドウの書き換えが行われなくなります。 短く設定するとシークバーの書き換えが忙しくなるためCPUやグラフィックデバイスに負荷を掛けますが、 PC に充分な性能がある場合は「オプション」→「再生スレッドのスリープ時間」を短めに設定してください。
( 4) 描画スレッドのスリープ時間が長めに設定されていませんか?
→これが長いと当然ですが画像ウィンドウの書き換えインターバルが長くなります。 「オプション」→「描画スレッドのスリープ時間」を短めに設定してください。 ただし、再生スレッドのスリープ時間より短くしても意味がありません。 詳しくは「オプション関連メニュー」の「描画スレッドのスリープ時間」の項を参照してください。
( 5) FFT のサンプル数が多めに設定されていませんか?
→ FFT のサンプル数を多くすれば当然負荷が重くなり、画像ウィンドウの書き換えインターバルが長くなります。 「オプション」→「FFTのサンプル数」を少なめに設定してください。

他のソフトを一緒に走らせていると時折画像ウィンドウの動きが一瞬止まったようになる
 これはある意味仕様というか、ハードの限界なので、マシンをもっと高性能なものに換えるか、他のソフトを終了するのが根本的な対策といえます。 無責任かもしれませんが。
 どうしても本ソフト側で何とかしたいという場合は、 「オプション」→「メインスレッドの優先順位」および「オプション」→「描画スレッドの優先順位」を高めに設定することである程度改善できます。 ただ、他のソフトの CPU 時間が影響を受ける可能性があります。 マシンパワーが不足している状態で本ソフトのスレッドの優先順位を上げるわけですから当然といえば当然です。 また、本ソフトの再生スレッドの CPU 時間さえも影響を受ける可能性があります。 その場合は音声が途切れる原因となり得ます。

鍵盤が光らない、あるいは光りっぱなしになる
( 1) 下側しきい値が高めに設定されていませんか?
→音量レベルが下側しきい値に達していなければ鍵盤は光りません。下側しきい値を低めに設定してください。
( 2) 上側しきい値が低めに設定されていませんか?
→音量レベルが上側しきい値を超えた鍵はすべて最高輝度で光ります。上側しきい値を高めに設定してください。
 しきい値の設定のしかたについては「鍵盤の光らせかた」の項を参照してください。

本来光るはずの鍵の隣の鍵が光ってしまう
 FFT のサンプル数が少ないのが原因です。 同じ原因で、絶対に光ることのない鍵も存在します。 「オプション」→「FFTのサンプル数」を多め(8192程度)に設定することで、ある程度改善(特にテンポがゆっくりした曲に有効)できます。
 しかし、FFT のサンプル数を多くすると、負荷が重くなるばかりでなく、スペクトラム波形の時間的変化が鈍くなります。 PCM のサンプリング周波数が同じで FFT のサンプル数を多くするということは、サンプリング期間が延びるということになります。 すると、本来調べたかった瞬間の前後の周波数成分が混ざってしまいます。 スペクトラム波形の時間的変化の機敏性と周波数の正確さは排他的な関係にあります。

スペクトラム波形、レベルメータおよび光る鍵盤の表示が滅茶苦茶になる
 FFT のサンプル数に対してウェーブバッファの長さ、数が足りません。

ウェーブバッファ1個のサンプル数×(ウェーブバッファの数−1)≧ FFT のサンプル数/2

を満たす必要があります。
 FFT のサンプル数/2としたのは、現在再生している位置が FFT 用のサンプリング期間の中央に来るようにするために、 ファイルからの読み込みが現在の再生位置より常に FFT のサンプル数/2以上先行している必要があるからです。
 ウェーブバッファの数−1としたのは、ウェーブバッファの1つが空になった時を考慮してのことです。
 例えばサンプリング周波数が 44.1kHz のファイルを再生する場合、

ウェーブバッファ1個の長さ= 100 ミリ秒 → ウェーブバッファ1個のサンプル数= 4410
ウェーブバッファの数   =2個

という設定では、FFT のサンプル数は 8192 が上限となります。
「オプション」→「ウェーブバッファ1個の長さ」
「オプション」→「ウェーブバッファの数」
「オプション」→「FFTのサンプル数」
をそれぞれ調整してください。

画像と音声の同期がずれる
 PC の性能が不足していると、FFT 演算や画像ウィンドウの描画に時間がかかるため、画像の方が遅れて表示されます。
 一方、本ソフトの光る鍵盤は、音量レベルが「光る鍵盤のしきい値」に達したところから光り出します。 大抵の場合、「光る鍵盤のしきい値」はスペクトラム波形のピークの少し下あたりに設定されているはずなので、 音量レベルがピークになる直前に鍵盤が光り出すことになります。 この場合、画像の方が若干進んでいるように見えます。
 また、FFT のサンプル数が多いと、FFT 演算や画像ウィンドウの描画の処理が重くなって表示が遅れます。 というより、そもそもサンプリング期間が長くなるのでスペクトラム波形の時間的変化が鈍くなり、 画像と音声のタイミングが合っているのかどうかさえわかりにくくなります。
 PC の性能は充分なはずなのに明らかにずれている場合は、サウンドドライバのバグの可能性があります。 本ソフトでは waveOutGetPosition() 関数を用いて現在の再生位置を取得しているので、 この関数が正確な再生位置を返してくれないと正常な表示ができません。 サウンドドライバを更新するか、サウンドデバイスそのものを入れ換えるぐらいしか解決方法はないでしょう。

 設定のどの項目をどのようにいじったかわからなくなってしまった場合は、 「オプション」メニューの項目をすべて「(推奨)」が付いているものに設定し直すか、 本ソフトがインストールされているフォルダにある "MAIN.INI" ファイルを削除してみてください ("MAIN.INI" ファイルの削除は本ソフトを終了してから行ってください)。




トップページへ