[c++] 오디오 신호 생성

가장 일반적인 방법 중 하나는 특정 주파수의 사인(sin) 또는 코사인(cos) 함수를 사용하여 신호를 생성하는 것입니다. 예를 들어, 주파수가 f이고 시간 t일 때의 사인 함수는 다음과 같이 표현됩니다.

#include <iostream>
#include <cmath>

// 주파수와 샘플링 속도 설정
double frequency = 440.0;  // A4 음계의 주파수
int sampleRate = 44100;  // 44.1kHz의 샘플링 속도

// 오디오 신호 생성 함수
void generateAudioSignal(double* buffer, int numSamples) {
    for (int i = 0; i < numSamples; ++i) {
        double time = i / (double)sampleRate;
        buffer[i] = std::sin(2 * M_PI * frequency * time);
    }
}

int main() {
    int numSamples = 44100;  // 1초 동안의 샘플 수
    double audioBuffer[numSamples];

    generateAudioSignal(audioBuffer, numSamples);

    // 생성된 신호를 처리하거나 저장하는 코드 추가
    return 0;
}

위 예제 코드는 A4 음계의 440Hz 주파수를 갖는 사인 함수를 사용하여 1초 동안의 오디오 신호를 생성합니다. 생성된 신호는 후속 처리나 저장을 위한 추가 코드로 확장될 수 있습니다.

또 다른 방법은 오디오 라이브러리를 사용하여 실시간으로 오디오 신호를 생성하는 것입니다. 여러 가지 라이브러리가 제공되므로 사용하고자 하는 특정 라이브러리에 대한 문서를 참조하는 것이 좋습니다.