Я делал визуализатор алгоритма сортировки и, конечно, нужен звук. После того, как я погрузился в LoadFromAmple < /code>, я получил его работу, но у него был этот всплывающий звук каждый раз, когда он играл. Вот мой код (или только соответствующие биты) < /p>
#include
#include
#include
#include
sf::SoundBuffer buffer;
sf::Sound sound(buffer);
std::vector cmap(1, sf::SoundChannel::Mono);
short SineWave(double time, double freq, double amp)
{
short result;
double tpc = 44100 / freq;
double cycles = time / tpc;
double rad = 6.283185307 * cycles;
short amplitude = 32767 * amp * ((time < 100) ? (time * time / 10000) : (1)); //Fade-in
result = amplitude * std::sin(rad);
return result;
}
int main()
{
std::vector samples;
for (int i = 0; i < 22050; i++) //22050 is half of a second
{
samples.push_back(SineWave((double) i, 440, 0.1));
}
buffer.loadFromSamples(&samples[0], samples.size(), 1, 44100, cmap);
sound.setBuffer(buffer);
sound.play();
}
//The code would have ran for much after this so the sound wouldn't be cut off
Может ли кто -нибудь указать причину или исправить это?
Я делал визуализатор алгоритма сортировки и, конечно, нужен звук. После того, как я погрузился в LoadFromAmple < /code>, я получил его работу, но у него был этот всплывающий звук каждый раз, когда он играл. Вот мой код (или только соответствующие биты) < /p> [code]#include #include #include #include
short SineWave(double time, double freq, double amp) { short result; double tpc = 44100 / freq; double cycles = time / tpc; double rad = 6.283185307 * cycles; short amplitude = 32767 * amp * ((time < 100) ? (time * time / 10000) : (1)); //Fade-in result = amplitude * std::sin(rad); return result; }
int main() { std::vector samples; for (int i = 0; i < 22050; i++) //22050 is half of a second { samples.push_back(SineWave((double) i, 440, 0.1)); } buffer.loadFromSamples(&samples[0], samples.size(), 1, 44100, cmap); sound.setBuffer(buffer); sound.play(); } //The code would have ran for much after this so the sound wouldn't be cut off [/code] Может ли кто -нибудь указать причину или исправить это?