は
BASSは非商用利用のための無料あるwww.un4seen.com BASSライブラリを見てみましょう。
プラットフォーム:Win32、OSX、Linux
BASSは、Win64、WinCE、iOS、Android、およびARM Linuxプラットフォームでも使用できます。
BASSは、複数のプラットフォームのソフトウェアで使用するためのオーディオライブラリです。その の目的は、開発者に ストリーム(MP3、MP2、MP1、OGG、WAV、AIFF、カスタムなど、 OSコーデックとアドオン経由で)、MOD音楽(XM、IT、 S3M、MOD、MTM、UMX)、MO3 音楽(MP3/OGG圧縮MOD)、および録音機能が含まれます。 コンパクトDLL/LIBのすべてで、あなたの配布を膨らませません。
BASSは多くのアドオンをサポートしています。使いやすく、柔軟性があり、優れたドキュメント/例と、これまでに見た中で最高のサポートです。
カスタム生成されたサンプル
そしてまた、WAV/AIFF/MP3/MP2/MP1/OGG
例:440Hzの正弦波のサンプルを作成します。あなたはそれを持って好きなように
。同時にサウンドカード経由
HSAMPLE sample=BASS_SampleCreate(256, 28160, 1, 1,
BASS_SAMPLE_LOOP|BASS_SAMPLE_OVER_POS); // create sample
short data[128]; // data buffer
int a;
for (a=0; a<128; a++)
data[a]=(short)(32767.0*sin((double)a*6.283185/64)); // sine wave
BASS_SampleSetData(sample, data); // set the sample's data
再生
複数のサウンドカードを使用して、カスタムDSP
それらの間のチャネルは、あなたが
をしたい任意の順序で、あなたが希望する任意のエフェクトを適用する移動DSPは、以下を使用してセットアップされます。 HDSP BASS_ChannelSetDSP(
DWORD handle,
DSPPROC *proc,
void *user,
int priority
);
例:ステレオ16ビットチャンネルの左右のチャンネルをスワップするシンプルなDSP機能。
void CALLBACK SwapDSP(HDSP handle, DWORD channel, void *buffer, DWORD length, void *user)
{
short *s=buffer;
for (; length; length-=4, s+=2) {
short temp=s[0];
s[0]=s[1];
s[1]=temp;
}
}
(BASSenc介してアドオンを介しWMAエンコード&放送、およびその他の形式)
複数のデバイスサポートと入力選択による柔軟な記録方式、記録
FFT
例:チャネル上で1024サンプルのFFTを実行し、結果をリストします。
float fft[512]; // fft data buffer
BASS_ChannelGetData(channel, fft, BASS_DATA_FFT1024);
for (int a=0; a<512; a++)
printf("%d: %f\n", a, fft[a]);
スピードはC++が欲しいとおっしゃいましたが、オクターブでプロトタイプを作成してC++に移植することをお勧めします。http://www.gnu.org/software/octave/doc/interpreter/Audio-Processing.html 。 C++の場合、PortAudio http://www.portaudio.com/docs.html – TJD
を非商用で無料で使用できますか? – Samaursa
@TJD:大部分の処理は遺伝的アルゴリズムを使って行われるため、プロトタイピングはそれほど多くなく、オクターブがその作業に適しているとは思われません。 – rmeador