2020-04-06 19:23:25 +02:00
|
|
|
{
|
|
|
|
"cells": [
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2020-05-25 22:39:44 +02:00
|
|
|
"execution_count": 4,
|
2020-04-06 19:23:25 +02:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": [
|
|
|
|
"import music21\n",
|
2020-05-25 22:39:44 +02:00
|
|
|
"from music21.midi import MidiFile\n",
|
|
|
|
"\n",
|
|
|
|
"import numpy as np\n",
|
|
|
|
"import matplotlib.pyplot as plt\n",
|
2020-04-06 19:23:25 +02:00
|
|
|
"import mido"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
2020-05-25 22:39:44 +02:00
|
|
|
"cell_type": "markdown",
|
2020-04-06 19:23:25 +02:00
|
|
|
"metadata": {},
|
|
|
|
"source": [
|
2020-05-25 22:39:44 +02:00
|
|
|
"# midi messages"
|
2020-04-06 19:23:25 +02:00
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 20,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"output_type": "stream",
|
|
|
|
"name": "stdout",
|
|
|
|
"text": "<meta message set_tempo tempo=500000 time=0>\n<meta message time_signature numerator=4 denominator=4 clocks_per_click=24 notated_32nd_notes_per_beat=8 time=0>\n<meta message end_of_track time=1>\n<meta message track_name name='Guitar' time=0>\nprogram_change channel=0 program=30 time=0\nnote_on channel=0 note=48 velocity=100 time=0\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=60 velocity=100 time=0\nnote_on channel=0 note=48 velocity=0 time=220\nnote_on channel=0 note=48 velocity=100 time=0\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=55 velocity=100 time=0\nnote_on channel=0 note=60 velocity=0 time=0\nnote_on channel=0 note=60 velocity=100 time=0\nnote_on channel=0 note=48 velocity=0 time=220\nnote_on channel=0 note=48 velocity=100 time=0\nnote_on channel=0 note=55 velocity=0 time=0\nnote_on channel=0 note=55 velocity=100 time=0\nnote_on channel=0 note=60 velocity=0 time=0\nnote_on channel=0 note=60 velocity=100 time=0\nnote_on channel=0 note=48 velocity=0 time=440\nnote_on channel=0 note=55 velocity=0 time=0\nnote_on channel=0 note=60 velocity=0 time=0\nnote_on channel=0 note=48 velocity=0 time=110\nnote_on channel=0 note=48 velocity=100 time=0\nnote_on channel=0 note=45 velocity=100 time=770\nnote_on channel=0 note=50 velocity=100 time=0\nnote_on channel=0 note=57 velocity=100 time=0\nnote_on channel=0 note=45 velocity=0 time=220\nnote_on channel=0 note=46 velocity=100 time=0\nnote_on channel=0 note=50 velocity=0 time=0\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=57 velocity=0 time=0\nnote_on channel=0 note=58 velocity=100 time=0\nnote_on channel=0 note=46 velocity=0 time=220\nnote_on channel=0 note=46 velocity=100 time=0\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=58 velocity=0 time=0\nnote_on channel=0 note=58 velocity=100 time=0\nnote_on channel=0 note=46 velocity=0 time=220\nnote_on channel=0 note=46 velocity=100 time=0\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=58 velocity=0 time=0\nnote_on channel=0 note=58 velocity=100 time=0\nnote_on channel=0 note=46 velocity=0 time=440\nnote_on channel=0 note=48 velocity=100 time=0\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=58 velocity=0 time=0\nnote_on channel=0 note=60 velocity=100 time=0\nnote_on channel=0 note=48 velocity=0 time=440\nnote_on channel=0 note=48 velocity=100 time=0\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=60 velocity=0 time=0\nnote_on channel=0 note=60 velocity=100 time=0\nnote_on channel=0 note=48 velocity=0 time=220\nnote_on channel=0 note=48 velocity=100 time=0\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=60 velocity=0 time=0\nnote_on channel=0 note=48 velocity=0 time=220\nnote_on channel=0 note=51 velocity=100 time=0\nnote_on channel=0 note=48 velocity=100 time=220\nnote_on channel=0 note=51 velocity=0 time=0\nnote_on channel=0 note=48 velocity=0 time=220\nnote_on channel=0 note=60 velocity=100 time=0\nnote_on channel=0 note=51 velocity=100 time=220\nnote_on channel=0 note=60 velocity=0 time=0\nnote_on channel=0 note=51 velocity=0 time=220\nnote_on channel=0 note=51 velocity=100 time=0\nnote_on channel=0 note=51 velocity=0 time=220\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=46 velocity=100 time=440\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=58 velocity=100 time=0\nnote_on channel=0 note=46 velocity=0 time=990\nnote_on channel=0 note=53 velocity=0 time=0\nnote_on channel=0 note=58 velocity=0 time=0\nnote_on channel=0 note=46 velocity=100 time=110\nnote_on channel=0 note=53 velocity=100 time=0\nnote_on channel=0 note=58 velocity=100 time=0\nnote_on channel=0 note=46 velocity=0 time=220\nnote_on channel=0 note=46 velocity=100 time=0\nnote_on channel=0 note
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
2020-05-25 22:39:44 +02:00
|
|
|
"filepath = '/home/altarin/praca-magisterska/docs/images/seq2seq_generated_midi_7.mid'\n",
|
2020-04-06 19:23:25 +02:00
|
|
|
"mid = mido.MidiFile(filepath)\n",
|
|
|
|
"for i, track in enumerate(mid.tracks):\n",
|
|
|
|
" for msg in track:\n",
|
|
|
|
" print(msg)"
|
|
|
|
]
|
|
|
|
},
|
2020-04-07 07:40:35 +02:00
|
|
|
{
|
2020-05-25 22:39:44 +02:00
|
|
|
"cell_type": "markdown",
|
2020-04-07 07:40:35 +02:00
|
|
|
"metadata": {},
|
2020-05-25 22:39:44 +02:00
|
|
|
"source": [
|
|
|
|
"# Regresja liniowa"
|
|
|
|
]
|
2020-04-07 07:40:35 +02:00
|
|
|
},
|
2020-04-06 19:23:25 +02:00
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2020-05-25 22:39:44 +02:00
|
|
|
"execution_count": 7,
|
2020-04-06 19:23:25 +02:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
2020-05-25 22:39:44 +02:00
|
|
|
{
|
|
|
|
"output_type": "execute_result",
|
|
|
|
"data": {
|
|
|
|
"text/plain": "[<matplotlib.lines.Line2D at 0x7fe0d90a1580>]"
|
|
|
|
},
|
|
|
|
"metadata": {},
|
|
|
|
"execution_count": 7
|
|
|
|
},
|
2020-04-06 19:23:25 +02:00
|
|
|
{
|
|
|
|
"output_type": "display_data",
|
|
|
|
"data": {
|
|
|
|
"text/plain": "<Figure size 432x288 with 1 Axes>",
|
2020-05-25 22:39:44 +02:00
|
|
|
"image/png": "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
|
2020-04-06 19:23:25 +02:00
|
|
|
},
|
|
|
|
"metadata": {
|
|
|
|
"image/png": {
|
|
|
|
"width": 362,
|
|
|
|
"height": 248
|
|
|
|
},
|
|
|
|
"needs_background": "light"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"x = np.arange(0,10)\n",
|
|
|
|
"y = np.arange(0,10) + np.random.random(10)-0.5\n",
|
|
|
|
"y_hat = np.arange(0,10)\n",
|
|
|
|
"plt.scatter(x, y, c='k')\n",
|
|
|
|
"plt.plot(x,y_hat, c='r')\n",
|
2020-05-25 22:39:44 +02:00
|
|
|
"# plt.labels\n",
|
2020-04-06 19:23:25 +02:00
|
|
|
"# plt.savefig('linear_reg.png')"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2020-04-07 07:40:35 +02:00
|
|
|
"execution_count": 20,
|
2020-04-06 19:23:25 +02:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2020-05-25 22:39:44 +02:00
|
|
|
"source": [
|
|
|
|
"# Gradient descent\n",
|
|
|
|
"\n",
|
|
|
|
"fx = x^2\n",
|
|
|
|
"dx = 2x + c\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"execution_count": 92,
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"output_type": "display_data",
|
|
|
|
"data": {
|
|
|
|
"text/plain": "<Figure size 432x288 with 1 Axes>",
|
|
|
|
"image/png": "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
|
|
|
|
},
|
|
|
|
"metadata": {
|
|
|
|
"image/png": {
|
|
|
|
"width": 383,
|
|
|
|
"height": 252
|
|
|
|
},
|
|
|
|
"needs_background": "light"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
],
|
|
|
|
"source": [
|
|
|
|
"func = lambda x: x**2\n",
|
|
|
|
"func_dx = lambda x:2*x\n",
|
|
|
|
"\n",
|
|
|
|
"x = np.arange(-20,20,0.1)\n",
|
|
|
|
"y = func(x)\n",
|
|
|
|
"\n",
|
|
|
|
"point_x = -6\n",
|
|
|
|
"point_y = func(point_x)\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"\n",
|
|
|
|
"dx = styczna(x)\n",
|
|
|
|
"\n",
|
|
|
|
"learning_points_xs = np.arange(point_x, 0, 0.8)\n",
|
|
|
|
"learning_points_ys = func(learning_points_xs)\n",
|
|
|
|
"\n",
|
|
|
|
"fig, ax = plt.subplots()\n",
|
|
|
|
"ax.plot(x, y, c='k')\n",
|
|
|
|
"\n",
|
|
|
|
"for px in learning_points_xs[0:1]:\n",
|
|
|
|
" slope = func_dx(px)\n",
|
|
|
|
" intercept = -px**2\n",
|
|
|
|
" styczna = lambda x: slope*x + intercept\n",
|
|
|
|
" dx = styczna(x)\n",
|
|
|
|
" ax.plot(x, dx, c='r', zorder=1)\n",
|
|
|
|
"\n",
|
|
|
|
"ax.scatter(x=point_x, y=point_y, c='r', zorder=6) #start\n",
|
|
|
|
"# ax.scatter(x=0, y=0, c='g', zorder=6) #min\n",
|
|
|
|
"# ax.scatter(x=learning_points_xs, y=learning_points_ys, c='y', zorder=5)\n",
|
|
|
|
"plt.ylim((-20,80))\n",
|
|
|
|
"plt.xlim((-20,20))\n",
|
|
|
|
"# plt.xlabel('x')\n",
|
|
|
|
"# plt.ylabel('f(x) = x^2')\n",
|
|
|
|
"\n",
|
|
|
|
"plt.savefig('gradient_descent_1.png')\n",
|
|
|
|
"\n",
|
|
|
|
"# https://towardsdatascience.com/understanding-the-mathematics-behind-gradient-descent-dde5dc9be06e?\n",
|
|
|
|
"# https://medium.com/code-heroku/gradient-descent-for-machine-learning-3d871fa48b4c"
|
|
|
|
]
|
2020-04-06 19:23:25 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
2020-04-07 07:40:35 +02:00
|
|
|
"execution_count": null,
|
2020-04-06 19:23:25 +02:00
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
|
|
|
"source": []
|
|
|
|
}
|
2020-05-25 22:39:44 +02:00
|
|
|
],
|
|
|
|
"metadata": {
|
|
|
|
"language_info": {
|
|
|
|
"name": "python",
|
|
|
|
"codemirror_mode": {
|
|
|
|
"name": "ipython",
|
|
|
|
"version": 3
|
|
|
|
},
|
|
|
|
"version": "3.8.3-final"
|
|
|
|
},
|
|
|
|
"orig_nbformat": 2,
|
|
|
|
"file_extension": ".py",
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
"name": "python",
|
|
|
|
"npconvert_exporter": "python",
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
"version": 3,
|
|
|
|
"kernelspec": {
|
|
|
|
"name": "python38264bit90963b6dfcff4977b23d3abddad7c054",
|
|
|
|
"display_name": "Python 3.8.2 64-bit"
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"nbformat": 4,
|
|
|
|
"nbformat_minor": 2
|
2020-04-06 19:23:25 +02:00
|
|
|
}
|