문제

나는 인터넷을 검색했지만 흥미로운 것을 찾지 못했습니다.어쩌면 내가 뭔가 잘못하고 있는 것 같습니다.

저는 다양한 유형의 파동을 합성할 수 있는 C, C++ 또는 Objective-C로 작성된 사운드 합성 API를 찾고 있습니다. 효과는 선택 사항입니다.

도움이 되었습니까?

해결책

다음은 FM (주파수 변조) 합성을위한 완전한 라이브러리/툴킷입니다.

링크 1 링크 2

여분의 시간이 있다면 ... 처음부터 간단한 사운드 합성을 만드는 것은 실제로 재미있는 노력입니다. 사인을 나타내는 256 16 비트 샘플의 작은 버퍼를 만드는 경우. 톱니, 블록 또는 펄스,이를 지속적으로 루프하는 라이브 오디오 버퍼 (예 : 작은 버퍼 (예 : 16KB))에 복사 할 수 있습니다. PlayPosition보다 앞서 나가고 새로운 값으로 버퍼를 지속적으로 채우면 SoundOutput을 만들 수 있습니다. 작은 버퍼를 사용하여 흥미로운 방식으로 결합 할 수 있습니다 (가장 간단한 것은 함께 추가하는 것입니다 (추가 합성)).

작은 버퍼를 통해 더 크거나 작은 샘플링 단계를 사용하여 톤의 주파수를 조작 할 수 있습니다. 샘플을 출력 버퍼에 넣기 전에 샘플을 스케일링하여 진폭을 조작 할 수 있습니다.

이것으로 실험하는 큰 재미있는 재미!

이 단계를 못 박은 경우 필터 (저 패스, 하이 패스 등) 및 효과 (리버브, 에코 등)와 같은 더 정교한 효과를 추가 할 수 있습니다.

아르 자형

다른 팁

합성 툴킷(STK)?C++에 있습니다. (저는 ObjC가 오디오 합성에 적합한 언어라고 생각하지 않습니다. 사실 오디오 유닛은 생성기/필터/효과를 포함한 오디오 작업을 수행하는 Apple 고유의 방식입니다...C++에 있습니다).

STK는 Mac OS X 및 iOS에서 문제 없이 실행되지만(CoreAudio는 지원됨) RtAudio를 사용하여 Linux 및 Windows(Direct sound 및 ASIO)에서도 실행됩니다.정말 훌륭하게 완성되었고 가볍습니다. 이 사람들은 그것에 대해 많은 시간을 들여 고민했고 확실히 여러분에게 큰 도움이 될 것입니다.다양한 오디오 파일 형식과 미디(그리고 곧 OSC가 되길 바랍니다...)를 처리할 수 있습니다.

도 있습니다 만들다 거대한 CLAM에는 GUI 구성 요소와 원할 수도 있고 원하지 않을 수도 있는 다른 많은 것들이 포함됩니다.사운드 합성에만 관심이 있다면 STK를 추천합니다.

Portaudio는 또한 우리가 지난 학기 오디오 프로그래밍 과정에서 사용한 훌륭한 C API입니다. 오디오 콜백을 제공합니다 ... 무엇이 더 필요할 수 있습니까!?

나는 그것을 객관적인 C에 포함 시키려고 시도하지 않았지만, 내가 할 때 다시보고 할 것입니다.

C/OBJ-C에 오디오 합성 알고리즘을 작성하는 것은 제 생각에 매우 어렵습니다. 신호 처리 알고리즘을 사용하는 것이 좋습니다 PUREDATA 그리고 사용하십시오 Zengarden 또는 libpd 앱에 PD 패치를 포함시키고 해석합니다.

다른 C ++ 라이브러리는 NSound입니다.

http://nsound.sourceforge.net

발전기 클래스를 사용하거나 제공된 사인 클래스를 사용하여 모든 종류의 변조 신호를 생성 할 수 있습니다. 각 시간 단계는 자체 순간 주파수와 위상 오프셋을 가질 수 있습니다.

또한 Python 모듈을 실험하여 알고리즘을 빠르게 프로토 타입 한 다음 C ++로 구현할 수 있습니다. 파이썬과 C ++에서도 예쁜 Matplotlib 플롯을 생성 할 수 있습니다!

봤어? C사운드?놀랍도록 유연한 오디오 생성 플랫폼으로, 간단한 파형 생성부터 FM 합성 및 모든 종류의 필터에 이르기까지 모든 것을 처리할 수 있습니다.또한 MIDI 지원을 제공하며 사용자 정의 opcode를 작성하여 확장할 수 있습니다.거기에 전체 C API 그리고 여러 C++ API도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top