• 締切済み

再生停止した部分の音を鳴らし続けるには。

車のエンジン音をサンプリングした物をAudacityに取り込んで編集しております。 用途はレースゲームのエンジン用のサウンドです。 一定のピッチで途切れる事無く違和感無くループ再生したかった為サンプリングするエンジン音はなるべく一定になるようにしましたが微妙にピッチが変化してしまいました。 その為ピッチ変動の少ない1秒程を選定→コピーして前後を反転→コピー前の部分に貼り付ける といった作業を行う事である程度までは改善する事ができました。 ですがやはり完全には一定の音とすることができません。 また、音のつなぎ目にどうしても小さくクラックルノイズの様なノイズが入ってしまいます。 テンポの変更も試しましたが、遅くしすぎると音が波打つ状態となり使えませんでした。 そこでサウンドを再生中に一時停止を行い、停止した部分の音を鳴らし続ける事ができれば完全に一定の音がサンプリングできるのではと考えました。 例えば音楽を聞いていてOSがフリーズ→フリーズした部分で一定の状態で音が鳴り続ける状態をイメージしていただければ分かり易いかと思います。 Googleで検索してみましたがテンポの変更方法や音量の一定化についてばかりしかヒットしませんでした。 誰も質問しそうに無い事で申し訳ありませんが、改善策を提供していただける方がいらっしゃいましたらご教授の程宜しくお願い致します。

みんなの回答

回答No.1

あまり詳しい訳ではないのですが... まず、一般的にいわれている「サンプリング音源」というのは、単にデジタル録音しただけのものではなくて、そこから得られた「音の特徴の再製(再生ではない)」です。たとえば、ピアノの音源を作るときには、88個(ピアノは88鍵なので)の音を用意するのではなくて、それらの平均的な特徴をもって「ピアノの音」とする訳です(もっとも、現代のサンプリング音源はリアリティを追求してそれに近いことをやっていますが、そうなるとピアノだけで数GBという膨大なデータ量になってしまいます)。 したがって、そういう意味でのサンプリングはかなり難しく、ゲーム側のサウンドエンジンにも依るとは思いますが、ある程度は妥協せざるを得ないでしょう。 >> 音のつなぎ目にどうしても小さくクラックルノイズの様なノイズが入ってしまいます。 // ゼロクロスポイントで繋いでいないからではありませんか? 時間軸方向に拡大するとサンプル単位で波形が表示されますから、ゼロクロスの部分で繋いでみてはどうでしょうか。 また、前後を反転させる必要はないように思われます。 どうしてもダメなら、1trをフェードアウトさせつつ2trをフェードインさせて一部重ねる(0.2秒くらいで)、というのもありかと思います。 >> 停止した部分の音を鳴らし続ける事ができれば // パソコンがフリーズしたときに同じ音が繰り返されるのは、その一定間隔の音が繰り返し再生されるからです。いいかえれば、パソコンは、RAM上に展開した一定時間の音のまとまり(バッファ)を順次送り出している訳です。これは、いままであなたがやろうとしていたこと(一定時間の音を切り出してコピペする)のと、根本的な発想は同じです。 波形表示で時間軸を拡大すれば、縦軸方向に激しく上下しているのが分かりますが、一時停止というのはその一点で止めるということです。その瞬間を繰り返すと、横一直線の波形(もはや「波」とはいえない)になってしまい、音になりません。

YakkunKY
質問者

お礼

ご解答ありがとう御座います。 なるほど、音の考え方自体間違っていたようです。 確かに横一直線の波形となり音とは言えない状態になってしまいますね。 クラックルノイズについてはおっしゃる通りゼロクロスポイントで繋いでおりませんでした。 ゼロクロスポイントで繋いでみるとある程度改善する事ができました。 ご解答ありがとう御座いました。

関連するQ&A