rrayy
commited on
Commit
·
2c8bb16
1
Parent(s):
5054620
Changes to be committed: 데이터셋 추가 및 수정
Browse filesmodified: 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
- data/0.mid +0 -0
- data/3.mid +0 -0
- data/31.mid +0 -0
- data/32.mid +0 -0
- data/33.mid +0 -0
- data/5.mid +0 -0
- data/6.mid +0 -0
- 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 |
-
"## 미디 파일에 맞는 스타일 벡터 생성을 위한
|
| 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":
|
| 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\":
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
" \"token\":MIDI.token_id\n",
|
| 43 |
" })\n",
|
| 44 |
" "
|
|
@@ -46,7 +90,7 @@
|
|
| 46 |
},
|
| 47 |
{
|
| 48 |
"cell_type": "code",
|
| 49 |
-
"execution_count":
|
| 50 |
"id": "f79a6edf",
|
| 51 |
"metadata": {},
|
| 52 |
"outputs": [
|
|
@@ -64,7 +108,7 @@
|
|
| 64 |
},
|
| 65 |
{
|
| 66 |
"cell_type": "code",
|
| 67 |
-
"execution_count":
|
| 68 |
"id": "21a9ba89",
|
| 69 |
"metadata": {},
|
| 70 |
"outputs": [],
|
|
@@ -77,7 +121,7 @@
|
|
| 77 |
},
|
| 78 |
{
|
| 79 |
"cell_type": "code",
|
| 80 |
-
"execution_count":
|
| 81 |
"id": "dea532d4",
|
| 82 |
"metadata": {},
|
| 83 |
"outputs": [],
|
|
@@ -92,7 +136,7 @@
|
|
| 92 |
},
|
| 93 |
{
|
| 94 |
"cell_type": "code",
|
| 95 |
-
"execution_count":
|
| 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": [],
|