rrayy commited on
Commit
2c8bb16
·
1 Parent(s): 5054620

Changes to be committed: 데이터셋 추가 및 수정

Browse files

modified: data/0.mid
modified: data/3.mid
new file: data/31.mid
new file: data/32.mid
new file: data/33.mid
modified: data/5.mid
modified: data/6.mid
modified: preprocessing.ipynb

Files changed (8) hide show
  1. data/0.mid +0 -0
  2. data/3.mid +0 -0
  3. data/31.mid +0 -0
  4. data/32.mid +0 -0
  5. data/33.mid +0 -0
  6. data/5.mid +0 -0
  7. data/6.mid +0 -0
  8. preprocessing.ipynb +61 -17
data/0.mid CHANGED
Binary files a/data/0.mid and b/data/0.mid differ
 
data/3.mid CHANGED
Binary files a/data/3.mid and b/data/3.mid differ
 
data/31.mid ADDED
Binary file (640 Bytes). View file
 
data/32.mid ADDED
Binary file (888 Bytes). View file
 
data/33.mid ADDED
Binary file (912 Bytes). View file
 
data/5.mid CHANGED
Binary files a/data/5.mid and b/data/5.mid differ
 
data/6.mid CHANGED
Binary files a/data/6.mid and b/data/6.mid differ
 
preprocessing.ipynb CHANGED
@@ -5,21 +5,63 @@
5
  "id": "7a9aa1cb",
6
  "metadata": {},
7
  "source": [
8
- "## 미디 파일에 맞는 스타일 벡터 생성을 위한 곳\n",
9
- "\n",
10
- "### 스타일 벡터의 각 차원이 가지는 의미\n",
11
- "- [Future Bounce 스러움(Bass House, J-POP 혼용 미디를 위해), 밝음어두움, 칠어그레시브]\n",
12
- "\n",
13
- "### 벡터값 기준\n",
14
- "- 내 마음, Brooks 스타일 기준(Brooks 곡은 무조건 1,0.5,0.5), Future Bounce 스러움이 뭔데 임마(Brooks와 얼마나 비슷한가)\n"
15
  ]
16
  },
17
  {
18
  "cell_type": "code",
19
- "execution_count": null,
20
  "id": "19ba84e1",
21
  "metadata": {},
22
- "outputs": [],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  "source": [
24
  "from HarmonyMIDIToken import HarmonyMIDIToken as Tokenizer\n",
25
  "from utillity import midiplayer\n",
@@ -30,15 +72,17 @@
30
  "for filename in os.listdir(\"data\"):\n",
31
  " if filename.endswith(\".mid\"):\n",
32
  " MIDI = Tokenizer()\n",
 
33
  " MIDI.set_midi(os.path.join(\"data\", filename))\n",
34
  " \n",
35
  " midiplayer.play_score(MIDI._midi) # type: ignore\n",
36
- " Future_Bounce_like = input(\"Future_Bounce_like\")\n",
37
- " Dark_Bright = input(\"Dark_Bright\")\n",
38
- " Chill_Agressive = input(\"Chill_Agressive\")\n",
39
  "\n",
40
  " tokenized_data.append({\n",
41
- " \"vector\":[Future_Bounce_like, Dark_Bright, Chill_Agressive],\n",
 
 
 
 
42
  " \"token\":MIDI.token_id\n",
43
  " })\n",
44
  " "
@@ -46,7 +90,7 @@
46
  },
47
  {
48
  "cell_type": "code",
49
- "execution_count": 5,
50
  "id": "f79a6edf",
51
  "metadata": {},
52
  "outputs": [
@@ -64,7 +108,7 @@
64
  },
65
  {
66
  "cell_type": "code",
67
- "execution_count": 8,
68
  "id": "21a9ba89",
69
  "metadata": {},
70
  "outputs": [],
@@ -77,7 +121,7 @@
77
  },
78
  {
79
  "cell_type": "code",
80
- "execution_count": 4,
81
  "id": "dea532d4",
82
  "metadata": {},
83
  "outputs": [],
@@ -92,7 +136,7 @@
92
  },
93
  {
94
  "cell_type": "code",
95
- "execution_count": 8,
96
  "id": "34c244ab",
97
  "metadata": {},
98
  "outputs": [],
 
5
  "id": "7a9aa1cb",
6
  "metadata": {},
7
  "source": [
8
+ "## 미디 파일에 맞는 스타일 벡터 생성을 위한 "
 
 
 
 
 
 
9
  ]
10
  },
11
  {
12
  "cell_type": "code",
13
+ "execution_count": 2,
14
  "id": "19ba84e1",
15
  "metadata": {},
16
+ "outputs": [
17
+ {
18
+ "name": "stdout",
19
+ "output_type": "stream",
20
+ "text": [
21
+ "file name: 0.mid\n"
22
+ ]
23
+ },
24
+ {
25
+ "data": {
26
+ "text/html": [
27
+ "\n",
28
+ " <div id=\"midiPlayerDiv3735\"></div>\n",
29
+ " <link rel=\"stylesheet\" href=\"https://cuthbertLab.github.io/music21j/css/m21.css\">\n",
30
+ " \n",
31
+ " <script>\n",
32
+ " require.config({\n",
33
+ " paths: {\n",
34
+ " 'music21': 'https://cuthbertLab.github.io/music21j/releases/music21.debug',\n",
35
+ " }\n",
36
+ " });\n",
37
+ " require(['music21'], function(music21) {\n",
38
+ " mp = new music21.miditools.MidiPlayer();\n",
39
+ " mp.addPlayer(\"#midiPlayerDiv3735\");\n",
40
+ " mp.base64Load(\"data:audio/midi;base64,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\");\n",
41
+ " });\n",
42
+ " </script>"
43
+ ],
44
+ "text/plain": [
45
+ "<IPython.core.display.HTML object>"
46
+ ]
47
+ },
48
+ "metadata": {},
49
+ "output_type": "display_data"
50
+ },
51
+ {
52
+ "ename": "KeyError",
53
+ "evalue": "'add4'",
54
+ "output_type": "error",
55
+ "traceback": [
56
+ "\u001b[31m---------------------------------------------------------------------------\u001b[39m",
57
+ "\u001b[31mKeyError\u001b[39m Traceback (most recent call last)",
58
+ "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 21\u001b[39m\n\u001b[32m 11\u001b[39m MIDI.set_midi(os.path.join(\u001b[33m\"\u001b[39m\u001b[33mdata\u001b[39m\u001b[33m\"\u001b[39m, filename))\n\u001b[32m 13\u001b[39m midiplayer.play_score(MIDI._midi) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[32m 15\u001b[39m tokenized_data.append({\n\u001b[32m 16\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mvector\u001b[39m\u001b[33m\"\u001b[39m:{ \u001b[38;5;66;03m# Max is 100\u001b[39;00m\n\u001b[32m 17\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mBPM\u001b[39m\u001b[33m\"\u001b[39m:\u001b[32m128\u001b[39m,\n\u001b[32m 18\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mAggressive\u001b[39m\u001b[33m\"\u001b[39m:\u001b[32m13\u001b[39m,\n\u001b[32m 19\u001b[39m \n\u001b[32m 20\u001b[39m },\n\u001b[32m---> \u001b[39m\u001b[32m21\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mtoken\u001b[39m\u001b[33m\"\u001b[39m:\u001b[43mMIDI\u001b[49m\u001b[43m.\u001b[49m\u001b[43mtoken_id\u001b[49m\n\u001b[32m 22\u001b[39m })\n",
59
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\rrayy\\anaconda3\\envs\\diva\\Lib\\site-packages\\HarmonyMIDIToken\\tokenizer.py:169\u001b[39m, in \u001b[36mHarmonyMIDIToken.token_id\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 167\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"HarmonyMIDIToken에 대한 토큰 ID를 반환한다.\"\"\"\u001b[39;00m\n\u001b[32m 168\u001b[39m melody_tokens = \u001b[38;5;28mself\u001b[39m._tokenize(\u001b[38;5;28mself\u001b[39m.melody)\n\u001b[32m--> \u001b[39m\u001b[32m169\u001b[39m chords_tokens = \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_tokenize\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43mchords\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 170\u001b[39m bass_tokens = \u001b[38;5;28mself\u001b[39m._tokenize(\u001b[38;5;28mself\u001b[39m.bass)\n\u001b[32m 172\u001b[39m token = [\u001b[38;5;28mself\u001b[39m.bpm, \u001b[32m100\u001b[39m] + melody_tokens +[\u001b[32m200\u001b[39m]+ chords_tokens +[\u001b[32m300\u001b[39m]+ bass_tokens\n",
60
+ "\u001b[36mFile \u001b[39m\u001b[32mc:\\Users\\rrayy\\anaconda3\\envs\\diva\\Lib\\site-packages\\HarmonyMIDIToken\\tokenizer.py:113\u001b[39m, in \u001b[36mHarmonyMIDIToken._tokenize\u001b[39m\u001b[34m(self, data)\u001b[39m\n\u001b[32m 110\u001b[39m chord = pychord_chord(value)\n\u001b[32m 112\u001b[39m tokens.append(\u001b[38;5;28mself\u001b[39m._note_name_to_intpitch(chord._root+\u001b[33m\"\u001b[39m\u001b[33m4\u001b[39m\u001b[33m\"\u001b[39m))\n\u001b[32m--> \u001b[39m\u001b[32m113\u001b[39m tokens.append(\u001b[43mquality_map\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mchord\u001b[49m\u001b[43m.\u001b[49m\u001b[43m_quality\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m)\n\u001b[32m 115\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m j \u001b[38;5;129;01min\u001b[39;00m chord._appended:\n\u001b[32m 116\u001b[39m tokens.append(\u001b[38;5;28mself\u001b[39m._note_name_to_intpitch(j+\u001b[33m\"\u001b[39m\u001b[33m4\u001b[39m\u001b[33m\"\u001b[39m))\n",
61
+ "\u001b[31mKeyError\u001b[39m: 'add4'"
62
+ ]
63
+ }
64
+ ],
65
  "source": [
66
  "from HarmonyMIDIToken import HarmonyMIDIToken as Tokenizer\n",
67
  "from utillity import midiplayer\n",
 
72
  "for filename in os.listdir(\"data\"):\n",
73
  " if filename.endswith(\".mid\"):\n",
74
  " MIDI = Tokenizer()\n",
75
+ " print(f\"file name: {filename}\")\n",
76
  " MIDI.set_midi(os.path.join(\"data\", filename))\n",
77
  " \n",
78
  " midiplayer.play_score(MIDI._midi) # type: ignore\n",
 
 
 
79
  "\n",
80
  " tokenized_data.append({\n",
81
+ " \"vector\":{ # Max is 100\n",
82
+ " \"BPM\":128,\n",
83
+ " \"Aggressive\":13,\n",
84
+ " \n",
85
+ " },\n",
86
  " \"token\":MIDI.token_id\n",
87
  " })\n",
88
  " "
 
90
  },
91
  {
92
  "cell_type": "code",
93
+ "execution_count": null,
94
  "id": "f79a6edf",
95
  "metadata": {},
96
  "outputs": [
 
108
  },
109
  {
110
  "cell_type": "code",
111
+ "execution_count": null,
112
  "id": "21a9ba89",
113
  "metadata": {},
114
  "outputs": [],
 
121
  },
122
  {
123
  "cell_type": "code",
124
+ "execution_count": null,
125
  "id": "dea532d4",
126
  "metadata": {},
127
  "outputs": [],
 
136
  },
137
  {
138
  "cell_type": "code",
139
+ "execution_count": null,
140
  "id": "34c244ab",
141
  "metadata": {},
142
  "outputs": [],