Commit a7a8e984 authored by Steve Tjoa's avatar Steve Tjoa

symbolic representations

parent 04c7769c
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"cells": [
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"<script>\n",
"$(function() {\n",
" if ($(\"body.notebook_app\").length == 0) {\n",
" $(\".input\").hide(); \n",
" }\n",
"});\n",
"</script>\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
"<button onclick=\"$('.input').show();\">Show input</button>\n",
"<button onclick=\"$('.input').hide();\">Hide input</button>\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import IPython.display as ipd\n",
"\n",
"# Hide code by default when the notebook is exported as HTML.\n",
"ipd.display_html('''\n",
"<script>\n",
"$(function() {\n",
" if ($(\"body.notebook_app\").length == 0) {\n",
" $(\".input\").hide(); \n",
" }\n",
"});\n",
"</script>\n",
"''', raw=True)\n",
"\n",
"# Create HTML buttons to show or hide IPython input cells.\n",
"ipd.display_html('''\n",
"<button onclick=\"$('.input').show();\">Show input</button>\n",
"<button onclick=\"$('.input').hide();\">Hide input</button>\n",
"''', raw=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[&larr; Back to Index](index.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Symbolic Representations"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"**Symbolic music representations** comprise any kind of score representation with an explicit encoding of notes or other musical events. These include machine-readable data formats such as MIDI. Any kind of digital data format may be regarded as symbolic since it is based on a finite alphabet of letters or symbols."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Piano-Roll Representations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Around the late 19th and early 20th centuries, self-playing pianos called **player pianos** became popular. The input for these pianos is a continuous roll of paper with holes punched into it. This paper roll is called a **piano roll**. Performances by famous musicians such as Gustav Mahler, Edvard Grieg, Scott Joplin and George Gershwin have been recorded onto piano rolls. Here is a player piano in action:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/jpeg": "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\n",
"text/html": [
"\n",
" <iframe\n",
" width=\"400\"\n",
" height=\"300\"\n",
" src=\"https://www.youtube.com/embed/2A6ZXZwl3nA\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.YouTubeVideo at 0x112e86650>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ipd.display( ipd.YouTubeVideo(\"2A6ZXZwl3nA\") )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Today, a **piano-roll representation** generically refers to any visualization of note information resembling a piano roll. See below for examples of piano-roll representations by Stephen Malinowski. Here, the horizontal axis represents time, and the vertical axis represents pitch."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/jpeg": "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\n8orRZ3wNdJjOOpQTVFx111c4OeitD7Cm0aK0PsKbThpTSescNKaT1jtht7lsnRPJi9Rc/uc9FaH2\nFNo0VofYU3lOGlVJ6xw0qpPWOG5bJ0TyR6i59FOS4VofYU3hotQ+wpvHHSmk9Y4aU0nrHDclk6J5\nHqLn0U56LULsKbw0XoduQptOGlVJ6x40qpPWO2E7lsidPJKVN0T6KZ2kxIlKlElKeqwYKLdGprPr\nWq1HmmF2Gr6U0nrHbCFxTSV/iO2FhHFbYmo1rkwn3N2O83qNuq1Vx/BtESpVCJDdDfHVzHIqOS3M\na0/C9Hc9XulLuVbqt+c46VUlP4jiNKqT1jjBUUVqqMK9UX/ZhmuV3mXL8r/o2WWn52WloctAi5kK\nGiNa23Eh2edKn2ldhq+lNJ6xw0qpPWONhrLc1uNZPJmber21MIq+DaPOtT7S7YPO1T7S7YavpVSe\nscNKaT1jicW7uTyTvy99V8GzrVql2p2wwuNp+cmMNTUOPGV7c29rc58WlVJRPnFMfiHEVNm6RMQI\nT1V722TUaVySh9K/VVM46mWK8XiV6NkVdXPPkaJI8rb7/wAATIcrb9i/gD40qqi+xfaqr9TpmuUR\nPvKdR2zXKIn3lOo8gAAAAAAHJFOIAOSu18YzlOIPWu7qDlnfaM5TiCdo7qDkjnX1KXjkj/4UZndY\npRqGVp1fqchC8lLTL2MTmRxhmR7k5KVd3oHV1Psmrg9G5qX/ANxmt/8AlPPmlta7Y/eJ0urXbH7x\no+nkOR4SqfkQ9BWb/wDKFRERF9l+M8+aW1q/K4i/+RZOQ2qTlXqc62eiLFayF6qOW9tZgqEdTxrK\n/wBkIXRKqT9r0N7Rzc21rEavbsM9weDb5to8hCt800pOI6dPqph4Qr/t5MB6v/yBVRGr09Jn0gQe\nrahzhSbYrlbDhNVbdGsyxaQRyvRjMqqkpojXIuVweXMe6sTTfTnqYBVU3/HeEcQTWKp6LL0yM6Gs\nRc1UQwWhGJ+6Y+w7aGjqliRdReZ9FpqaRkTWqnNENdv7VIuvSbJoPijuqPsGhGJ+6o+wyeiquxTY\n2L+01xF9pyVdfHfoNgTBGJ+6ZjYfLVMNVqmS3CJ6RiwYV7K5wWlqWtyrVRCFjcic0MO7jIDk1g0z\nGNY2gADWLqBrAFwiqAhOQc0Vbc9jj63tLByEykrOYrjQ5uXhR2JLqqNiNul7l5eYaJq/Y8l4SFRX\n36Chk2UiqemsyeTPWHrdJ6z8w0PueR8JDri0OiJm2o8l8rqkNJNK6T7k7NTyh63tGv2nrTzDQ+55\nLwkOmdoVFSUjK2kSSL5N1vgk6CU0rpFX3UbNTyjr9o1nqql0OiOpksrqTJKqw0VVWEms+nzFRLfQ\n8j4KB2lVI1ccydmp5M1hL+09WTNCoqRICeaJJPX1/BJr1H0eYaH3PI+EhHFVInUjZqeS7/aNftPW\nfmGh9zyPhIPMND7nkfBQcWUvVRs1PJnre0Xd7T1olConc8j4SBaFQ+55HwkHFtJ1UnZqeS9fSpF1\n6VPSOUujUmBgqoxINNlIURId0cyEiKinm6xb2+5sro9pGq4PKtwTdekIq85KcXtMzTsLVyoSqTUp\nT4sWEq2RzeIs4myyrhmVDWK72PqwjRZeq+UWPEc3NXVY2FcH01eOJEufRgnDdbkUipM0+Ky66rob\nOlNntXxZ+s6y3WxHQIsrOf3O6s9DQOpkWdE1vuarJ4Npvl0vFic+sGYdVZGTqDpeZmGsiMuiscnE\noPa0tA39KohZeks6L/b5KgmuURPvKdR2zXKIn3lOo4k+YgAAAAAAAAAAAAAAE84IABIIBOQSnGbj\nkzxdDwnNzEeJKrMJGZm6ltY00nWYZoWTxrG9OSkouC7Vy0Stvotd4j00SvdS7xShBU8O0Haetd3U\nuz00SvdK7xsGAsqUGsVzgrKY5i+TXXnHnM+6j1SepMzwmQjOgxbWzm8djdt1noKOpZNq/tUI7n+p\nT01NRVjzL4tlTOW9jhr9u0oBcdYm7zijTrE3ecY+nN0ppWoiaqlmyujamMF/a/aEvbnKB06xN3nG\nGnWJu9Ix64qpew9bwZ0L/wDW9ppeV9f8KLdf4rStEx1iey2qkXi9h7EyQYHwvjTJDRZ3E1LZUJiY\nh50V7nWVyovGa1XpFT1MDo0auVNeouMep7HhZ3GQfoUmQfJT/KsDxFHoIyUfyrA8RTitmpS+rafn\nqNZ+hXoJyUfyrA8RR6Cck/8AKkDxFGzUerafnqD9CvQTko/lSB4ij0E5J/5UgeIo2aj1bT89QfoV\n6Cck/wDKkDxFIXIRkp5sKQN9RslHq2nh7JziZmFqzEn4kDyyOhKzNvbnLE9NEr3Uu+enfQRkp/lS\nDvqUrlKydYOpWLZiSp9HZBl2tSzEcuo0ZbBT18utInM16u7MpI9o5FwaZ6aJW30Uu+cXZZpVyJ+y\nnav6zJJgvDdvo1m1SEwXhvu5u08poXS9v5Kni+m6L+D4PTRK91u3zhHyySkSBEh+a3eu1W/L6UMk\nmC8N3+jWbSdCsNcfm1lvtUlNDKRP7fyo4vpeimKlMsUrLykKD5rcqw25t8/jO1MtMrb6KdvnbFwf\nh5tSgw0p7MxzHKqXU+rQvDdvo1m0hdDqVy51fyp7dpbTNxyUxcXLJKxHQnea3JmLf5R2+miV7pdv\nn36F4b7tZtUJgvDfdrNpK6GUnb+VPHGFN2qfB6aJXup2+PTRK90u3zIaF4b7tZtGheG+7WbSOC6T\nt/KjjCl7VMf6aZXul2+Fy0SvdLt8+/QvDfdrdo0Lw3f6MZtUcGUnb+VHF9L0U1vFeVOXrVAm6a2n\nrDWO1URyu4iqFL70Lw33a3eJ0Lw13azaWVJYEo2akXJCOLqVf7VKEausvnJWq6IQFv8AvuGheGu7\nW7VM3TZKWp0oktJQvJQWrfNTWiHR2ZqUUyvk5oZ6fTKkidnVU+71l9pyTOunMVVlLxLWqTXGwJGe\niQYSw0XNTpNW06xPx+dYpdyaUU7VVuqp2dNeGTxNkROSndjtf8czmv8AfX8AYJ07MVCqrNTURYsV\n91c5eNQcLUzpLK56fU0nPy5VPjmuURPvKdR2zXKIn3lOo1TGAAAAAAAAAAAAAAAAAAAAAAAAAAAC\nUIABJABOQAAASersj36QuCcJZO6Th+pStSiTUpCzYiw2Irb35tZ5RuL6yWrhcnl7EemFPbv61GTq\n/I6v4afmP1p8nPY6v4afmeIri562jjF6Zh7dX9KjJz2KreGn5j9ajJz2Kr+Gn5niK4uRtHD0zD27\n+tRk57FVvDT8yf1qMnPYqt4afmeIbi42jh6Zh7d/Woyc9iq/hJ+Y/Woyc88jV1/9afmeIri42jiP\nTRnt1P0qMnN9UjV/DT8ypse5YsLV3EsepycCdbCeiIiPaiKefEdrCu6DIydzFyhr1Nrp6lmrJ7F2\nSeUOhzUZsGHDmM5y2S6GcSuSa80TYUXhpf2tBRfrJrVS0kVtuNu00LheaqFyIz/4cjdLLTU7kSNF\nNiStyarxP2ErW5T6r9hraObfm2kIqX5tpX8Q1v28FXu+PPspnIlVlln4Uaz1ajFTi6TvStya31P1\new15bX5k95wh2160XX0hNIq37eD06hY5OaKbN56k+h+wjz3J9D9hrmq/Gm0XT2bRxFXfbweN3x9F\n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\n",
"text/html": [
"\n",
" <iframe\n",
" width=\"400\"\n",
" height=\"300\"\n",
" src=\"https://www.youtube.com/embed/LlvUepMa31o\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.YouTubeVideo at 0x112e19dd0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ipd.display( ipd.YouTubeVideo(\"LlvUepMa31o\") )"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDEjJR0oOjM9PDkz\nODdASFxOQERXRTc4UG1RV19iZ2hnPk1xeXBkeFxlZ2MBERISGBUYLxoaL2NCOEJjY2NjY2NjY2Nj\nY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY//AABEIAWgB4AMBIgACEQED\nEQH/xAAbAAEAAgMBAQAAAAAAAAAAAAAABQYCAwQBB//EAE4QAAEDAgIFCAcCCggFBQEAAAABAgME\nEQUSExQhMZIVFkFRU1SR0QYiMlJxoeFhkyMkQlVjcoGUotIXMzRkZYKxwQdDRGLxJYOj4vA1/8QA\nGQEBAAMBAQAAAAAAAAAAAAAAAAECAwQF/8QANREAAgECBAIJAgUFAQEAAAAAAAECAxESITFRBBMU\nIkFSYXGRofAVgSNTscHhBSQyQtFiM//aAAwDAQACEQMRAD8A+fgAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHXRUK1bXOSTLlW265eEJVHhisyG0ldnICU5Gde2mThHIzu3\nThN+h1+6U5kNyLBKciu7dOE5q2iWkRiq/Nmv0WKz4arCOKSyJVSLdkzkABzlwAAAAAAAAAAAAAAA\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoo6VauRWI/LZL3tc2VtAtIxrlkR2ZbbrGqozcOZbIr\niV7HGADIsAAAAAAAAAAAAAbdVqOwk4VGq1HYScKl8EtiLo1A26rUdhJwqNVqOwk4VGCWwujUDJ7H\nRus9qtXqVLGJRqxIAAAOqkrn0jXIxrXZlvtOUF4TlB4ovMhpPJkjyxNe+jZ8z3libs4/mRoNul1u\n8V5cdiS5Zm7OP5mTFdiy5ZFSPR7Uype9/wDwRZvpauSlVyxo31t90LQ4mUnaq7x7SHBJdXUkORm9\ns7hPORm9svCaOV6nqj8ByvU9UfgdHM4Luv59ylqu50cjN7ZeEcjN7Z3Cc/K9T1R+A5XqeqPwHM4L\nuv59xarudHIze2dwnPWYbq8SOY50iqtrZRyvU9UfgdFHibpJVSocxjUbsW1to/tJ9WKs32/GPxFm\nyL0MvZv4VGhl7N/CpYNdpu3Z4jXabtmeI6FS/MXz7jmy7pXnRval3McifahiTWITxT0qxwvSR6ql\nmt2qpF6rUdhJwqclahglaDujSMrrPI0g26rUdhJwqNVqOwk4VMsEti10aj1EVy2RFVepDZqtR2En\nCpvoopIKqOSWN7GN3uc1URNhMacnJJqwbyPWYe99Hpm51kvZI0btXaauT63uk/3ak5hmKxxekFPn\nljbTI67nr0bOsuvOHCPzjT8RtVhTxWg9CsW7Zny7k+t7pP8AdqNQrES60k/3an1LnBhH5xg4jCXH\n8JdE9rcQgVVaqIiOMsC3LXPlANuq1HYScKnqUs99sMiJ+qpXBLYXRpBNcjw9pJ8jFmEQubdZH71T\no6zp6DWvaxTmxIcE1yPB2knyHI8HaSfInoFfYjmxIUE1yPB2knyHI8PaSfIdAr7DmxIjRSdm7wCR\nSLujd4FgbV0zWo1Zm3TZvMY6ymRu2Zu9en7TXodK9uZ89SObLYgdDL2b+FRoZezfwqWDXabtmeI1\n2m7ZniT0Kl+Yvn3I5su6V1UVq2ciovUp4dOIyMkrHuY5HNW21Pgcx584qMmk7myd1cAAoSb6SqdS\nyK9rUcqpbaZ1dc+qY1r2tajVvsOU7MOpGVbno9zkyom43pyqzXKi8mUlhXWZxgmOSIc6JpJN1+gy\n5Hh7ST5GvQa2xXmxIZrXOWzWqvwQy0UnZv8AAmoaeDD351lVEclvWNi1tNpWrpmWsvT8DRcFFL8S\nVnsRzX2IgdDL2b+FRoZezfwqWDXaXtmeI12m7dniX6FS/MXz7kc2XdK/oZOzfwjQy9m/hUnpK2mV\njkSZm7rMtdpe3Z4kdDpXtzF8+45stiv6GXs38KjQy9m/hUsGu03bs8RrtN2zPEnoVL8xfPuObLum\nHKVJ2v8ACo5SpO1/hUr4K/UauyJ5ESwcpUna/wAKjlKk7X+FSvgfUauyHIiSFbG+tn0tM1ZGWtdE\n6Tn1Cq7Fx2YdXQ09NkkVUdmVdiHVypS+87hLKnQq9ec7NkYpxySIrUKrsXDUKrsXErypS+87hHKl\nL7zuEdG4X8wY6mxFahVdi41SwSQqiSsVqruuTXKlL7zuEj8TqY6l8axKqo1FvdDKtRoQheE7stGU\n280cIAOE1AAAAAAAAAOrD1VKjZGsnqrsQ3Mwqvral6U9K9zlu7KltiX+ppw6dlPUK+RVRuVU2IWT\nA/SCgoq50s73o1Y1bdGKu26eR0wpUnSc3LrbEOpPKFsiH5sY13CTxTzHNjGu4SeKeZdueeDdtJ92\npxYp6R4NiETGa5NFlde6QqtzJxjbJlo5u0skV2i9HcXiq43voZEai7V2dXxJnkuu7rL4EjS+luDU\n9NHDrEr8jUbmWJdpt554N20n3anVQ4l0Y4YmM6akyJ5Lru6y+A5Lru6y+BLc88G7aT7pRzzwbtpP\nu1N+nz8CnJRE8l13dZfA0V2D4jLSSMZSSK5bWS32k7zzwbtpPu1HPPBu2k+6UrLjZSi4u2ZKpJO5\nSebGNdwk8U8xzYxruEninmXbnng3bSfdqOeeDdtJ92pwYY7mt2UhfRrGWtVVoJEREuu1PMjI1RJG\nqu5FQ+jy+mODvhe1JpLq1UT8Gp82Idk8iSwcpUna/wAKnjsSpFatpdtvdUgAdv1GrsjLkxOzlSq9\n9OFDxuJVTUsj06/ZQ5AcvPq95mmCOx2cqVXvpwoOVKr304UOMDpFXvMYI7HZypVe+nCg5UqvfThQ\n4wOkVe8xgjseuVXOVV3rtPADEsAAAAAAAAADdT1MtMrliciZt+y5pBMZOLug1c7OU6q986X/AFUH\nKlV76cKHGDXn1e8yuCOxvqKyapajZXIqIt0sljQAZyk5O8mSlbQAAqSAAAAdFHEkjnPV1tGma3WY\n1U+sTaTLl2Wte5Fy+C0cTNILLqlP2EfCNUp+wj4T0/ps+8jl562K0Cy6pT9hHwjVKfsI+EfTZ95D\nnrYrQLLqlP2EfCNUp+wj4R9Nn3kOetitAsuqU/YR8I1Sn7CPhH02feQ562K0dVLTxTRvdJJlVu5L\nptJvVKfsI+E6KahpXNdemiX4tQiX9OmlfEi0eJjF3cblSBatUZmX8QgvbdkOvk6j7rFwIc9PhnU0\nZavLk2vnfZ3KlRwxzPckr8iIl022ND0Rr3Ii3RF2Fz5Oo+6xcCHFNSRI7bRwtTos3eTPhZQ1ZajU\nVZYYq1t2VgFl1On7CPhPFpIE3U8a/wCU1nwEoRxNlac8csKK2CyLSU6bqeNf8p7qdP2EfCFwMnJx\nvoJTwxUtytAmcUp4Y6TMyJjVzJtRCGOavRdGWFsmMsSuAAYlgAAAAAAAAAAAADOJEWViLtRXIWLU\n6fsI+E6uH4WVdNp6Gc6igVoFl1On7CPhGp0/YR8J0fTZ95FectitAsiUkHTTxp/lGqU9/wCzx2/V\nMlwcmk76+ZrLquS2K2CyapBf+zx2/VGqU9/7PHb9ULg5Pt7bBu3pcrYLIlJTrvp40/yhKSDpp40/\nyiPBylbPUSeHF4fMitgsup0/YR8I1On7CPhNfps+8jHnrYrQLjDh9IsTVWliVbe4hzT0VMkrkSnj\nRP1UKr+nzbtdFVxCbtYq4OrEmNjrXtY1GtS2xPgcpwzjgk4vsOhO6uAAVJAAAAAAAAAAAAANlOiO\nqYmuS6K9EVP2lufQ0bWralhzLuRWJtU3pUXUTd9DOU8MlG2pVJIo2U0cjX3e7el9xoLitBS6BVdS\nQtdlXcxNhwupKey/i8e73TZcFLCnfUnmqcmkrW/Yrud3vL4jO73l8SdZ6OI9qObV7F/R/UwbgDHy\nKxtZ6yb/AMF9Tn5c8vEhVIttLs1yeRC53e8viM7veXxJ7mz/AHv/AOP6njvRtGNVzqvYn6P6lnRq\nLMouIpSdkyCzu95fEZ3e8vid8+FPZJaGRJG29pUymvk2o/7fEwcrdp2KhUauov0OTO73l8Rnd7y+\nJsnp307kbJa6pfYpqJuzNxcXZnud3vL4nqSPTc93iYgXZBlpH++7xGkk993idNDRsqs+ebRZbfk3\nud8eAtkvkq72/R/UlXZEurHG1lvbIh9JJ77vEmvRzJJJPpsr7Ils+3rMWYC16qjaq9t/4P6nvN/1\n8us9F/Y+ppTxJ4tTnrzgrwk7PyZMQxRqrtLFCidFmobdDTdnFwoQMmBNiRFfV2Rf0f1EeBMkvkql\nW36P6m0azj1be5nUpc1OsnaPgnbYmYYo1c/SxQon5PqoYtbG2RdNHAke2y5UIvm7/ev4PqZw4HJA\n5XR1dlVLf1f1K4p2VloTGtw7k3J5PZaeRJRxxOldmig0X5K5UOepoW1N2aGLKjrpksi2/Ycb/R9z\n3q51VdVW6/g/qY6u7Avxlr0mV/qZVTLbp/2IbbVpF48RT5l6dm9ErfM9zU/BGo9U1yNu3dlXYZM9\nH1k9irYtv+1QmLRTqqyxNiXrRVW4Zj6xexSsT7cy7TKLhitLT7nXWjHlYqbeJ9mWXmaarBnQMXLO\nyR97ZESynDq8un0OX8J1XJWPEHYlUMgbEyF71vpE9a2zqOrkGXT6bXfwnXovqTypTd4LIzdahTSU\n279vxFdkjdE9WPSzk3oYk9LgaPqLSVt5HfovqeL6PNSRI9b9ZUv/AFf1I5Ug5xvle1r6PTchI43S\nvRjEu5dyG2GldJVtp3uSNVWyqu22wl48DSKoRrK20ibvwX2fExnoUoJnVT50mkZtVissjujfch05\nLNl4uMklZ3107N/mR1UmDuqYWUDHw3kdZJsu3ff4m6X0KSGqZTSYrC2Z9srdE7bchIcTdHi8VdGi\nQuZutttst0ky70vRJ2TS0cdXMyytmc5WKnUlk2FWzS0WsWi9/N/uZVHoWlJLHHPikSPf7LNG71jG\nb0VexzW1FSlFI7Yxj7vz+C7DKo9NUqZY5Z8Khe+P2V0rthlP6Z6/NEs2GQq9q2Y7SO9W/SO3IrGU\nVGzXn/H7lTzu95fEZ3e8viTMuAMitnrLX/RfU9kwFkCtV9X9qfg9/wAzRwmr37DFSUrWWumTzsQu\nd3vL4jO73l8S4zTQ5E0U0COv0uaYMmh1WzJoEkuu9yde0u6Vm1cpGpeKllm7a6eLy0Kjnd7y+Izu\n95fEuCzR6BESaDS9eZodNHo2ZZoM35XrNHLe5ZTvtrbX300Kdnd7y+J7nd7y+JcJ5o1RNDNAnXdz\nT2eeJUboZoEXpu5odO189CIVMWHRXv26W3yIl+D5oWuz6G9lzK5VNUOCvm9msbe67LL0KZyY+7bG\n6mje1q29pdthR4u9X5IqWPPtW6uUr1E9cvuatupF9W0uy1reBnzfqO9p4KOb0/e08FEnpDNHIrHU\n7Lotl9ZTHnJL3dnEptegcLXFJ2ZF11M6kqnwvfnVttv7DnJh1O3FXLWSTaJz9mRGXtbZvPORou+f\n/H9Tlla7sd8KdVxV4v0ZEAnaPDoaWqZMtUjkau5zLJu67km+am0jPwkPT+UnUTGGJXuc1atKlLC4\nv9Cnguempe1h4kGmpe1h4kL8pbmHTX3GUwFz01L2sPEg01L2sPEg5XiOmvuMq+H0Lq6RzGvRmVL3\nVDtXAJEejdOzairu/wD3WSGIYjHSMY+DRSKq2VEd5EeuPyK9HaBmxFT2v/3ULQWTJ5lep1oKyMub\nsneGcI5uyd4ZwjnFJ3dnEOcUnd2cQ/DI/u/AwlwGWKJ8mnauVFW1t5zSyLTQIxHLpnJaRFW9jtTG\nJ6uOSJkDEVWLdc24hpJHSvV71u5d6mc8N+qdvDurCDdRZvQziWSWVkekcmdyN39ZLvwCVjczqtqJ\n8FIaJ+ilZIiXVrkdb4Eu/wBIXyNyupmKn6yl4OOF4tSksWONtO0zTGK1tIkyR06M6rLff8TnTH6l\nrlckNOjl3rlXzOKlqNE9EkzOj9zo8DVM5r5Xualmqt0QrzJ7m0qVK2KOr1JTnFV9nD4L5hfSGrcl\nligVF/7V8yIOqOoibRuidHd63s6yEutPczhw9K+xM0UL8Ug1h0ywrfLljTZs+J0ckO77N4IQNJit\nTRw6KFWZb32tub+X67rj4TWMqNusszGT4u7wTyO6pwiDSIk9TM51tnqoam4NRuWyTzblX2UOVcdr\nFW6pEvxYOXKv3YfuzNuF8tPnidMGsHXTct7/AMHQuFUSL/Xz8KGxmBU0iKrJ5bJ1ohyJi6vRVmYi\nvTdkaiIecuVfQkSfBhVSV80TxEY8v8J9Z+OnsbKlvI0iMiRkqSJddI3dYQY07bpGtZ1aNu/5nBWV\nktY9rpst2pZLJY5yJO+hSi5xSx5v29CVTHahqrkihRP1V2/M85eqs2bJFe1ty+ZFgKTRWVKEneSu\nS7cadMipUtaiJuyJ9TBuOVDPYihT/KvmRYIu73NHZ01St1USvOCq7OHwXzHOCr9yHwXzIoE45bmP\nR6XdLHhOKT1tWsUrI0blVfVRfMlnQ0s72srKZJ47KqNzq3b13T9pUMOrNRqFl0ef1Vba9ifwvGVq\nqtU1BsmVirlWdW9KdOU55TqKqnJ9XtNORSVN4ElLsJHk3A/zQn7xJ5jk3A/zQn7xJ5m7XP8ACI/3\nx38g1z/CI/3x38hr0jh9/nqcvJ4zvL59jCOiwiF6SQ4Zo5G7nJO9beK2PLLrmfboPczbd3XbrNmu\nf4RH++O/kGuf4RH++O/kLLiqCVk/chUOKTbdndWzX8Ga6qr8y07s3Xn+hkymjrHrHBGrJ3JZj3P3\nfI1a5/hEf747+Q2QYm+nlbLHhESObuvWL/IS+Motainw/Exkm3p+m2hK0Po3E2Brq1yuqLrdzHbP\ns3p1G6T0YwyZFSaN8jXb0V1r/tTacPOeu/NcP70v8g5z135rh/el/kMulU7WxHW6dRyxdvzLyOjm\nZ6P9xX75/mOZno/3Ffvn+Zxz+llZBC+V+FxZWJdbVS/yEb/SQv5qT94/+pMZwlnEhxmtSe5mej/c\nV++f5nPiPongdLh1VUQ0Stlihe9i6V62VEVU6SJ/pIX81J+8f/U11P8AxB1qmlp1w1GJKxWK7T3y\n3S17ZS2Q65DT4jVXTR0r5OvSxLs+BrkxTEZEs+iav/tO8yT5Voe8N8FHKtD3hvgp0JWVsRxz4qrK\nWLl/qVjVajsJeBRqtR3eXgUs/KtD3hvgo5Voe8N8FK8uO46VV7hWNVqOwl4FGq1HYS8Cln5Voe8N\n8FHKtD3hvgo5cdx0qr3CsarUd3l4FGq1Hd5eBSz8q0PeG+CjlWh7w3wUcuO46TV7hws9H4nMa5Zn\noqpfchlT4IxvrsqJGuuqbETrscT8cq2vVGKxWouz1egwbjdYxLIrN6r7IvT2JUeK1UvnoY19BJA+\nWRZEc1Hb13qa6WnsxKmTKsTb3TpPG1z31OknVXtVVVW9HgY1NTpHroszI1T2dyGDuetF00lN67eO\n/kdSYqsN2QQw6NF2Zm7f9Ry1N2FPwr5kaCTBybd7ndUYpLUQuidFC1HdLWqi/wCpwgAgAAAAAAAA\nAAHrVs5FUA6YIpWtjka/K2V2TZvJfm9D28nghD1FTnma6JFaxtlRvRf4HVy7W9cfCXg4/wCyMuKj\nUbSovJHdzeh7eTwQc3oe3k8EOHl2t64+Ecu1vXHwl709jl5fFd5fPsb+bdR28PzHNuft4fmTWv0X\ne4eM8lqaSSNUWriRF6cxzvD2S+ehvTnWk1ihZfPE4EwaZKLV88N/euvXfqOXm3P28PzO/wDEL31+\nPiQyY+hZIj0rolst7ZkKq3e+eh31Gmv8r2WXVf8A0jubc/eIfn5Dm3UdvD8/IlJJqF8zZNdiRW22\nZkN2v0fe4eNC6wd756HDOdVJYY338PchebdR28Pz8j1PRqpXdPF8/Imdfo+9w8aGbcRokS2tw8aG\nHEScI3pu78jThnUnJqrGyIPmzU9vF8xzZqe3i+ZO8pUXeouNDRPUUE72udWxty9TkOalWrSlaeS8\njsnCCV0/3InmzU3VNNF8z3mxU9vF8yVqamgqXoq1sbcqdDk2nRynQ97i4kOy67x5tSpWUIuMbt6r\nPL3ILmxU9tF8zzmzUp/z4vmT/KdD3uLiQzhqYKly6CZkmXflW9ilSTUW4O78iKNas5rnQSj2v4yu\n82ant4vmObVR28XzLRl+BoqqRKlG3dly9RzRq8Q31lZeR6CqcL2zXqV7m1UdvF8xzZqe3i+ZYJ6N\nJo2MV9svUb2R5GNbe9ksS6le11r5B1OEt/mvUrC+jVSn/Pi+Z04bh7sLq9JUTRZXsVqbbbbp1k8r\nVIP0oY5KSF3Qj/8AYiMq9R4JqyfgZurQv1JJvzJPWqfvEXGg1qn7xFxoUYFugx3L81l2lnp5InMS\npibfpzoeQTU8USMWqid9udClHqIqrZEupfoiw4b5E852sXZ9RTvY5qVESXS186HkM1PFHlWpid9u\ndClKiotlRUPCOhq1rjnSthLzrVP3iLjQa1T94i40KOiK5bNRVXqQOarVs5FRepSvQY7kcx7F4dHH\nibVooKiLSTpkb61/9DT/AEc1/fabwd5EX6K07qfFaPEp3MjpI5PWkc5ERN6f6n0h/pBgzmq3lSl2\n/pUNqdPkqyKY1Mpf9HNf36m8HeQ/o5r++03g7yLm3HsGaq/+q0q3/Soevx/BnxuYuKUnrIqf1qGj\nlIWRSk/4dVzt1dSrxeQT/h1XLurqVfhm8ix4JUYFg8crI8ZppdIqKuaRqWseYRPgeFabJjVNJpUR\nNsjUta/2/aS208i+GGeZXU/4dVyrZK+lX4ZvIiXejNS2SRmnhux7mLv6FVP9i64M/AsJnkkZjVPJ\nnbls6Rqf7kA+poOUqioStiXNNIqJmS1lcpnVnKMbr9C8YU3Jq+REc2ant4vmObNT28XzJ3lKi73F\nxIOUqHvcPGhxdI4jb2NOXTILmzU9vF8xzaqO3i+ZO8pUPeouNDnpaigp81q2N2brchZV61m3+g5V\nK2pFc2qjt4fmObVR28XzJSCaggmWRK2JbpuzIetqKBKpZ9diuvRmQu61W7s/YnlUdyJ5t1Cf8+H5\n+RzT4LWRSZWMSVPeauz5lkWvolW+tw8aHLUYzRxS5c6v2JtZtQ76eF2vI8mpUrJytDyIqDAKmaJH\nOkjjW9la7ehs5tz9vD8yUpcRo5Is61DGXVfVetlE81DOqKtbElupyCSh3i9KdWU7TjZb6/uRS+jt\nQip+GiW626dgd6OVCK1NNF6y26SX01JNGymZUseq2b6q3XZ/4Ns0DHRQwaTYirt/YpjUxprA7ryO\nijKm0+c8Lv7bkLzZqe3i+Y5s1PbxfMsceWONrM18qWMs7es5XPiu77GmPhu8vUrXNmp7eL5jm1Ud\nvF8yy529aHPU07KhyKsmWyW2FoS4lvrJpeRKlwvbNepBc2qnt4vmYr6OVCORumi2oq9JO1y06xMb\n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\n",
"text/html": [
"\n",
" <iframe\n",
" width=\"400\"\n",
" height=\"300\"\n",
" src=\"https://www.youtube.com/embed/Kri2jWr08S4\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.YouTubeVideo at 0x112e19ed0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"ipd.display( ipd.YouTubeVideo(\"Kri2jWr08S4\") )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## MIDI Representations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Another symbolic representation is based on the **MIDI** standard ([Wikipedia](https://en.wikipedia.org/wiki/MIDI)), or Musical Instrument Digital Interface. The advent of MIDI in 1981-83 caused a rapid growth in the electronic musical instrument market."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"MIDI messages encode information for each note event such as the note onset, note offset, and intensity (represented as \"velocity\" in MIDI terminology). On computers, MIDI files contain a list of MIDI messages and other metadata."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **MIDI note number** is an integer between 0 and 127 that encodes the note's pitch. Most importantly, C4 (middle C) has MIDI note number 60, and A4 (concert A440) has MIDI note number 69. MIDI note numbers separated by 12 are separated by one octave, e.g. 72 = C5, 84 = C6, etc."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **key velocity** is an integer between 0 and 127 which controls the intensity of the sound."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **MIDI channel** is an integer between 0 and 15 which prompts the synthesizer to use a specific instrument."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"MIDI subdivides a quarter note into **clock pulses** or **ticks**. For example, if the number of pulses per quarter note (PPQN) is defined to be 120, then 60 ticks would represent the length of an eighth note."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"MIDI can also encode tempo in terms of **beats per minute** (BPM) thus allowing for absolute timing information."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Score Representations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Score representations** encode explicit information about musical symbols such as clefs, time signatures, key signatures, notes, rests, dynamics, etc. However, score representations, the way we define it here, does not include any description of the final visual layout and positioning of these symbols on the page."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For better or for worse, **MusicXML** has emerged as a universal format for storing music files for use among different music notation applications. Here is an excerpt of a MusicXML file:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <measure number=\"2\">\n",
" <note>\n",
" <pitch>\n",
" <step>B</step>\n",
" <alter>-1</alter>\n",
" <octave>4</octave>\n",
" </pitch>\n",
" <duration>1</duration>\n",
" <voice>1</voice>\n",
" <type>16th</type>\n",
" <stem>down</stem>\n",
" <beam number=\"1\">begin</beam>\n",
" <beam number=\"2\">begin</beam>\n",
" </note>\n",
" <note>\n",
" <pitch>\n",
" <step>D</step>\n",
" <octave>5</octave>\n",
" </pitch>\n",
" <duration>1</duration>\n",
" <voice>1</voice>\n",
" <type>16th</type>\n",
" <stem>down</stem>\n",
" <beam number=\"1\">continue</beam>\n",
" <beam number=\"2\">continue</beam>\n",
" </note>\n",
" ...\n",
" </measure>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[&larr; Back to Index](index.html)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment