{ "info": { "author": "Chaiporn Jaikaeo", "author_email": "chaiporn.j@ku.ac.th", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Multimedia :: Sound/Audio" ], "description": "MML Parser and Player for Python\n================================\n\nPython-based MML ([Music Macro Language](https://en.wikipedia.org/wiki/Music_Macro_Language)) parser and player.\n\n\nInstallation\n------------\n\n pip install mmlparser\n\n\nExamples\n--------\n\nExamples, as well as simple songs written in MML, can be found in the\ndirectory `mmlparser/examples`, which can be played directly from a command\nline.\n\n python -m mmlparser.examples.simple_player\n\nTo actually play the song, install `pyrtmidi` and make sure at least one MIDI\noutput is available. The notes will be sent to the MIDI out device.\n\n pip install rtmidi\n python -m mmlparser.examples.simple_player\n\nThe code in `examples/simple_player.py` plays musical notes with\n`MMLParser.play()` method, which relies on the blocking `time.sleep()`\nfunction. The async version, `MMLParser.aplay()`, may be used to play music\nconcurrently with other asyncio tasks. See `examples/async_player.py` for\nsome examples.\n\n python -m mmlparser.examples.async_player\n\nLimitations\n-----------\n\n* Triplets are not yet supported.\n* User event and repeat commands are not supported.\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/cjaikaeo/mmlparser-python", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "mmlparser", "package_url": "https://pypi.org/project/mmlparser/", "platform": "", "project_url": "https://pypi.org/project/mmlparser/", "project_urls": { "Homepage": "https://gitlab.com/cjaikaeo/mmlparser-python" }, "release_url": "https://pypi.org/project/mmlparser/0.3.0/", "requires_dist": null, "requires_python": "", "summary": "MML (Music Macro Language) parser and player for Python", "version": "0.3.0" }, "last_serial": 5317834, "releases": { "0.1.4": [ { "comment_text": "", "digests": { "md5": "51d2717decd3b1b9a80318073f5ae9f0", "sha256": "f929dd074f8179736900eecf6117cf216c1158867580c4304fa5963ce60b7631" }, "downloads": -1, "filename": "mmlparser-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "51d2717decd3b1b9a80318073f5ae9f0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7195, "upload_time": "2019-04-21T04:23:16", "url": "https://files.pythonhosted.org/packages/69/fe/798b37e8f2b0b747f8a3892c76f037b69c6e4e26859e5d53d50b221e9437/mmlparser-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8d241ad7e531d87106780af9c37cb241", "sha256": "1e331d5ae21a00305d498f4eb37c42ccaf7df5d871b2a9d9e40cf6eb7b6de585" }, "downloads": -1, "filename": "mmlparser-0.1.4.tar.gz", "has_sig": false, "md5_digest": "8d241ad7e531d87106780af9c37cb241", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4003, "upload_time": "2019-04-21T04:23:19", "url": "https://files.pythonhosted.org/packages/a8/a2/e85181f32bd6f9e2a1434d6c8abcc60aead6e9f85a48f28f8315c4e37cbb/mmlparser-0.1.4.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a40ad81ad4dbb7d15f27429b60297169", "sha256": "18192732eedc0922202fb04110cfca80a141182f45a849a689214cc8c7248ed0" }, "downloads": -1, "filename": "mmlparser-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a40ad81ad4dbb7d15f27429b60297169", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7958, "upload_time": "2019-04-21T05:09:53", "url": "https://files.pythonhosted.org/packages/16/8e/13f1fa29bbb60af84251330756cda1f290bbc9e85446a42f12b3d202aad9/mmlparser-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26e28e5980d76b33427962c88ef84dc3", "sha256": "aa97073cd3dabd50bc9165fc8c4641bf104935a6d6306d972564e3b466184847" }, "downloads": -1, "filename": "mmlparser-0.2.0.tar.gz", "has_sig": false, "md5_digest": "26e28e5980d76b33427962c88ef84dc3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4790, "upload_time": "2019-04-21T05:09:55", "url": "https://files.pythonhosted.org/packages/63/08/b6699817a74d68d1c426f22eea6d14b07ec35dbb0c8f11e02e555ed28283/mmlparser-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "80c4eb4a58283be7d6b71ddaf7336a33", "sha256": "f080d9dc7463edcb2887367ca3f2bed15cf8ec3216b7c057088d7dcc8d9bef3c" }, "downloads": -1, "filename": "mmlparser-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "80c4eb4a58283be7d6b71ddaf7336a33", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7993, "upload_time": "2019-04-29T11:26:15", "url": "https://files.pythonhosted.org/packages/16/1f/eb4fc9687cdad6d69ac98b6d38168335757ef36279626bbcdefd70748d0e/mmlparser-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2337d0884d8a3a270fcec9e2e074553", "sha256": "c8b540dd653e09d5ef683f97a8ae97feec4343e4ba9e7a96630f76db24855294" }, "downloads": -1, "filename": "mmlparser-0.2.1.tar.gz", "has_sig": false, "md5_digest": "b2337d0884d8a3a270fcec9e2e074553", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4838, "upload_time": "2019-04-29T11:26:19", "url": "https://files.pythonhosted.org/packages/e2/cf/d1ad55dca56c7aa4740bfa9711e9d356dc33119a92fca13bb6f9a1297b2e/mmlparser-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e015b74ffd2b5f11e093c736984e7136", "sha256": "ebcc8d6409e1280c89ecb088d9d747f2c878e720b777e37130b485ae9e67eb19" }, "downloads": -1, "filename": "mmlparser-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e015b74ffd2b5f11e093c736984e7136", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7970, "upload_time": "2019-05-26T04:19:54", "url": "https://files.pythonhosted.org/packages/f1/eb/fd40b46c650e6deb80fba121750f1e6671e813037b297a6049bd414ddf54/mmlparser-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd06191a43d01799ade47c90d8ffab68", "sha256": "21ee4538f12a362ebf3e4bb64f8a882b6215ddba8504ffe34377912258252d04" }, "downloads": -1, "filename": "mmlparser-0.3.0.tar.gz", "has_sig": false, "md5_digest": "bd06191a43d01799ade47c90d8ffab68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4769, "upload_time": "2019-05-26T04:19:55", "url": "https://files.pythonhosted.org/packages/b5/b2/440fd71c7ab5e5c102f58651b0ae1b6ea6e8e4746a8764fa3ece64149bdc/mmlparser-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e015b74ffd2b5f11e093c736984e7136", "sha256": "ebcc8d6409e1280c89ecb088d9d747f2c878e720b777e37130b485ae9e67eb19" }, "downloads": -1, "filename": "mmlparser-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e015b74ffd2b5f11e093c736984e7136", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7970, "upload_time": "2019-05-26T04:19:54", "url": "https://files.pythonhosted.org/packages/f1/eb/fd40b46c650e6deb80fba121750f1e6671e813037b297a6049bd414ddf54/mmlparser-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd06191a43d01799ade47c90d8ffab68", "sha256": "21ee4538f12a362ebf3e4bb64f8a882b6215ddba8504ffe34377912258252d04" }, "downloads": -1, "filename": "mmlparser-0.3.0.tar.gz", "has_sig": false, "md5_digest": "bd06191a43d01799ade47c90d8ffab68", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4769, "upload_time": "2019-05-26T04:19:55", "url": "https://files.pythonhosted.org/packages/b5/b2/440fd71c7ab5e5c102f58651b0ae1b6ea6e8e4746a8764fa3ece64149bdc/mmlparser-0.3.0.tar.gz" } ] }