본문 바로가기

ANDROID

[안드로이드] 무한 효과음 재생을 위한 여정 (GoldWave를 적극 활용하자)

단순한 효과음 재생은 아주 손쉽게 구현할 수 있으나, 루프가 걸린 효과음이라면 말이 달랐다.


우선 효과음 자체를 단순 반복재생하는 것 만으로는 이어지는 사운드를 만들어 낸다는게 불가능했다.


아마 효과음 음원의 첫 시작부분과 끝 부분의 싱크가 맞지 않기 때문일거란 추측을 했다.


우선 구한 효과음을 가지고 무료 배포판 GoldWave를 통해 편집을 해보기로 했다.



위 캡처는 가져온 무료 경적 사운드 중 일부를 단순히 자른 음원의 파형인데, 눈여겨 볼것은


사람의 귀에는 단순히 한번의 음으로 들리는 음에도 처음부터 끝까지 미묘한 파형이 존재한다는 것이다. 


한 음원을 늘이거나 줄이고 싶을 때, 붙이거나 잘라내고 난 뒤 파형의 높낮이가 일치하지 않는 부분이 있다면


연속재생시 뚝뚝 끊기거나 부자연스러운 (마치 렉걸린 컴퓨터에서 나는 사운드처럼) 소리를 들을 수 있다.



다음은 몇번의 시행착오를 통해 완벽하지 않지만 끊김이 거의없이 이어지는 음원을 만든 모습이다.


경적 사운의 파형중 특정 높이에서 시작해 특정 높이에서 끝나는 동일한 부분을 찾고자 하였고,


이를 파형이 끊기지 않도록 이어붙여 긴 사운드를 만든 것이다.


이를 통해서 약 1초간 재생되는 기존 음원을 15초 이상은 물론 어디까지나 늘릴 수 있게 되었다.


하지만 후에는 안드로이드에서 음원 재생을 하는데에서 긴 효과음을 사용하는게 부적합하다 생각해 프로젝트에는 


사용하지 않았다.



다음은 반대로 매우 짧은 텀의 경적 사운드를 추출해 내는 모습인데, 파형을 자세히 확대해보면 위와 같은 모습을 볼 수 있고


시작과 끝이 극명하기 때문에 편집하는데는 보다 유용하기도 했다. 이 작업으로 약 0.5초 가량의 짧은 음원 파일을 추출할 수 있었다.


이제 이렇게 얻은 사운드를 안드로이드 프로젝트에 적용하고 SoundPool의 무한루프와 autoResume(), autoPause() 와 플래그 변수를 적절히 사용하면


원하는 구현물을 얻을 수 있을 것이다 :)