私はlibsndfileとlibsamplerateを使って簡単なサンプラー変換をcで構築しています。私は何をしようとしてもlibsamplerateのsrc_simple関数がうまくいくように思えます。私はできるだけシンプルに自分のコードをバックストライピングして、それは今だけで、同一のサンプリングレートのサイレント・オーディオ・ファイルを出力しますlibsndfileとlibsamplerateを使用したオーディオサンプレートコンバータ。関数src_simpleを正しく使用しているかどうかわからない
#include <stdio.h>
#include <sndfile.h>
#include <samplerate.h>
#define BUFFER_LEN 1024
#define MAX_CHANNELS 6
int main()
{
static double datain [BUFFER_LEN];
static double dataout [BUFFER_LEN];
SNDFILE *infile, *outfile;
SF_INFO sfinfo, sfinfo2 ;
int readcount ;
const char *infilename = "C:/Users/Oli/Desktop/MARTYTHM.wav" ;
const char *outfilename = "C:/Users/Oli/Desktop/Done.wav" ;
SRC_DATA src_data;
infile = sf_open (infilename, SFM_READ, &sfinfo);
outfile = sf_open (outfilename, SFM_WRITE, &sfinfo);
src_data.data_in = datain
src_data.input_frames = BUFFER_LEN;
src_data.data_out = dataout;
src_data.output_frames = BUFFER_LEN;
src_data.src_ratio = 0.5;
src_simple (&src_data, SRC_SINC_BEST_QUALITY, 1);
while ((readcount = sf_read_double (infile, datain, BUFFER_LEN)))
{
src_simple (&src_data, SRC_SINC_BEST_QUALITY, 1);
sf_write_double (outfile, dataout, readcount) ;
};
sf_close (infile);
sf_close (outfile);
sf_open ("C:/Users/Oli/Desktop/Done.wav", SFM_READ, &sfinfo2);
printf("%d", sfinfo2.samplerate);
return 0;
}
それは本当に私を強調し始めています。このプログラムはユニ・プロジェクトであり、まもなく予定されています。私が試みていることが失敗に終わったように思えるので、私は非常に気になります。誰でも助けてくれますか?
なぜ古い質問を削除して再投稿しましたか?今、答えとコメントは失われています。 –
申し訳ありません私は新しいスレッドを作る必要がある本質的に異なるプログラムだと思いました。 – OliD
本当に新しい質問があれば、投稿しても構いませんが、古いものは削除しないでください。ただ元の質問に情報を追加したいだけなら、それを編集するだけです。 –