{ "info": { "author": "Maarten Grachten, Carlos Cancino-Chac\u00f3n, Silvan Peter, Thassilo Gadermaier", "author_email": "partitura-users@googlegroups.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy" ], "description": "\n=========\nPartitura\n=========\n\nPartitura is a Python package for handling symbolic musical information. It\nsupports loading from and exporting to *MusicXML* and *MIDI* files.\n\nThe full documentation for `partitura` is available online at `readthedocs.org\n`_.\n\n\nQuickstart\n==========\n\nThe following code loads the contents of an example MusicXML file included in\nthe package:\n\n>>> import partitura\n>>> my_xml_file = partitura.EXAMPLE_MUSICXML\n>>> part = partitura.load_musicxml(my_xml_file)\n\nThe following shows the contents of the part:\n\n>>> print(part.pretty())\nPart id=\"P1\" name=\"Piano\"\n \u2502\n \u251c\u2500 TimePoint t=0 quarter=12\n \u2502 \u2502\n \u2502 \u2514\u2500 starting objects\n \u2502 \u2502\n \u2502 \u251c\u2500 0--48 Measure number=1\n \u2502 \u251c\u2500 0--48 Note id=n01 voice=1 staff=2 type=whole pitch=A4\n \u2502 \u251c\u2500 0--48 Page number=1\n \u2502 \u251c\u2500 0--24 Rest id=r01 voice=2 staff=1 type=half\n \u2502 \u251c\u2500 0--48 System number=1\n \u2502 \u2514\u2500 0-- TimeSignature 4/4\n \u2502\n \u251c\u2500 TimePoint t=24 quarter=12\n \u2502 \u2502\n \u2502 \u251c\u2500 ending objects\n \u2502 \u2502 \u2502\n \u2502 \u2502 \u2514\u2500 0--24 Rest id=r01 voice=2 staff=1 type=half\n \u2502 \u2502\n \u2502 \u2514\u2500 starting objects\n \u2502 \u2502\n \u2502 \u251c\u2500 24--48 Note id=n02 voice=2 staff=1 type=half pitch=C5\n \u2502 \u2514\u2500 24--48 Note id=n03 voice=2 staff=1 type=half pitch=E5\n \u2502\n \u2514\u2500 TimePoint t=48 quarter=12\n \u2502\n \u2514\u2500 ending objects\n \u2502\n \u251c\u2500 0--48 Measure number=1\n \u251c\u2500 0--48 Note id=n01 voice=1 staff=2 type=whole pitch=A4\n \u251c\u2500 24--48 Note id=n02 voice=2 staff=1 type=half pitch=C5\n \u251c\u2500 24--48 Note id=n03 voice=2 staff=1 type=half pitch=E5\n \u251c\u2500 0--48 Page number=1\n \u2514\u2500 0--48 System number=1\n\nIf `lilypond` or `MuseScore` are installed on the system, the following command\nrenders the part to an image and displays it:\n\n>>> partitura.render(part)\n\n.. image:: https://raw.githubusercontent.com/CPJKU/partitura/master/docs/images/score_example.png\n :alt: Score example\n\nThe notes in this part can be accessed through the property\n`part.notes`:\n\n>>> part.notes\n[, , \n ]\n\nThe following code stores the start, end, and midi pitch of the notes in a numpy\narray:\n\n>>> import numpy as np\n>>> pianoroll = np.array([(n.start.t, n.end.t, n.midi_pitch) for n in part.notes])\n>>> print(pianoroll)\n[[ 0 48 69]\n [24 48 72]\n [24 48 76]]\n\nThe note start and end times are in the units specified by the\n`divisions` element of the MusicXML file. This element specifies the\nduration of a quarter note. The `divisions` value can vary within an\nMusicXML file, so it is generally better to work with musical time in\nbeats.\n\nThe part object has a property :`part.beat_map` that converts timeline\ntimes into beat times:\n\n>>> beat_map = part.beat_map\n>>> print(beat_map(pianoroll[:, 0]))\n[0. 2. 2.]\n>>> print(beat_map(pianoroll[:, 1]))\n[4. 4. 4.]\n\nThe following commands save the part to MIDI and MusicXML, respectively:\n\n>>> partitura.save_score_midi(part, 'mypart.mid')\n\n>>> partitura.save_musicxml(part, 'mypart.musicxml')\n\nMore elaborate examples can be found in the `documentation\n`_.\n\n\nLicense\n=======\n\nThe code in this package is licensed under the Apache 2.0 License. For details,\nplease see the `LICENSE `_ file.\n\n\nInstallation\n============\n\nThe easiest way to install the package is via ``pip`` from the `PyPI (Python\nPackage Index) `_::\n\n pip install partitura\n\nThis will install the latest release of the package and will install all\ndependencies automatically.\n\n\nAcknowledgments\n===============\n\nThis work has received support from the European Research Council (ERC) under\nthe European Union\u2019s Horizon 2020 research and innovation programme under grant\nagreement No. 670035 (project `\"Con Espressione\"\n`_)\nand the Austrian Science Fund (FWF) under grant P 29840-G26 (project\n`\"Computer-assisted Analysis of Herbert von Karajan's Musical Conducting Style\"\n`_)\n\n.. image:: https://www.jku.at/fileadmin/_processed_/4/3/csm_erc_eu_8b7e33136b.png\n :width: 600\n :align: center\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/CPJKU/partitura", "keywords": "music notation musicxml midi", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "partitura", "package_url": "https://pypi.org/project/partitura/", "platform": "", "project_url": "https://pypi.org/project/partitura/", "project_urls": { "Homepage": "https://github.com/CPJKU/partitura" }, "release_url": "https://pypi.org/project/partitura/0.4.0/", "requires_dist": [ "numpy", "scipy", "lxml", "lark-parser", "xmlschema", "mido" ], "requires_python": ">=3.6", "summary": "A package for handling symbolic musical information", "version": "0.4.0", "yanked": false, "yanked_reason": null }, "last_serial": 10499431, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "383999ae9eadcf7c5b4bc072a7828e8b", "sha256": "f51afd0d7057378015f296c2b7902b016704534250c8d50f6f3627fea3d2d6fa" }, "downloads": -1, "filename": "partitura-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "383999ae9eadcf7c5b4bc072a7828e8b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 131370, "upload_time": "2019-09-29T15:35:43", "upload_time_iso_8601": "2019-09-29T15:35:43.850778Z", "url": "https://files.pythonhosted.org/packages/63/30/91c9fb203c51a9d72a08762e8ca50cf5db81fc8ff2d577a7e7d58c20526e/partitura-0.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "e31bd2cf4aee69ceb6e3575bf5fc61a6", "sha256": "24c259701dd634c03e2ef84b349b2557d515f3aa5650fdabb9ffa46f3dfd6f02" }, "downloads": -1, "filename": "partitura-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e31bd2cf4aee69ceb6e3575bf5fc61a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 212715, "upload_time": "2019-10-04T14:14:10", "upload_time_iso_8601": "2019-10-04T14:14:10.991990Z", "url": "https://files.pythonhosted.org/packages/ca/e2/ef24abdd76068de48bb4af01a39cb13fc2a8b1f413a256ddee83d63b2e1e/partitura-0.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "b70a130850bf2d085b7260258838e03f", "sha256": "4570cf40afccc5ae95627cb1f5fbecc1e38a89298615962010864af471582d01" }, "downloads": -1, "filename": "partitura-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b70a130850bf2d085b7260258838e03f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 63734, "upload_time": "2019-10-04T14:14:13", "upload_time_iso_8601": "2019-10-04T14:14:13.163358Z", "url": "https://files.pythonhosted.org/packages/63/ec/f1c088887a9b1a1c5b3b8daf59dc13fb1a94e2a4c2e4aa0771ff1f3a3192/partitura-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "be78db6b5292215c7d5d047de5aa10db", "sha256": "31b960496de424b676d0d5e8b35e0ace98a9904ef2ef31cd236fa7f9b96e6937" }, "downloads": -1, "filename": "partitura-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "be78db6b5292215c7d5d047de5aa10db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 259484, "upload_time": "2019-10-30T12:41:54", "upload_time_iso_8601": "2019-10-30T12:41:54.359576Z", "url": "https://files.pythonhosted.org/packages/1c/14/a8395df9223d4e3bf180fdb8f277597c6baf1c6161441c506a26ee648c3c/partitura-0.3.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "20643ec75666f73f724533cb64cde5bc", "sha256": "db4376c70275a852fe5bf1f2eba884072ac2b952309a78a1197a7f29b00ca923" }, "downloads": -1, "filename": "partitura-0.3.0.tar.gz", "has_sig": false, "md5_digest": "20643ec75666f73f724533cb64cde5bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 85488, "upload_time": "2019-10-30T12:41:56", "upload_time_iso_8601": "2019-10-30T12:41:56.228627Z", "url": "https://files.pythonhosted.org/packages/72/e3/ba17719f56ea017e24aa8f1151bcf1b6dc094a2dca61cd0fc0be0e687776/partitura-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "9af0d62a685a42f71931c21a70cf141a", "sha256": "e6e86316d2f048f1ee08df3e63b00d89a64a0d7ea020f051a3f0ab4eb2287a37" }, "downloads": -1, "filename": "partitura-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9af0d62a685a42f71931c21a70cf141a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 259489, "upload_time": "2019-11-01T12:01:28", "upload_time_iso_8601": "2019-11-01T12:01:28.131662Z", "url": "https://files.pythonhosted.org/packages/ad/e3/170c79ec8dca92c296f64a42b2eb42df44b8f70fa1bda0a08bd33dbe186d/partitura-0.3.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e8312b63b405095094255ae1781360ba", "sha256": "5eb0c284d1ac9acf1b38dff3c01be589fe14b294a2b11198a9d6310a445823da" }, "downloads": -1, "filename": "partitura-0.3.1.tar.gz", "has_sig": false, "md5_digest": "e8312b63b405095094255ae1781360ba", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 85521, "upload_time": "2019-11-01T12:01:33", "upload_time_iso_8601": "2019-11-01T12:01:33.349816Z", "url": "https://files.pythonhosted.org/packages/00/e3/72bed680907df16025ffbee10bfa239d72519edb027c6583781eac664d04/partitura-0.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "0a6eab6e7c9cbeed71900e54719f24c1", "sha256": "e92c82d0f15b583cb50e73e64ac133a168875d54b447cd19a5957a937777f5df" }, "downloads": -1, "filename": "partitura-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0a6eab6e7c9cbeed71900e54719f24c1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 180898, "upload_time": "2019-11-03T19:22:06", "upload_time_iso_8601": "2019-11-03T19:22:06.895416Z", "url": "https://files.pythonhosted.org/packages/0a/30/4fed8a7f57522744cce50c765dea8b020a2ef24c8d16d6e97b47a98c2ce3/partitura-0.3.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5b392445ff7e64c794253cfa0de502ea", "sha256": "5f0788649ff9adccb63fd317741c45c407be01b78c919da24c93248f47ada963" }, "downloads": -1, "filename": "partitura-0.3.2.tar.gz", "has_sig": false, "md5_digest": "5b392445ff7e64c794253cfa0de502ea", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 86147, "upload_time": "2019-11-03T19:22:09", "upload_time_iso_8601": "2019-11-03T19:22:09.760528Z", "url": "https://files.pythonhosted.org/packages/33/fd/e2c77539f4afae8c6160e73bdccdf597c10cbd5c2d985df0b7febb872817/partitura-0.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "21b26af15f6419a7a9e4f0b9d424266a", "sha256": "f559af2395c0cdd6a815042edbda23cfa3b1fd0c06b2866e9b3dc56ac9e2bc6b" }, "downloads": -1, "filename": "partitura-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "21b26af15f6419a7a9e4f0b9d424266a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 179663, "upload_time": "2019-11-04T09:26:20", "upload_time_iso_8601": "2019-11-04T09:26:20.135113Z", "url": "https://files.pythonhosted.org/packages/9c/ad/6d26a17dada760e71f96343d999ea15fd7c091f837a2148f045f06586afc/partitura-0.3.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "460a025e92c5e674f364b2f9c332c470", "sha256": "76c10d930b01cd8c4c520880912fb56aef2d78206c050816de8924af5ad61f3e" }, "downloads": -1, "filename": "partitura-0.3.3.tar.gz", "has_sig": false, "md5_digest": "460a025e92c5e674f364b2f9c332c470", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 84696, "upload_time": "2019-11-04T09:26:21", "upload_time_iso_8601": "2019-11-04T09:26:21.918604Z", "url": "https://files.pythonhosted.org/packages/bb/ce/e43665359a50cc79c5bed87f12ba5abccbeec0696ca731402bba936b4f28/partitura-0.3.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "d80d12b7467556326ba734c990c6c807", "sha256": "4afc86da28bacb9a403fc32eccc2b8cb31c970f1e193c8bf3959e118eb541cce" }, "downloads": -1, "filename": "partitura-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d80d12b7467556326ba734c990c6c807", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 181374, "upload_time": "2019-11-08T09:21:08", "upload_time_iso_8601": "2019-11-08T09:21:08.609590Z", "url": "https://files.pythonhosted.org/packages/f7/77/62644e7e0213029e85b000fc9e392256774796197d8e260126ef436574d7/partitura-0.3.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "888272b5bed1caf6608f49c162f86adb", "sha256": "677552a9fd6db6fb490340d6fe24dc3d57be60eff29fc05f04bb62bf3f123074" }, "downloads": -1, "filename": "partitura-0.3.4.tar.gz", "has_sig": false, "md5_digest": "888272b5bed1caf6608f49c162f86adb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 86617, "upload_time": "2019-11-08T09:21:11", "upload_time_iso_8601": "2019-11-08T09:21:11.499547Z", "url": "https://files.pythonhosted.org/packages/5f/8e/4203764f46115c077f1649fef7ab19285f6663233e2f48c2861727ce3c37/partitura-0.3.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "cd12bb02e11e2baaeb0297237cf9cd70", "sha256": "4b8242289e2fa3c0090eac38fa203128f6269b85dd09e2688e75ccd8a14e99cb" }, "downloads": -1, "filename": "partitura-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "cd12bb02e11e2baaeb0297237cf9cd70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 182293, "upload_time": "2019-11-08T13:55:51", "upload_time_iso_8601": "2019-11-08T13:55:51.150195Z", "url": "https://files.pythonhosted.org/packages/75/fb/b5647eb37719e1132499ef5d47a9e9662dc431468ec9bc92cb08fe7ad5ea/partitura-0.3.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "a85d754927b3b142b13bb1dec00fe730", "sha256": "389c74b0ca94b9b9dc4dfb7023bedc081d247978943f8cc4b9504152c00be8eb" }, "downloads": -1, "filename": "partitura-0.3.5.tar.gz", "has_sig": false, "md5_digest": "a85d754927b3b142b13bb1dec00fe730", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 87563, "upload_time": "2019-11-08T13:55:52", "upload_time_iso_8601": "2019-11-08T13:55:52.980429Z", "url": "https://files.pythonhosted.org/packages/f6/ee/bbf565a714d5ab5bea34be67c36400586e5b540c8cadd51b2adf38ed122a/partitura-0.3.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "bf0f6cc3c5d9b43adf3a2216081993d4", "sha256": "c3d3ee07e4ffcc8271d1b4168d149b557dd17df035956fad0ac4599f00d64243" }, "downloads": -1, "filename": "partitura-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bf0f6cc3c5d9b43adf3a2216081993d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 218246, "upload_time": "2021-05-28T13:59:00", "upload_time_iso_8601": "2021-05-28T13:59:00.430974Z", "url": "https://files.pythonhosted.org/packages/3b/d1/cf3518d2e33c5be845e010f618c0d7edd1413274aa2494aeab4306165d33/partitura-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dddc515abc2223b0da653ef1c2325500", "sha256": "b7979b02b57f20018144973a39f4526a4622a38f4d8c913e2d497e79fc7d9d80" }, "downloads": -1, "filename": "partitura-0.4.0.tar.gz", "has_sig": false, "md5_digest": "dddc515abc2223b0da653ef1c2325500", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 121804, "upload_time": "2021-05-28T13:59:01", "upload_time_iso_8601": "2021-05-28T13:59:01.762305Z", "url": "https://files.pythonhosted.org/packages/6d/12/7ac07fa54d9612ca225f2fa6ac891175edbf341f723937a57c5c2027538a/partitura-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bf0f6cc3c5d9b43adf3a2216081993d4", "sha256": "c3d3ee07e4ffcc8271d1b4168d149b557dd17df035956fad0ac4599f00d64243" }, "downloads": -1, "filename": "partitura-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bf0f6cc3c5d9b43adf3a2216081993d4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 218246, "upload_time": "2021-05-28T13:59:00", "upload_time_iso_8601": "2021-05-28T13:59:00.430974Z", "url": "https://files.pythonhosted.org/packages/3b/d1/cf3518d2e33c5be845e010f618c0d7edd1413274aa2494aeab4306165d33/partitura-0.4.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "dddc515abc2223b0da653ef1c2325500", "sha256": "b7979b02b57f20018144973a39f4526a4622a38f4d8c913e2d497e79fc7d9d80" }, "downloads": -1, "filename": "partitura-0.4.0.tar.gz", "has_sig": false, "md5_digest": "dddc515abc2223b0da653ef1c2325500", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 121804, "upload_time": "2021-05-28T13:59:01", "upload_time_iso_8601": "2021-05-28T13:59:01.762305Z", "url": "https://files.pythonhosted.org/packages/6d/12/7ac07fa54d9612ca225f2fa6ac891175edbf341f723937a57c5c2027538a/partitura-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }