2009-08-28 3 views
6

노래를 분석 할 음악 응용 프로그램을 프로그래밍하는 방법을 배우고 싶습니다.자기 학습 음악 제작자 프로그래밍

어떻게하면 시작할 수 있으며 사운드 웨이브 분석을위한 라이브러리가 있습니까?

저는 C, C++, Java, Python, 일부 어셈블리 및 Perl을 알고 있습니다.

관련 질문 : 당신은 MIDI 형식을보고 시작하실 수 있습니다Algorithm for music imitation

답변

9

컴퓨터로 음악을 작곡하고 분석하는 것은 큰 분야입니다. 이러한 유형의 작업에는 두 가지 기본 영역이 있는데, 다소 중복됩니다.

많은 수의 많은 libraries, tools과 전문 programming languages이 존재하여 이러한 문제의 여러 부분을 도울 수 있습니다. 음악 관련 목록은 programs and libraries for Python입니다. 사용할 수있는 많은 기술이 있습니다. 너는 너를 위해 일의 정면을 할 무언가를 발견 할 수 있어야한다. 가능하다면 다른 답변에서 제안한 것처럼 매우 낮은 수준의 주파수 분석 도구 인 ''을 통해 '음악 파서'를 다시 구현하는 것은 상당히 어려울 것이며 거의 확실하게 불필요 할 것입니다.

더 많은 조언과 구체적인 질문이 있으시면 International Society for Music Information Retrieval에 매우 도움이 될만한 메일 링리스트가 있습니다.

+0

고마워! 질문이 하나 더 있습니다. 음악을 전사하는 프로그램을 작성할 수 있습니까? – Mylo

+0

꽤 어렵습니다. 나는 Yann LeCun과 그의 회사 인 MuseAmi가 http://www.nytimes.com/2010/08/21/arts/music/21taub.html에서 작업 중임을 알고 있습니다. – Frank

0

, 그것은 압축 포맷에 비해 합리적인 간단합니다, 당신은 거기에 몇 가지 좋은 일을 생성 할 수 있습니다.

정말로 원하는 일에 달려 있습니다.

+0

팝송을 분석하고 인기있는 노래 사이에 공통점이 있는지 확인하고 싶습니다. 이것은 아마 끝났지 만, 그것은 나를 위해 더 많은 프로그래밍 연습입니다. – Mylo

+0

그런 다음 그것을 분해해야합니다. MP3를 가져 와서 기본 형식으로 되돌리고 원하는대로 분석하십시오. 원하는 경우 라이브러리가이를 수행 할 수 있도록 sourceforge를 검색 할 수 있습니다. –

+2

예 - 3 코드;) E, Am 및 Dm. 이것은 팝송의 90 %에 필요한 것입니다. C와 G를 추가하면 방금 Hahaha를 더 보냈습니다. – DmitryK

3

음파를 분석하려면 일종의 푸리에 변환 (fft)이 필요합니다. 따라서 노래를 주파수로 분해하고 시간에 따라 어떻게 변할 수 있습니다. numpy에서 fft를 지원합니다. 사용하지 않았으므로 아무런 도움이되지 않습니다. 그러나 시작하기에 좋은 곳이 될 것입니다.

그런 다음 주파수와 패턴에 대한 일종의 통계 분석을해야합니다. 그런 다음 더 이상 내가 무슨 말을하고 있는지 실마리가 없습니다.

멋지다.

6

Lennart가 언급 한 FFT 물건을 지나면 노트 간의 간격과 집계 패턴을 분석하기 위해 마르코프 체인을 살펴볼 수 있습니다.

이것은 일종의 발판이지만 마르코프 체인은 과거에 새로운 멜로디를 생성하는 데 사용할 수있는 다양한 노래의 멜로디 통계 모델을 만들기 위해 사용되었습니다. 마르코프 사슬은 서면 영어 문장으로도 똑같이 할 수 있습니다. 어떻게 보이는지에 대한 예를 들면, 마가로 체인이 통계적으로 입력과 같이 보이는 맹 글링 된 출력을 생산할 수있는 메가 힐 채터 봇과 함께 놀 수 있습니다 (메가힐의 경우 영어 문장처럼 보임)

상위 100 위를 차지했으며 다음 큰 히트를 뿜어내는 마코프 체인 발전기를 가지고 있습니다.

한편, 노래를 대중적으로 만드는 것이 음악 자체의 품질이 아닌 가능성을 고려할 수도 있습니다. 아니면 마케팅과 결합 된 음악 문제의 품질 일 수도 있습니다.

+0

그래, 너는 결코 이렇게 타격을 가하지 않을 것이다. 그 이유는 후크가 왜 다른지 이해할 필요가 있고, 노래의 통계 분석이 도움이되지 않을 수 있기 때문입니다. 하지만 여전히 재미있는 프로젝트입니다. –