사운드파일 편집/추출
글쓴이: pcw919 / 작성시간: 화, 2011/11/29 - 11:15오전
현재 사운드 베이스 게임을 만들고 있습니다...
기타 히어로나 DJMax 와 같은 형식의 게임인데요, 이게임에서 저희는 유저인풋(유저가 사운드 파일을 추가하여, 그 사운드파일로 게임을 한다)을 지원하고자 합니다.
그러다보니, 유저인풋의 사운드파일을 편집하거나 추출하는 기능이 필요하게 되었습니다.
추출/편집의 의미가 무엇이냐하면, 그 음악파일의 음들을 추출하여, 적절한 음( DJmax 에서 유저가 버튼을 누를떄마다 소리가나지요) 을 추출하고 그 추출된음이 존재하는 시간(음악 플레이시간중 위치)
을 얻어내야 하는 것입니다.
이 기능을 추가하기위해서 어떤것들이 필요할까요?
푸리에 변환과 같은 것들을 참고해보긴 했습니다만...뭔가 추상적이네요...참고자료가 있으시면 링크나 댓글 부탁드립니다 (__)
Forums:
보통은 사운드파일 편집 프로그램으로 일일이 자르지
보통은 사운드파일 편집 프로그램으로 일일이 자르지 않나요? 기능이 아닌것 같던데요.
피할 수 있을때 즐겨라! http://melotopia.net/b
흠....
최근의 게임을 보면 유저인풋을 지원하는 게임들이 많습니다...저도 시도해 보고싶었구요...
여기에서 푸리에 변환에 관한 게시글을 읽다가, 자신이 원하는 악기(음악내에서)의 음만을 추출하는것도 가능하다. 라는 글을 본적이있었습니다.
그래서 그것에 대한 자세한 정보를 얻고자 한것이구요.
원하는 음이나, 다양한 악기들의 연주로 이루어진 연주를 담은 파일을 각각의 악기연주들로 나누어 추출할수있다면,
충분히 가능하다고 생각합니다. 도움부탁드립니다 (__)
사람 귀와 뇌는 그걸 자동으로
사람 귀와 뇌는 그걸 자동으로 해줍니다만...
"악기의 음"이란 음색과 음높이인데, 음색은 주파수 도메인에서 나타나는 스펙트럼이고, 음높이는 주파수 도메인의 메인 주파수 대역이 되죠.
뒤섞인 음에서 특정 악기를 추출한다는 것은, 이런겁니다.
두 악기의 음색과 특정 시간동안의 음악이 다음과 같은 스펙트럼을 갖고 있다고 하면
악기A = (0.1, 0.8, 0.1)
악기B = (0.2, 0.3, 0.5)
음악 = (3, 2, 5) = a*A + b*B
여기서 a와 b를 찾아내는 것이죠.
물론 악기도 더 많고, 음악은 더 길겠죠.
게다가 악기의 스펙트럼을 모르는 상황에서 추출한다는건, 거의 음성인식과 동일한 노가다를 하셔야 할 겁니다.
http://blog.daum.net/_blog/BlogTypeView.do?blogid=0MSpA&articleno=7156135&categoryId=728918®dt=20090117000723#ajax_history_home
간단히 검색해봤는데, 위의 프로그램에서도 특정 악기만을 지원합니다. 그리고 노트를 잘라주지는 않죠.
https://encrypted.google.com/url?sa=t&rct=j&q=%EC%95%85%EA%B8%B0%20%EC%9D%8C%EC%95%85%20%EC%B6%94%EC%B6%9C&source=web&cd=9&sqi=2&ved=0CIoBEBYwCA&url=http%3A%2F%2Fhanulso.knu.kr%2Fhboard%2Fdownload.php%3Ftable_name%3Dseminar%26no%3D83%26filename%3DMelody%2520Extraction_25_%25B0%25FB%25C7%25F6%25BF%25B1.pptx&ei=NErUTrqnKoOViQevvpiQDw&usg=AFQjCNEFVD52txssCPaIxTs8vKnPLAF-zA&cad=rja
이런게 있긴 합니다. 피아노에 관한 내용이죠. 보다시피, 음색을 알아야 뭘 할 수 있다고 보면 됩니다.
그나저나, 이미 구현된 게임들은 어떻게 구현했는지 궁금하네요.
피할 수 있을때 즐겨라! http://melotopia.net/b
정확히 아는건 아니지만이미 구현된 게임들은 해당하는
정확히 아는건 아니지만
이미 구현된 게임들은 해당하는 음악파일의 소스를 가지고 (저작권 등의 문제도 있으니 어차피 원곡자와 컨택은 필요하겠죠) 필요한 노트들을 만들어낼겁니다.
혹은 사운드 파일들을 새로 만들어낼 수도 있구요.
이 질문은 코딩에 비유하면 바이너리 파일만을 가지고 역공학을 하는 방법을 묻는것 같네요...
렌더링 후의 일반 음원으로 멜로디 추출하는 것은
렌더링 후의 일반 음원으로 멜로디 추출하는 것은 인공지능으로 하기 때문에 어렵고 부정확합니다.
악기별로 분리하고 거기서 멜로디도 다시 추출해야 되죠.
현재 보컬만 추출하는 기능이 있지만 기능에 한계가 있습니다.
게임이라면 멜로디 인식이 정확해야하기 때문에, 사용자가 만든 걸 쓰시려면 미디로 입력받는 수밖에 없습니다.
기존의 게임은 일일히 손으로 박자와 계명을 따로 쓴 겁니다.
토끼군님인가가 만든 자유오픈소스 음악게임이 소스포지에서 순위권인 걸로 알고 있습니다.
소스를 참고하시면 되겠지요.
차세대 엠펙오디오에서는 악기별로 분류해서 저장하는 기능이 있다지만 여기서도 멜로디 인식 기능이 없을 겁니다.
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
댓글 달기