私は和音波形をJava(Android)で生成したい。
以下は正弦波の和音の例です(C,E,G)。
他、のこぎり波、矩形波、三角波を作成したいのですが、行き詰まっています。
どなたか教授願いませんでしょうか?
// sine wave
AudioTrack track = new AudioTrack(
AudioManager.STREAM_MUSIC,
44100,
AudioFormat.CHANNEL_CONFIGURATION_DEFAULT,
AudioFormat.ENCODING_DEFAULT,
44100,
AudioTrack.MODE_STATIC);
byte[] sinWave = new byte[44100];
double freq_c3 = 261.6256;
double freq_e3 = 329.6276;
double freq_g3 = 391.9954;
double t = 0.0;
double dt = 1.0 / 44100;
for (int i = 0; i < sinWave.length; i++, t += dt) {
double sum = Math.sin(2.0 * Math.PI * t * freq_c3)
+ Math.sin(2.0 * Math.PI * t * freq_e3)
+ Math.sin(2.0 * Math.PI * t * freq_g3);
sinWave[i] = (byte) (Byte.MAX_VALUE * (sum / 3));
}
track.write(sinWave, 0, sinWave.length);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/01 17:57
2017/06/01 21:22
2017/06/03 16:10