2011-08-22 3 views
0

나는 동적 오디오 라이브러리 standingwave 3을 가지고 놀았습니다. 거의 제일 먼저 한 사항은 하나가 developer's guide에서 코드 샘플, 즉이 코드 밖으로 시도하는 경우 :StandingWave3에서 겹쳐지는 소리와 클리핑

// Create a chord of three simultaneous sine tones: A3, E4, A4. 
var sequence:ListPerformance = new ListPerformance(); 
sequence.addSourceAt(0, new SineSource(new AudioDescriptor(), 0.1, 440)); 
sequence.addSourceAt(0, new SineSource(new AudioDescriptor(), 0.1, 660)); 
sequence.addSourceAt(0, new SineSource(new AudioDescriptor(), 0.2, 880)); 
// Play it back. 
var source:IAudioSource = new AudioPerformer(sequence); 
player.play(source); 

다음 하나는 정말 불쾌한 소리를 얻고 "오디오 클리핑"를 읽어 메시지를 추적합니다. 개발자는 github에있는 issue reports 중 하나를 사용하여 샘플을 함께 사용하여이를 피하기 위해 이득을 줄여야하고 얼마나 많은 양이 필요한지 동적으로 알 수있는 쉬운 방법이 없다고 설명합니다.

제 질문은 stangingwave2가 자동으로이 문제를 처리 한 것 같습니다. 예를 들어 위에 인용 된 코드는 SW2에서 클립되지 않았습니다. 마찬가지로 SW2 example demo - 서스테인 및 홀드 (S/H 슬라이더)를 증가시키고 시퀀스 버튼 중 하나를 누르면 source에 게인 변경의 뚜렷한 징후가 보이지 않거나 여러 개의 톤이 겹치지 않습니다. 죄의 음색의 볼륨, 그들은 단지 함께 섞여.

여기에 무슨 일이 벌어지고있는 것입니까? SW2는 자동으로이를 처리 할 방법이 있습니까, 아니면 일반적으로 클리핑을 발생시키지 않고 임의의 수의 사운드를 동적으로 오버레이하는 강력한 방법이 있습니까? 감사!

답변

1

아무런 활동이 없기 때문에 SW2가 사인 소스를 실제 규모보다 훨씬 적게 반환하는 것으로 밝혀졌지만 충분한 소스를 결합하면 클리핑이 발생하는 것으로 나타났습니다. SW3는 소스를 전체 스케일로 반환하므로 소스가 줄어들면 클리핑이 분명 해집니다.

관련 문제