- 음악과 나 -/『 짬 통 』

뎁퍄 질답들. 음악관련 주제들.

noon2dy 2006. 5. 22. 12:11

 

  2006-04-25 오전 9:40:34   /  번호: 572207  / 평점:  (-)

category: VC++ 일반  /  조회: 354 
 음악관련하여;; 어렵다 ㅜㅜ  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

 일단 예전에 제가 쓴 글에 올렸듯이...

 

오디오 데이터를 읽어와서 그게 로컬시스템에 있는지 확인하는 프로그램인데...

 

물론 파일명도 틀리고 태그내용도 틀리고 포맷이 틀리고 음질이 틀려도 찾아내줘야 되는거죠...

 

어떤 식으로 접근해서 어떻게 해결해 가야 될까요?

 

한마디로 내용기반의 오디오 검색이 되는거겠죠?

 

고수님들의 조언 부탁드립니다. 초짜라..ㅜㅜ

이 글에 평점 주기:  
  2006-04-25 오전 9:48:41   /  번호: 572212  / 평점:  (-)  
 Re: 주제가 너무 어려운 것 같습니다...  석재헌 / dreamcot  
석재헌님께 메시지 보내기  석재헌님을 내 주소록에 추가합니다.  석재헌님의 블로그 가기   

어렵습니다.

FFT해서 나온 데이타도 방대하고, 이 데이타를 근거로 음악들끼리의 비교를 하는건 더욱 더 어렵습니다.

예전에도 말씀드렸듯이, 음악 포맷에 따라서 FFT 값이 틀리고, PCM 포맷에 따라서도 값이 조금씩 틀려집니다.

 

FFT 값들의 오차를 분석해서, 동일한 음악이라고 판별할 수 있는 이론이 있는지는 모르겠습니다...

하지만, FFT값만을 단순 비교해서 동일한 음악을 찾는 작업은 어려울 것 같습니다.

 

그럴 바에는, 차라리 Tag 값이나, 노래 제목으로 비교하는게 어떨까 싶습니다.

이 방법도, 오류가 많기는 마찬가지지만, 그래도 최소한 제대로 입력이 된 값들에 대해서는 확실하고 쉽게 판별이 가능할 수 있기 때문에, 어설픈 FFT 분석보다는 오히려 더 나을 것 같습니다.

 

 

이 글에 평점 주기:  
  2006-04-25 오전 9:52:12   /  번호: 572213  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

 그렇다면....mp3파일 포맷 하나에 대한 검색은 어떻습니까?

 

음질의 수준이 같거나 다르거나 에도 차이가 있습니까?

 

그리고...

 

mp3 -> wav -> mp3 - A

mp3 -> ogg -> mp3 - B

 

파일포맷을 위와 같이 달리 중간 변환한 두 A,B에서 같은 결과를 얻어 낼수 있나요?

이 글에 평점 주기:  
  2006-04-25 오전 9:56:06   /  번호: 572216  / 평점:  (-)  
 Re: ...  석재헌 / dreamcot  
석재헌님께 메시지 보내기  석재헌님을 내 주소록에 추가합니다.  석재헌님의 블로그 가기   

mp3 -> wav -> mp3 - A

mp3 -> ogg -> mp3 - B

 

안타깝지만 동일한 결과를 얻을 수 없습니다.

패턴이 어느 정도 유사할 수는 있겠지만, 정확한 데이타 값이 모든 부분에 걸쳐서 동일할 수는 없습니다.

 

 

 

 

 

 

이 글에 평점 주기:  
  2006-04-25 오전 10:02:02   /  번호: 572219  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

 좋은 답변 달아주셔서 감사드립니다.

 

제가 워낙 초짜라서...^^;;

 

그런 기술을 완벽하게 구현하기가 힘들겠군요...

 

같은 MP3파일이라도 매칭 시키기가 힘드니...흠....

 

KTF 서치뮤직이란 서비스를 알고 있는데...그건 어떻게 했을까요..?

 

잡음이 없는 상태에선 거의 80%이상의 정확도를 보장하는 거 같던데...

이 글에 평점 주기:  
  2006-04-25 오전 10:13:26   /  번호: 572220  / 평점:  (-)  
 Re: ..  문혁중 / beyondps  
문혁중님께 메시지 보내기  문혁중님을 내 주소록에 추가합니다.  문혁중님의 블로그 가기   

로컬 시스템에 있는 음악파일 모두에 대한 m차원 특징공간을 구성하시고,

 

각 음악 파일을 맵핑해두신 후에(읽어올 파일 특징데이터까지) 클러스터링 해보시면

 

98% 이상의 신뢰할만한 결과가 나올 것 같은데요... 파일명이나 확장자 음질 등의 미디어 정보도

 

특징으로 반영하시면 더 좋을것 같고요...

(신뢰도는 효율적인 특징공간 구성이  큰 몫을 차지합니다. 때문에 정보를 가공하여, 분별력을 높일 수 있다면,

신뢰도를 향상 시키실 수도 있습니다.)

 

이 문제는 패턴인식에 대해 알아보시면 될 것 같네요.

 

이런식으로 음악의 장르도 자동 분류 해줄 수 있으니까요.

 

생체인식 처럼 말이죠.

 

기초 데이터를 구성하는데 걸리는 시간은 많이 걸리지만 비교 판별하는 시간은

 

거의 실시간에 할 수 있는 방법들, 그리고 신뢰도를 향상시키기 위한 방법들이 다양하니,

 

성능을 고려하신다면 패턴인식에 대한 학습을 제법 하셔야 하실 거라 생각합니다.

이 글에 평점 주기:  
  2006-04-25 오전 10:16:35   /  번호: 572222  / 평점:  (-)  
 Re: ...  석재헌 / dreamcot  
석재헌님께 메시지 보내기  석재헌님을 내 주소록에 추가합니다.  석재헌님의 블로그 가기   

이런 서비스가 있었군요... ㅡㅡ;

 

그런데, 모든 노래에 해당되는 것 같지는 않습니다.

서비스 제공회사가 infravalley라는 회사인데, 이 회사를 가보면 "방송음악찾기"라고 되어 있지, 모든 음악에 대해서 검색을 해준다는 말은 나와있지 않군요..

 

방송에서 나오는 노래, 혹은 나올 노래에 대한 정보는 알수있고, 제한적이기 때문에, 가능한 서비스인 것 같습니다.

 




 

 

 

 

 

 

 

이 글에 평점 주기:  
  2006-04-25 오전 10:23:59   /  번호: 572224  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

위에 문혁중님께서도 좋은 답변을 달아주셨는데...

 

제가 하기엔 상당히 벅찰거 같군요...흠;;

 

석재헌님 저도 얼마 전에 알았습니다.

 

어떤 사용자분이 사용리뷰를 올린걸 봤는데...잡음이 없는 상태에선 상당히 높은 정확도를 보여주더군요.

 

어떻게 구현했을까라는 의문이 들었다는..;;

이 글에 평점 주기:  
  2006-04-25 오전 10:31:38   /  번호: 572226  / 평점:  (-)  
 Re: ...  석재헌 / dreamcot  
석재헌님께 메시지 보내기  석재헌님을 내 주소록에 추가합니다.  석재헌님의 블로그 가기   

이거 한 번 참조해 보시기 바랍니다.

 

"신경망을 이용한 멜로디 패턴 인식"이라는 논문인데, 하시려는 일과 상당히 근사한 것 같습니다.

 

http://bi.snu.ac.kr/~scai/Publications/Theses/KimSH_BS02.pdf

이 글에 평점 주기:  
  2006-04-25 오전 10:33:40   /  번호: 572227  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

석재헌님 감사합니다. 잘 읽어보겠습니다.^^

이 글에 평점 주기:  
  2006-04-25 오전 11:37:47   /  번호: 572247  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

 혹시 아래 그림과 같은 데이터를 가지고

 

음악 파일 비교는 불가능 한 것인가요?

 

파일 포맷이 어떻든 음질이 어떻든 비슷한 모양을 나타내 주는거 같은데...;;

 


이 글에 평점 주기:  
  2006-04-25 오후 1:28:30   /  번호: 572286  / 평점:  (-)  
 Re: ..  문혁중 / beyondps  
문혁중님께 메시지 보내기  문혁중님을 내 주소록에 추가합니다.  문혁중님의 블로그 가기   

일단 데이터에 대한 불규칙한 일치 지점, 혹은 불규칙한 불일치가 나타나는

 

소위 '비슷한' 데이터를 찾는것은 위에 말씀드린 패턴인식 기술을 사용하는 것이 옳은 것이라

 

생각됩니다.

 

하지만 더 구현하기 쉬운 것을 원하신다면 이런 방법은 어떨까요?

 

문장중에 특정 텍스트를 찾듯이

 

abcdefghijklmnopqrstuvwxyz

 

위의 스트링이 첫번째 음악파일의 데이터라고 가정하고

 

위의 일부분의 데이터와 비슷한 파일이 있을때, (예 : deffghhk <-f와 h가 두번 들어가는 엄밀히 말해 위 스트링의 일부가 아님)

 

char타입 문자의 아스키 코드 값으로 오차 +-2 한도 내에서는 일치한다고 인정 해주고,

 

일치하는 스트링을 찾는거죠.

 

또한 오차범위 외의 값을 가지는 데이터가 30%를 넘으면 일치하지 않는다는 규칙을 추가하면

 

어느정도 근접한 부분을 찾아낼 수 있겠죠.

 

이런 방식을 확장해보면, 비교할 데이터의 일부분을 샘플로 추출해서 일치 지점의 후보지 지점의 조합이

 

샘플 추출 지점의 순서와 앞뒤가 바뀌지 않을 수 있는 (같은 순서) 로 배열될 수 있다면,

 

두 데이터는 비슷할 여지가 있다. 라고 말해도 큰 무리는 아니겠지요.

 

여기에서 제약조건들을 추가해 나가시면 좀더 정확성을 높일 수 있을테고요.

 

 

 

하지만, 로컬 컴퓨터의 음악 파일은 수백 수천개 정도 됩니다.

 

저런 작업이  일일이 행해지기에는 엄청난 시간이 소요되겠지요.

 

하지만 한번에 특징공간을 구성하면, 그 이후의 비교작업은 명령하면 1초내에 답변이 나올 정도로 빠르며

 

매번 특징공간을 재편성 하지 않는 방법도 있고(정확성은 저하), 비교적 적은 작업으로 재편성 할 수 있는

 

방법도 있기 때문에, 어렵더라도 패턴인식 기술을 이용하는것이 효율적이라고 생각합니다.

 

(다른 악기로 연주된 동일곡이나, 리믹스 된 곡까지 찾는것도 기대할 수 있습니다.)

 

 

그보다 쉽게 작성하고, 성능도 '봐줄만 한' 방법이 있다면 논문을 써도 좋을것 같다는 생각이 듭니다.

 

 

ps. 덕분에 흥미로웠습니다. ㅎㅅㅎ

 

좋은하루 되세요.

이 글에 평점 주기:  
  2006-04-25 오후 1:44:33   /  번호: 572297  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

 ㅎㅎㅎ 흥미로웠다고 하시니 저도 즐겁네요.ㅎ

 

노래들의 특정 시간대에서 (예를 들면 30초에서 35초 사이)

 

각 주파수별 파워 레벨 을 통해서 노래를 구분 짓는 것은 어떤지요?

 

대충 보니 포맷마다 레벨 값이 비슷하지는 않지만...

 

대략 높고 낮음의 순서는 비슷하던데...

 

전체적인 다이어그램의 모습도 같고요.

 

 

 

이 글에 평점 주기:  
  2006-04-25 오후 1:51:28   /  번호: 572298  / 평점:  (-)  
 Re: ..  문혁중 / beyondps  
문혁중님께 메시지 보내기  문혁중님을 내 주소록에 추가합니다.  문혁중님의 블로그 가기   

단지 같은 파일을 다른 포맷으로 인코딩 한것이라면 상관이 없겠지만

 

전주 전에 음이 없는 시간이 길게 들어간다거나

 

타임이 어긋나게 되버리면 같은 연주곡이라도 식별할 수 없겠지요.

 

이점까지 보완하시면 제가 위에 텍스트로 설명드렸던 방식과

 

비슷하리라 생각합니다.

 

 

주파수 파워레벨 하시니 떠올랐는데, 주파수 파워레벨의 고저 순위가 바뀌는 시점과

 

주파수 파워레벨의 고저 순위를 비교해서 후보지점을 선정한 후에, 지점의 순서가 원본과 동일하게 배치될 수 있거나,

 

80% 정도 일치한다면,

 

같은 음악이라고 판단해도 괜찮을듯 하네요...

이 글에 평점 주기:  
  2006-04-25 오후 1:57:54   /  번호: 572305  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

돌아다니면서 음악을 받다보면...

 

같은 노래라도 플레이타임은 모두 천차만별이니....

 

흠 큰일이군;

이 글에 평점 주기:  
  2006-04-25 오후 5:59:37   /  번호: 572407  / 평점:  (-)  
 Re: ...  박근영 / mash9  
박근영님께 메시지 보내기  박근영님을 내 주소록에 추가합니다.  박근영님의 블로그가 없습니다  
도움이 될지 모르겠지만..


어떠한 포멧이라도 읽어야한다는 문제를 안고 계시니
사운드 드라이버를 일단 만듭니다;;; 그 드라이버에서 출력되는 데이터를

아날라이져(?) 같이 위에 그림처럼 파장으로 플레이타임에 맞춰서 뽑아낸다음에 이미지롤 출력하고
이미지 비교를 하는방법이 정석 같습니다.... 다소 혼자 진행하기에는 무리일지도

이미지를 비교할때 퍼지이론을 적용하면 되겠네요.
이 글에 평점 주기:  
  2006-04-25 오후 7:08:52   /  번호: 572421  / 평점:  (-)  
 Re: ...  예종민 / azra8399  
예종민님께 메시지 보내기  예종민님을 내 주소록에 추가합니다.  예종민님의 블로그가 없습니다  

 조언을 해주신 모든 분들께 감사드립니다.^^

 

드디어!! 어떻게 해결해 가야할지를 알게 된것 같습니다.

 

모든 분께 감사드립니다~!

 

좋은 하루 되세요!

이 글에 평점 주기:  

 

2006-04-12 오후 9:11:24   /  번호: 568819  / 평점:  (-) category: Sound  /  조회: 254 
 음악파일(.wav .mp3, etc.)의 주파수 추출하는 방법 임상섭 / jeaneaus  
임상섭님께 메시지 보내기  임상섭님을 내 주소록에 추가합니다.  임상섭님의 블로그가 없습니다  
음악 파일을 불러와서 그 음악파일의 시간에따른 주파수를 알아 내는 프로그램을 만들려고 합니다.

주파수를 알아내려면 어떻게 해야하는지 도저히 감이 안잡히는데다..

wav 파일이나 mp3 파일의 구성도 어떻게 되있는지 도통 모르겠네요...

음악파일에서 주파수 추출하는 API 함수나 뭐 기타 다른 방법이 없을까요 ?

혹은 쿨에디트 같은 경우에 음악 파일을 불러오면 주파수가 처음에 뜨잖아요. 뭐.. 그런식으로.. 불러올 방법이 없나요?
.. 물론 아래껀 위에껄 가지고 만드는것 같네요;
이 글에 평점 주기:  
  2006-04-12 오후 9:24:47   /  번호: 568824  / 평점:  (-)  
 Re: ...  오승우 / codemage  
오승우님께 메시지 보내기  오승우님을 내 주소록에 추가합니다.  오승우님의 블로그가 없습니다  

waveform PCM 데이타를 FFT(패스트 퓨리에 트랜스폼) 돌리면 주파수성분으로 나옵니다.

 

이렇게 나온걸 스펙트럼으로 보여주죠

 

자료실에 제가 올린 데모를 참조 ㅋㅋ

 

FFT 소스가 오래된거라 성분은 별로예요

 

Intel Math Kernel Library쓰면 sse2로 최적화된 만족스런 결과를 얻을듯...

 

이 글에 평점 주기:  
  2006-04-13 오전 1:48:39   /  번호: 568874  / 평점:  (-)  
 Re: 모든 음악 파일에서...  석재헌 / dreamcot  
석재헌님께 메시지 보내기  석재헌님을 내 주소록에 추가합니다.  석재헌님의 블로그 가기   

위에 분이 잘 설명을 해드렸지만..

 

소리를 재생하기 위해서는, PCM데이타로 디코딩하는 작업이 필요합니다.

예를 들어 MP3 파일을 디코딩하면 PCM데이타가 나오는데, 이 데이타를 FFT 로 주파수를 분석하게 해야 합니다.

 

이 때 주의하실 점이 상업적인 용도로 스펙트럼 어널라이져를 만들 계획이라면, 디코더를 통해서 나온 PCM 데이타를 항상 고정적인 PCM 데이타로 변환하는 과정이 필요합니다. PCM 포맷을 일정하게 하면, 곡이 넘어갈 때 마다, PCM 데이타의 포맷의 변화에 따른 고민을 덜 해도 되는 장점도 있고, Winamp나 제트오디오 등에서 볼 수 있는 Cross fading 등의 기능을 구현할 때도 유용하게 쓰일 수 있습니다.

 

참고하시기 바랍니다.

이 글에 평점 주기:  
  2006-04-13 오전 3:10:04   /  번호: 568881  / 평점:  (-)  
 Re: 자료실에서 FFT로 검색하면 소스 몇 개가 나오는군요..  석재헌 / dreamcot  
석재헌님께 메시지 보내기  석재헌님을 내 주소록에 추가합니다.  석재헌님의 블로그 가기   

자료실에서 FFT로 검색하니 소스 몇 개가 나오고..

그 중에 스펙트럼 어널라이져 소스도 있습니다.

 

참고하시기 바랍니다.

이 글에 평점 주기:  

 

 

 

2005-11-15 오전 2:09:32   /  번호: 1435  / 평점:  (-) 조회: 224 
 첨부파일 있음[질문] 타이밍이 생명인 음악게임에 있어서 SDL의 사용 박병욱 / hd2dj07  
박병욱님께 메시지 보내기  박병욱님을 내 주소록에 추가합니다.  박병욱님의 블로그가 없습니다  
혹시 SDL을 사용해서 게임을 개발해 보신분 계신가요?
타이밍과 끊김이 없는 그래픽이 생명인 음악게임에 있어서
속도는 항상 신경이 쓰이는데요
SDL로 비트매니아 같은 음악게임을 만드는게 무리는 아닐지 모르겠습니다.
첨부파일은 SDL을 사용해서 제가 만들고 있는 음악게임의 개발버젼입니다만
그래픽이 자주 떨더군요.
음악 재생에 있어서도 타이밍이 맞지 않고 어색하게 재생되서 불안하기도 하구요.

첨부된 압축파일중 release.zip이 소스를 컴파일한 것이고
나머지 하나는 압축을 푸셔서 동일한 디렉토리에 있게 한다음
게임파일인 hd2dj.exe를 실행하면 대화창이 뜨는데
여기서 아까 압축을 풀었던 beautiful_wings_hq.zip파일에 보시면 확장자가 bms인 파일이 있습니다.
여러개의 bms가 있는데
아무거나 고르시고 실행하시면 됩니다.
곡의 로딩이 끝나고 연주가 시작되면 F12를 눌러서 연주를 감상하시면 됩니다.
이 글에 평점 주기:  

 

 

2005-09-26 오전 9:21:51   /  번호: 543288  / 평점:  (-) category: VC++ 일반  /  조회: 407 
 음악플레이어 개발중에 이퀄라이저와 그래프 기능 방재웅 / toyesterday  
방재웅님께 메시지 보내기  방재웅님을 내 주소록에 추가합니다.  방재웅님의 블로그 가기   

WMP SDK를 사용하여 음악플레이어를 개발중입니다.

 

이퀄라이저 구현과 비트그래프를 구현하고자 합니다.

 

WMPSDK에 보니 IWMPEffect, IWMPEffect2 인터페이스를 이용하 면 될것 같은데,,

IWMPEffect 인터페이스를 구하는 방법이 없는지요?

 

아니면, 알송이나, 멜론, 주크온 같은 경우에는

어떤 상용라이브러리를 사용하여 개발한 것인가요??

 

 

도움 부탁드립니다..

이 글에 평점 주기:  
  2005-09-26 오전 9:45:00   /  번호: 543290  / 평점:  (-)  
 Re: fmod 라이브러리 써보세요.  서동호 / s911310  
서동호님께 메시지 보내기  서동호님을 내 주소록에 추가합니다.  서동호님의 블로그가 없습니다  
이퀄라이저 쉽게(?) 구현할 수 있습니다.

 

 http://www.fmod.org/

이 글에 평점 주기:  
  2005-09-26 오후 1:30:48   /  번호: 543359  / 평점:  (-)  
 Re: ^^ 방재웅 / toyesterday  
방재웅님께 메시지 보내기  방재웅님을 내 주소록에 추가합니다.  방재웅님의 블로그 가기   

감사합니다 ^^

 

저도  http://www.fmod.org/ 라이브러리를 알고 있습니다만,

상용으로 개발을 할 계획이거든요.

 

 

 

이 글에 평점 주기: