asigalov61 commited on
Commit
0d9c7cf
1 Parent(s): c0fba53

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +60 -0
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