スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« ループバック録音を追加 | トップページ | 描画はGDIのまま高速化 »

64Bit版も追加

今は、MasterReversiの次バージョンを開発中で、本体の変更は、一応、大体は終わっているのだが、もう少し手を入れるつもりだ。それと並行して、今回は付属アプリのWaveClipperも更新しているのだが、ついでなので64Bit版も追加した。その結果、録音時間は伸びる。

WaveClipperというのは、基本的には、MasterReversiの効果音編集用のツールとして開発したモノで、現行版のリリース当時には、他のゲームソフト開発者の人から、やはり、効果音の編集用に便利に使わせてもらっている、なんてメールを貰ったりもした。

なので、別段、録音時間は数十秒もあれば十分ではあるのだが、作者的には、その当時には、YouTubeにある音楽動画をキャプチャーして音楽ファイル化するのに使ったりもしていた。

もっとも、そういう音楽動画についても、録音時間は数分もあれば十分なので、現行版では、録音時間の上限は44.1kHzステレオ16Bitサンプリング時に30分に制限している。

何故、制限しているのか、というと、WaveClipperでは、音声データの全体をメモリ上に持つ構造にしてあるからだ。

つまり、録音時間が長くなると、そのデータの全体をメモリに読み込む訳なので、メモリ不足になってクラッシュしてしまうので、そうならない様に、読み込めるデータ量を制限する格好にしてある訳だ。

なので、WaveClipperでは、録音以外に、Waveファイルの読み込み機能もあるし、複数のWaveファイルの連結機能もあるのだが、それらについても、総データ量については、録音時と同様の制限を入れている。

と、いう事なので、WaveClipperでは、普通は、データの読み込みが終われば、編集作業はメモリ上で行われるので、快適な訳なのだが、30分というのは、一般的な用途を鑑みれば、短いかもしれない。

まあ、前述の通りなので、WaveClipperの用途としては、十分な時間ではある筈なのだが、今時のPCの多くは64Bit環境で動作しているし、64Bit環境でなら、使用できるメモリ量も多い訳なので、今回、64Bit版も追加し、64Bit版では、もう少し長時間のデータも扱える様にした訳だ。

もっとも、Waveファイルは、そのヘッダにデータ長を格納するフィールドがあり、その型はunsigned intになっているので、最長4GB-1バイトのサイズが扱えるのだが、64Bit版で扱えるサイズは2GB-1までにした。

その理由は、4GBまで扱える様にしてみた所、メインメモリが8GBの作者マシンでは、データの読み込みに数分かかり、かつ、読み込み終了後にも、メモリ不足なので他ソフトを終了して下さい、みたいな、Windowsの警告メッセージが出たからだ。

つまり、WaveClipperはデータをメインメモリに全て読み込むので、扱えるサイズの制限を甘くすると、メインメモリを使いすぎて、メモリ不足からマシン性能の低下を招く可能性も高くなるし、そもそも、Waveファイルには2GB上限説もあるからだ。

2GB上限説というのは、Waveファイルを扱うソフトの中には、少なくとも大昔には、2GB以上のサイズを正しく扱えないモノが多かった為に、巷で囁かれる事もあるのだが、何故、2GB以上のデータを扱えないソフトが存在するのか、というと、余程単純なソフトでない限り、データ位置の比較なんかの処理も存在するからだ。

例えば、1GBの位置と2GBの位置の差というのは1GBになるか-1GBになる訳なのだが、-1GBという値を処理したければ、その変数は符号付にする必要があり、符号付int変数で扱えるデータサイズの上限は2GBになる訳だ。

今となっては、64Bitマシンの時代なので、64Bit変数である所のlong long変数を使うのも、然程、抵抗は無くなってきてはいる筈なのだが、少なくとも大昔には、CPUのレジスタが32Bitしかないのに、64Bit変数を使うなんてのは、考えられなかった訳だ。

と、いう事なので、WaveClipperの64Bit版では、扱えるデータサイズの上限は2GBに制限したのだが、これはWaveファイルの限界だから、という訳ではなく、上記の様な理由からだ。

それでも、64Bit版では、44.1kHzステレオ16Bitサンプリングで、約3時間分のデータは扱える様になるので、WaveClipper的には、十分すぎるデータを扱える様になる訳だ。

ちなみに、AG-ムービーカッターではWaveファイルも読み込めるのだが、試してみた所、2GBオーバーのWaveファイルも読み込め、再生も行えた。

で、AG-ムービーカッターでは、全データをメインメモリに読み込む、なんて事はしていないので、読み込みにも時間はかからなかったし、タスクマネージャで見た所、使用メモリ量も10MBくらいだ。

と、いう事なので、より長時間のWaveファイルの連結なんかを行いたい人は、AG-ムービーカッターを使えば良い訳なのだが、Waveファイルの上限サイズは4GBなので、どの道、44.1kHzステレオ16Bitサンプリングでは、約6時間が限界になる。

ただし、3GBのWaveファイルを2つ連結してm4aファイルにエンコードして出力する事は出来たので、Wave形式にこだわらなければ、AG-ムービーカッターを使えば、複数のWavファイルからより長時間の音声ファイルを作成する事は可能だ。

もっとも、WaveCliipperでは、8KHzモノラル8Bitサンプリングも行えるので、その場合、2GBが上限でも、72時間、つまり、丸3日程度の長時間録音は可能になる。

= この記事に関連する公開中ソフト =

WaveClipper

WaveClipper

(2016/05/04追記)

« ループバック録音を追加 | トップページ | 描画はGDIのまま高速化 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63415493

この記事へのトラックバック一覧です: 64Bit版も追加:

« ループバック録音を追加 | トップページ | 描画はGDIのまま高速化 »

2017年8月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google