2010-01-22 5 views
2

ANSI C를 사용하여 Mac OS X (이상적으로는 다른 유닉스 계열 OS)에서 소리 합성을하고 싶습니다.유닉스에서 자작 소리를 출력하는 간단한 방법은 무엇입니까?

이것은 "해결책이 필요합니다.

제 C 프로그램에 22050 번 초를 업데이트하는 8 비트 버퍼가 있다고합시다. 어떻게하면 스피커에서 파형으로 출력 할 수 있습니까?

+0

정확히 무엇을 물어 보지 않았지만 아마도 도움이 될 수도 있습니다. http://stackoverflow.com/questions/379353/what-is-a-lightweight-cross-platform-wav-playing-library/ – quinmars

+0

@ quinmars libao는 훌륭하고 가벼워 보입니다. 답을 적어 놓으면 몇 가지 포인트를 얻을 수 있습니다. – xyz

+0

완료되었지만 libao가 OSX를 지원하는 참조를 찾지 못했습니다 – quinmars

답변

1

POSIX 오디오 API 또는 이와 유사한 것은 없습니다. 따라서 Linux, OSX 등에서 사운드 지원을 원한다면 다른 OS의 기본 사운드 API를 감싸는 라이브러리가 필요합니다. 이 SO question을 살펴보십시오. 그것은 OSX을 직접 요구하지는 않지만, 아마도 libao를 제외하고 대부분의 답변이 그것을 위해 작동해야합니다. 적어도 OSX를 지원한다고 나는 그들의 홈페이지에서 아무 것도 발견하지 못했습니다.

+0

libao-0.8.8 \ src \ plugins \ macosx : – xyz

+0

괜찮습니다. :) – quinmars

+0

좀 더 간단하기 때문에 받아 들여야합니다. OS X에있는 다른 사람이라면, 드라이버를 수동으로 컴파일 된 버전으로 초기화 할 수 없다면'MacPorts'를 사용하여 설치하십시오. – xyz

3

SDL은 사운드 버퍼를 재생할 수 있습니다. 그러나 PortAudio가 더 잘 작동 할 수 있습니다. PA는 더 많은 데이터가 필요할 때 C 콜백을 호출하고 다음 버퍼를 넘겨 줄 수 있습니다. 사실 꽤 쉽습니다.

+2

+1 for portaudio. 간단한 사운드 출력은 20 줄 미만으로 작성할 수 있습니다 .. Output-Stream을 열고 씁니다. –

+0

좋아 보인다! 고마워요. – xyz

관련 문제