音声を逆に再生してみる

寄稿:東條遼平

サンプリングデータの入れ換え

waveファイルが読み込めていれば逆さまに再生するのは大変簡単です.単純にサンプリングデータ並びを逆さまにすればいいだけです.ただし,量子化ビット,チャンネル数によって保存先の変数が違うために場合分けをしなければなりません.

   if(snd->monaural8){
     unsigned char temp;
     for(i=0; i<snd->datanum/2-1; i++){
       temp = snd->monaural8[i];
       snd->monaural8[i] = snd->monaural8[snd->datanum - i - 1];
       snd->monaural8[snd->datanum - i - 1] = temp;
     }
   }else if(snd->monaural16){
     signed short temp;
     for(i=0; i<snd->datanum/2-1; i++){
       temp = snd->monaural16[i];
       snd->monaural16[i] = snd->monaural16[snd->datanum - i - 1];
       snd->monaural16[snd->datanum - i - 1] = temp;
     }
   }else if(snd->stereo8){
     Soundsample8 temp;
     for(i=0; i<snd->datanum/2-1; i++){
       temp = snd->stereo8[i];
       snd->stereo8[i] = snd->stereo8[snd->datanum - i - 1];
       snd->stereo8[snd->datanum - i - 1] = temp;
     }
   }else if(snd->stereo16){
     Soundsample16 temp;
     for(i=0; i<snd->datanum/2-1; i++){
       temp = snd->stereo16[i];
       snd->stereo16[i] = snd->stereo16[snd->datanum - i - 1];
       snd->stereo16[snd->datanum - i - 1] = temp;
     }
   }

使用しているポインタ以外はNULLでクリアされていますので,それをif文でチェックしています.

Valid XHTML 1.1! home > コンピュータ > プログラミング >
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.3.29HTML convert time to 0.008 sec.