asigalov61
commited on
Commit
•
0d9c7cf
1
Parent(s):
c0fba53
Update README.md
Browse files
README.md
CHANGED
@@ -1,3 +1,63 @@
|
|
1 |
---
|
2 |
license: apache-2.0
|
3 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
license: apache-2.0
|
3 |
---
|
4 |
+
# Quad Music Transformer
|
5 |
+
## SOTA quality fast music transformer with symmetrical quad MIDI notes encoding
|
6 |
+
|
7 |
+
![Quad-Music-Transformer-Artwork (7)](https://github.com/asigalov61/Quad-Music-Transformer/assets/56325539/9d69c44f-1b35-44b0-b78d-84e53ec30e16)
|
8 |
+
|
9 |
+
***
|
10 |
+
|
11 |
+
## Original Version
|
12 |
+
|
13 |
+
[![Open In Colab][colab-badge]][colab-notebook1]
|
14 |
+
|
15 |
+
[colab-notebook1]: <https://colab.research.google.com/github/asigalov61/Quad-Music-Transformer/blob/main/Quad_Music_Transformer.ipynb>
|
16 |
+
[colab-badge]: <https://colab.research.google.com/assets/colab-badge.svg>
|
17 |
+
|
18 |
+
### Features demonstration
|
19 |
+
|
20 |
+
***
|
21 |
+
|
22 |
+
## Composer Version
|
23 |
+
|
24 |
+
[![Open In Colab][colab-badge]][colab-notebook2]
|
25 |
+
|
26 |
+
[colab-notebook2]: <https://colab.research.google.com/github/asigalov61/Quad-Music-Transformer/blob/main/Quad_Music_Transformer_Composer.ipynb>
|
27 |
+
[colab-badge]: <https://colab.research.google.com/assets/colab-badge.svg>
|
28 |
+
|
29 |
+
### MuseNet-style workflow for endless supervised continuation generation
|
30 |
+
|
31 |
+
***
|
32 |
+
|
33 |
+
## Bulk Generator Version
|
34 |
+
|
35 |
+
[![Open In Colab][colab-badge]][colab-notebook3]
|
36 |
+
|
37 |
+
[colab-notebook3]: <https://colab.research.google.com/github/asigalov61/Quad-Music-Transformer/blob/main/Quad_Music_Transformer_Bulk_Generator.ipynb>
|
38 |
+
[colab-badge]: <https://colab.research.google.com/assets/colab-badge.svg>
|
39 |
+
|
40 |
+
### Bulk improvs and continuations generation
|
41 |
+
|
42 |
+
***
|
43 |
+
|
44 |
+
## Technical notes
|
45 |
+
|
46 |
+
### SOTA quality was achieved by using the following specific techniques:
|
47 |
+
|
48 |
+
### 1) Quality source MIDI dataset (quality over quantity)
|
49 |
+
### 2) MIDI dataset augmentation by time (x2) and pitches (x3)
|
50 |
+
### 3) Timings normalization, quantization and compression (128)
|
51 |
+
### 4) Larger model embed size (2048) with less layers (16) and heads (16)
|
52 |
+
### 5) Training longer since the MIDI dataset is small (2 full epochs)
|
53 |
+
### 6) Using MIDI instruments families (16) instead of full MIDI instruments range (128)
|
54 |
+
### 7) Using symmetrical quad MIDI notes encoding
|
55 |
+
### 8) 8k sequence length so that the model can learn long-term music scructure
|
56 |
+
### 9) Using fp16 precision so that the model is sufficiently fast with low memory footprint
|
57 |
+
### 10) Hex (16) MIDI velocity range to avoid velocity overfitting while preserving velocity details
|
58 |
+
### 11) Chords sorting by instruments families (L-H) and by pitch (H-L)
|
59 |
+
|
60 |
+
***
|
61 |
+
|
62 |
+
### Project Los Angeles
|
63 |
+
### Tegridy Code 2024
|