周波数と波を操作できるトーンを生成する必要があります。全体的な目標は、基本的なピアノを作成することです。どうすればこれを達成できるか知っている人はいますか?
私の開発プラットフォームは iPhone 2.x です
周波数と波を操作できるトーンを生成する必要があります。全体的な目標は、基本的なピアノを作成することです。どうすればこれを達成できるか知っている人はいますか?
私の開発プラットフォームは iPhone 2.x です
いつでもsin
波から始めることができます。:-)
#include <cmath>
typedef double Sample;
typedef double Time;
class MonoNote {
protected:
Time start, duration;
virtual void internalRender(double now, Sample *mono) = 0;
public:
MonoNote(Time s, Time d) : start(s), duration(d) {}
virtual ~MonoNote() {}
void render(double now, Sample *mono) {
if (start <= now && now < start + duration) {
internalRender(now, mono);
}
}
};
class MonoSinNote : public MonoNote {
Time freq;
Sample amplitude;
protected:
void internalRender(double now, Sample *mono) {
const double v = sin(2*M_PI*(now - start) * freq);
*mono += amplitude*v;
}
public:
MonoSinNote(Time s, Time d, Time f, Sample a) : MonoNote(s, d), freq(f), amplitude(a) {}
~MonoSinNote() {}
};
Mobilesynth をチェックしてください...アプリ ストアのオープン ソース シンセサイザー: http://code.google.com/p/mobilesynth/
正弦波を再生するDefaultOutputUnitサンプルコードを確認してください。
/ Developer / Examples / CoreAudio / SimpleSDK / DefaultOutputUnit
Apple Developer Forumsには、これに関するスレッド (" Audio Synthesis ") があり、洞察が得られる可能性があります。
http://mda.smartelectronix.com/をチェックしてください。これらは一連のオープン ソース VST プラグインです。Piano、ePiano、またはDX10のソースを見てください。それはあなたが見つけようとしているのと同じくらい簡単です。