2011-01-20 2 views
6

iPhone 응용 프로그램 (예 : 오디오 처리)을 개발 중입니다. 나는 오디오에 약간의 효과를 주어야한다. desktop app 인 경우 많은 옵션이 있습니다. 우리는 훌륭한 예제와 대담과 같은 완전한 프로젝트를 얻을 수 있습니다. 하지만 저는 iPhone 용으로 개발하고 싶습니다.리버브 기능이있는 iphone 앱을 개발하는 방법은 무엇입니까?

리버브 옵션이있는 앱이 있습니다. (다음 링크를보십시오). "video"을보고 iPhone 장치에서이 응용 프로그램을 테스트하지 않았습니다.
http://www.appstorehq.com/reverb-iphone-89870/app

내 질문은; 리버브 기능으로 앱을 어떻게 개발할 수 있습니까? 거기에 대한 설명서가 있습니까? 그렇다면 우리와 공유하십시오.

참고 : AudioUnit을 사용하여 리버브 기능이있는 앱을 개발할 수 있습니다.

EDIT : 제 3 자 라이브러리를 사용하고 싶지 않습니다.

이에 대한 지식이있는 분은 나와 공유하십시오.

감사합니다.

+0

지금까지 어떤 코드를 작성 했습니까? 최선의 방법은 아마도 AudioUnit 설명서부터 시작하여 작업을 시작하는 것입니다. –

+0

Objective-C에서 C++ 코드를 사용하고 있습니다. 리버브 샘플이 있습니까? – jfalexvijay

+0

OpenAL도 iPhone에서 쉽게 사용할 수 있습니다. 따라서 원시 샘플에서 작동하는 기존 알고리즘을 사용하면 쉽게 사용할 수 있습니다. – spurserh

답변

0

iOS 설명서에서 "reverb"를 검색하면 "effect unit"으로 리버브를 참조하는 Core Audio Overview에 대한 링크가 생성됩니다. 아마도 그 연구가 더 가치가 있을까요?

0

아니요, 제가 오디오 장치 접근법을 시도했습니다. 문서에 있지만 아직 사과 엔지니어가 구현하지 않았습니다. 리버브 속성을 설정하는 함수를 호출 할 때마다 실패 상태 코드 만 나타납니다. 자신 만의 리버브 이펙트를 구현해야합니다. 일부 DSP 책을 읽으십시오. 단서를 찾을 수 있습니다.

+0

이 기능을위한 오픈 소스가 있습니까? – jfalexvijay

+1

충분히 열심히 찾으려고 할 때가 있습니다 ... 그런데, 당신은 단지 잔향 효과가 아이폰의 모든 노래에 대해 깨끗하지 않을 것이라는 것을 알고 있습니다. 즉, 약간의 왜곡이 발생할 것입니다. 아이폰에있는 DAC. 그래서 왜곡을 최소화하는 트라이 밴드 이퀄라이저를 리버브 아이폰 앱에 제공합니다. 너무 쉽게 행운이 아니다. – Samuel

1

AU는 시작하기 좋은 장소입니다.

리버브 구현이 포함 된 고유 한 리버브 AU를 작성하십시오. 리버브를 구현하는 방법은 수없이 많습니다. 중/장기 콘벌 루션 잔향은 전화에서 많은 것을 요구하지만 FDN (피드백 지연 네트워크)과 같은 것은 많은 메모리 또는 CPU를 필요로하지 않습니다.

오디오 프로그래밍 및 최적화에 익숙한 경우 두 가지 구현이 모두 구현하기 쉽습니다. 힘든 부분은 실제로 아주 좋은 소리를 내고 잘 연주하는 것을 만드는 것입니다.

만약 당신이 최적의 저수준 코드를 쓸 수 없거나 (현재) 기본 오디오 신호 처리를 이해하지 못한다면, 극복하기위한 몇 가지 장애가있을 것입니다.

0

일부 DSP 수준의 코딩을 배우기 위해 DSP 요리 책자는 괜찮습니다. 다른 것들도 있습니다. 하지만 기본적으로 주파수 영역에서 오디오 신호를 처리하고 FFT와 같은 것을 다루는 것이 편안해야합니다. 일단 가지고 있다면, 리버브 필터를 구현하는 것은 간단 할 것입니다.

+0

iPhone 용 샘플이 있습니까? – jfalexvijay

+0

http://stackoverflow.com/questions/3398753/using-the-apple-fft-and-accelerate-framework – tylernol

0

이것은 이전에 해본 답변이지만 여기서는 관련이 있다고 생각합니다. 나는 다른 사람들과 동의 할 것이고 당신이 제대로하고 싶다면 코어 오디오에 좀 더 익숙해 져야한다고 말할 것입니다.

매우 좋습니다. core-audio book. 당신이이 일을 올바르게하기 위해 필요한 것을 가르치고 많은 좌절감을 줄 것입니다.

오디오 효과에 대한 장이 아직 게시되지 않았지만 나머지 책과 비슷하면 기다릴 가치가 있습니다.

편집

당신은 가장 가능성 (오디오 장치의 한 형태이다) 오디오 효과와 함께이 작업을 수행해야합니다

.

3

iOS 5.0은 기본 OpenAL 지원을 제공하므로 훨씬 쉽게 사용할 수 있습니다. 알고리즘을 직접 코딩 할 필요가 없습니다.

  • 작은 방
  • 중간 룸
  • 대형 룸 (구성)
  • 중간 홀 (3 개 구성)
  • 대형 홀 (2 개 구성 : 그것은 또한 리버브 다양한 공간에 대한 지원을 가져)
  • 플레이트
  • 중간 회의소
  • 대형 회의소
  • 성당

난 당신이 이미 리버브 (Reverb) 이펙트에 대한 큰 지원을 가지고이며 대상 래퍼 시도하는 것이 좋습니다 : https://github.com/kstenerud/ObjectAL-for-iPhone

잡아이 저장소,로드 "ObjectAL.xcodeproj"과 실행에서 소스를 iOS 5.0 디바이스의 ObjectALDemo 타겟 (시뮬레이터에서 작동해야 함). 이렇게하면 좋은 출발점과 리버브 이펙트의 느낌을 느낄 수 있습니다.

여전히 타사 라이브러리를 사용하지 않는 경우 ObjectAL에서 관련 부분을 가져올 수 있습니다. 다음 소스 파일 (및 해당 헤더)에 리버브 관련 코드를 찾습니다 :

행운을 당신의 프로젝트!

4

ios5를 타겟팅하는 경우 효과 오디오 유닛의 오디오 유닛 하위 유형 kAudioUnitSubType_Reverb2 만 가능합니다. 그냥 remoteio 콜백에서 자신의 리버브 코드를 작성할 수 실패

AudioComponentDescription auEffectUnitDescription; 
    auEffectUnitDescription.componentType = kAudioUnitType_Effect; 
    auEffectUnitDescription.componentSubType = kAudioUnitSubType_Reverb2; 
    auEffectUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple; 

AUGraphAddNode(
           processingGraph, 
           &auEffectUnitDescription, 
           &auEffectNode), 

reverb unit. 간단한 지연은 더 쉽고 비슷하게 들릴 것입니다.