인공신경망 자동작곡 ANNA ver1.0

Automatic music composition experiment

인공신경망 기법을 이용한 영상 배경음악 자동작곡 시스템

(2016 미래부 창의도전형 SW/R&D 지원사업 선정/수행)

참 아쉬움이 많이 남는 프로젝트.

많이 개선해서 결과가 좋으면 깃헙에도 공유하고 해야지 하고

덮어 놓은지 좀 오래되었다..

 

_시연 영상

 

_개요

미디데이터에서 멜로디를 추출한 후 해당 구간의 화성에 맞는 노트 성격을 부여했다.

그래서 부여된 스케일 내에서의 성격의 시퀀스를 데이터화 해서 Character-based LSTM RNN으로 학습.

코드 또한 별도로 추출해서 역시 LSTM으로 시퀀스 학습.

또한 Autoencoder 모듈을 따로 만들어서 각 멜로디/코드 데이터에 대한 generative 모델을 학습시켰다.

이 Autoencoder 모듈을 사용해서 원하는 스타일의 곡 정보를 인풋으로 넣으면 일정 길이의 Seed 시퀀스(코드/멜로디 따로)가 생성된다.

그 후 이 Seed 시퀀스를 RNN의 인풋으로 넣어서 새로운 곡을 생성하도록 했다.

그렇게 생성된 멜로디는 스케일 데이터로 이루어져 있기 때문에 어떤 코드 영역에 넣으면 거기에 맞는 음정으로 파싱되도록 하였다.

그렇게 요청된 스타일에 맞는 곡의 코드와 멜로디 생성 완료.

이것을 가지고 그 스타일에 해당하는 몇가지 편곡 기법을 더한 후 렌더링 모듈로 보내어서 Kontakt 기반 샘플들을 활용해서 최종 아웃풋을 생성.

 

_Visualization and getting intuition on how RNN learned about musical structures

Screen Shot 2017-04-21 at 12.50.30 AM

<특정 코드 패턴에 활성화되도록 학습된 뉴런들의 예시>

 

 

Screen Shot 2017-04-21 at 12.50.22 AM

<한 곡의 도입부분에서만 활성화되도록 학습된 뉴런의 예시>

 

 

Screen Shot 2017-04-21 at 12.49.59 AM

<코드의 흐름 상 토닉으로 해소되는 시점에서만 비활성화되는 뉴런의 예시>

 

Automatic music composition experiment

1. scale-based melody and chord generation using charRNN
2. combined with some additional rule-based instrument arrangements
3. with audio output rendering using Kontakt samples.

keras(tensorflow) for neural network / ROR for web / C++ for audio rendering

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s