Generating Music with Expressive Timing and Dynamics
•
'Timing' and 'Dynamics' ⇒ Note on/off and velocity
•
모델 아키텍쳐보다는 음악적인 데이터를 학습하는데 중점
Overview
•
컨타이즈된 노트 vs 사람이 만든 노트
•
컨타이즈 → 같은 박자, 같은 세기라서 어색하게 느껴진다. (예제는 좀 너무함)
•
여기서 만드는 건 Sound가 아닌 MIDI 데이터, Audio를 바로 만드는 것이 아님
Dataset
•
Yamaha e-Piano Competition (~1400 performances by skilled pianists)
◦
악보보다는 사람의 연주에 초점을 맞춘다.
◦
Velocities 역시 사람의 연주에 초점을 맞춘다.
◦
피아노로만 연주된다.
◦
클래식 피아노 곡으로 이루어져있다.
Representation
•
MIDI events의 case를 나누고 각각을 one-hot vector로 만들어 사용
◦
128 note on events
◦
128 note off events
◦
100 time-shift events
◦
32 velocity events
•
총 388개의 events를 이용해 예측한다.
•
보통 30초 클립은 1200개 정도의 one-hot vectors로 이뤄진다.
Preprocessing
•
Data augmentation 진행
◦
Time-stretching - 현재 속도의 5% 정도 빠르거나 느리게
◦
Transposition - major3 음으로 조성 변경
•
각 퍼포먼스를 30초 단위로 나눠서 학습 진행
•
5분 정도의 퍼포먼스를 생성할 수 있었다.