{ "info": { "author": "Irmen de Jong", "author_email": "irmen@razorvine.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: MIT License", "Programming Language :: C", "Programming Language :: Python", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Multimedia :: Sound/Audio", "Topic :: Multimedia :: Sound/Audio :: Players" ], "description": "[![saythanks](https://img.shields.io/badge/say-thanks-ff69b4.svg)](https://saythanks.io/to/irmen)\n[![Latest Version](https://img.shields.io/pypi/v/libxmplite.svg)](https://pypi.python.org/pypi/libxmplite/)\n\n\n# Python libxmp-lite modplayer\n\nThis module (pun intented) provides a Python interface to the\nlibxmp-lite (a cut-down version of [libxmp](https://github.com/cmatsuoka/libxmp) library.\nThe libxmp-lite library is linked into the extenson module, no additional\nfiddling and installation is required. \n\n*Requires Python 3.5 or newer. Also works on pypy3 (because it uses cffi).* \n\nThe library is primarily distributed in source form so you need a C compiler to build and install this\n(note: the setup script takes care of the actual compilation process, no need to worry about compiling things yourself).\nFor Linux and Mac this shouldn't be a problem. For Windows users, if the correct binary install\nis not available on pypi, you'll have to get it to compile as well which may be a bit of a hassle \non this platform. You have to make sure that the required tools that allow you to compile Python extension modules\nare installed (Visual Studio or the VC++ build tools).\n \nSoftware license for these Python bindings: MIT\n\nSoftware license for the libxmp library: LGPL\n\n\n## Example\n\n### Most basic mod decoding\n\n```python\nimport libxmplite\n\nprint(\"Supported module formats: \", libxmplite.get_formats())\n\nxmp = libxmplite.Xmp()\nxmp.load(\"amiga.mod\")\nxmp.start(44100)\n\ninfo = xmp.module_info() # grab name, comment, number of patterns, ....\n\nframe_info = xmp.play_frame()\n\n# ... process the frame buffer bytes ...\n# ... repeat until satisfied\n\nxmp.release()\n```\n\nThere's also a ``xmp.play_buffer()`` method that is more suited to be integrated\ninto an async pull API. It's used in the \"modplay\" example (which utilizes my\nother library, [miniaudio](https://github.com/irmen/pyminiaudio), for sound playback).\n\n\nThere's also extensive documentation for the underlying [libxmp API](https://github.com/cmatsuoka/libxmp/blob/master/docs/libxmp.rst).", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/irmen/pylibxmplite", "keywords": "sound,audio,playback,tracker,module,protracker,Amiga", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "libxmplite", "package_url": "https://pypi.org/project/libxmplite/", "platform": "", "project_url": "https://pypi.org/project/libxmplite/", "project_urls": { "Homepage": "https://github.com/irmen/pylibxmplite" }, "release_url": "https://pypi.org/project/libxmplite/1.3/", "requires_dist": null, "requires_python": "", "summary": "python bindings for the libxmp-lite modplayer library (protracker, screamtracker, ...)", "version": "1.3" }, "last_serial": 5513646, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "fd3b225cc06867a7d9ac66da14602300", "sha256": "2ce577c7099dda0cfde8af8a16e749496b4908805a98b05f93f0f89ef4e7917a" }, "downloads": -1, "filename": "libxmplite-1.0-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "fd3b225cc06867a7d9ac66da14602300", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 74791, "upload_time": "2019-07-05T18:51:18", "url": "https://files.pythonhosted.org/packages/32/b7/1782af3f771662954ecc66a8d150978fbfb7f1861dce89392d15352ee90c/libxmplite-1.0-cp37-cp37m-win32.whl" }, { "comment_text": "", "digests": { "md5": "8679a8825c48b9de5c247004620a032e", "sha256": "55a2e488e9b1d4bdf5e40465ad91f45106710bf7c779d4755194eb7becf3899c" }, "downloads": -1, "filename": "libxmplite-1.0-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "8679a8825c48b9de5c247004620a032e", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 86376, "upload_time": "2019-07-05T18:51:16", "url": "https://files.pythonhosted.org/packages/bc/71/1241f6fdf9bc38a1636a26be200e474e92258088c813e2840aa97a4f1c25/libxmplite-1.0-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "bd481d9b2320498a713bf127d6e695ad", "sha256": "1e5389069e3c8b209967e1b422c5d214564a6632892031855b80335789c0f9c7" }, "downloads": -1, "filename": "libxmplite-1.0.tar.gz", "has_sig": false, "md5_digest": "bd481d9b2320498a713bf127d6e695ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8191, "upload_time": "2019-07-05T18:50:55", "url": "https://files.pythonhosted.org/packages/89/15/777fa02232be783084f0299544e173e6fc9220af47e2c8504aeac2a7d47d/libxmplite-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "a327175762ccd0403254a46b7e087e9f", "sha256": "480f2185e7acf9c3c932b8a84ddf67dce1b3bb974664904eddcd5a5899f84faf" }, "downloads": -1, "filename": "libxmplite-1.1-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "a327175762ccd0403254a46b7e087e9f", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 74850, "upload_time": "2019-07-05T19:19:05", "url": "https://files.pythonhosted.org/packages/58/f4/7e6dc59a6424f20e0e44d35027b1dfeac01f60e91c49c3efabeb281d7e19/libxmplite-1.1-cp37-cp37m-win32.whl" }, { "comment_text": "", "digests": { "md5": "9a9a4d672481dc368a32cf2f02bf5ea4", "sha256": "8f3b264691f061bd769c66921e36d2f6e25f9fe72f8c403b342ae34bb225d4a9" }, "downloads": -1, "filename": "libxmplite-1.1-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "9a9a4d672481dc368a32cf2f02bf5ea4", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 86438, "upload_time": "2019-07-05T19:19:03", "url": "https://files.pythonhosted.org/packages/2c/c8/763cdc2690935c6ef2a8e5b619f6f2b560d5c4bdb6b8eca2b7310c5a836c/libxmplite-1.1-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "181b248dc88cd6d1d66f1a554853403a", "sha256": "f857591450d0ae841dfb4fe74d5a01335f54e060a057546dc375fac5a9c13406" }, "downloads": -1, "filename": "libxmplite-1.1.tar.gz", "has_sig": false, "md5_digest": "181b248dc88cd6d1d66f1a554853403a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 213050, "upload_time": "2019-07-05T19:18:39", "url": "https://files.pythonhosted.org/packages/c7/db/5b6579d79597725cf7baadf38026fdef21cf47fe9c4a49f497f2a6acf602/libxmplite-1.1.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "1c079f563f01afa539360e28b5e04230", "sha256": "210f7afaeaee496a7ef30301b83c052f4e00496c09145843df1e9a720b80d79f" }, "downloads": -1, "filename": "libxmplite-1.3-cp37-cp37m-linux_armv7l.whl", "has_sig": false, "md5_digest": "1c079f563f01afa539360e28b5e04230", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 125955, "upload_time": "2019-07-10T19:20:11", "url": "https://files.pythonhosted.org/packages/48/81/5339725ab5da45f6b1d0fe26e30c1be24c74f5ba1d876ba22b82851f935d/libxmplite-1.3-cp37-cp37m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "d8bdfc5b1cfb49452e31672b60c4b526", "sha256": "3e8915cd6c077b95143d5616d4d123170445e2b47b5ed0fd91b2d9ea64f554e5" }, "downloads": -1, "filename": "libxmplite-1.3-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "d8bdfc5b1cfb49452e31672b60c4b526", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 74880, "upload_time": "2019-07-06T16:57:53", "url": "https://files.pythonhosted.org/packages/97/1a/fe37b5aa49bb8c65297f1881f1f5e7d1c99e048c1ee8e02eefdeadec3d5e/libxmplite-1.3-cp37-cp37m-win32.whl" }, { "comment_text": "", "digests": { "md5": "24991c79826aa25ee5cade751c3fc1b9", "sha256": "222d4e54fd89789b09b28d33e2a7a9918aeaff8cd5912e498be2091d233c10ba" }, "downloads": -1, "filename": "libxmplite-1.3-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "24991c79826aa25ee5cade751c3fc1b9", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 86468, "upload_time": "2019-07-06T16:57:55", "url": "https://files.pythonhosted.org/packages/41/42/27db40d8f2889fba87a4d25fb2b2a136e41f348e695cda630890775f7bc5/libxmplite-1.3-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "a401abbbcb7d16b384002840ba533bbd", "sha256": "00c1b9ac0b979d4477faa1ba677b152a02a3fc871bfb7e2cce978c3e0f8be666" }, "downloads": -1, "filename": "libxmplite-1.3.tar.gz", "has_sig": false, "md5_digest": "a401abbbcb7d16b384002840ba533bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 213096, "upload_time": "2019-07-06T16:54:03", "url": "https://files.pythonhosted.org/packages/a4/b5/6af02b4bac219718a4d714fa09d513db1c7131d4728605a2dce451135ecb/libxmplite-1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1c079f563f01afa539360e28b5e04230", "sha256": "210f7afaeaee496a7ef30301b83c052f4e00496c09145843df1e9a720b80d79f" }, "downloads": -1, "filename": "libxmplite-1.3-cp37-cp37m-linux_armv7l.whl", "has_sig": false, "md5_digest": "1c079f563f01afa539360e28b5e04230", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 125955, "upload_time": "2019-07-10T19:20:11", "url": "https://files.pythonhosted.org/packages/48/81/5339725ab5da45f6b1d0fe26e30c1be24c74f5ba1d876ba22b82851f935d/libxmplite-1.3-cp37-cp37m-linux_armv7l.whl" }, { "comment_text": "", "digests": { "md5": "d8bdfc5b1cfb49452e31672b60c4b526", "sha256": "3e8915cd6c077b95143d5616d4d123170445e2b47b5ed0fd91b2d9ea64f554e5" }, "downloads": -1, "filename": "libxmplite-1.3-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "d8bdfc5b1cfb49452e31672b60c4b526", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 74880, "upload_time": "2019-07-06T16:57:53", "url": "https://files.pythonhosted.org/packages/97/1a/fe37b5aa49bb8c65297f1881f1f5e7d1c99e048c1ee8e02eefdeadec3d5e/libxmplite-1.3-cp37-cp37m-win32.whl" }, { "comment_text": "", "digests": { "md5": "24991c79826aa25ee5cade751c3fc1b9", "sha256": "222d4e54fd89789b09b28d33e2a7a9918aeaff8cd5912e498be2091d233c10ba" }, "downloads": -1, "filename": "libxmplite-1.3-cp37-cp37m-win_amd64.whl", "has_sig": false, "md5_digest": "24991c79826aa25ee5cade751c3fc1b9", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 86468, "upload_time": "2019-07-06T16:57:55", "url": "https://files.pythonhosted.org/packages/41/42/27db40d8f2889fba87a4d25fb2b2a136e41f348e695cda630890775f7bc5/libxmplite-1.3-cp37-cp37m-win_amd64.whl" }, { "comment_text": "", "digests": { "md5": "a401abbbcb7d16b384002840ba533bbd", "sha256": "00c1b9ac0b979d4477faa1ba677b152a02a3fc871bfb7e2cce978c3e0f8be666" }, "downloads": -1, "filename": "libxmplite-1.3.tar.gz", "has_sig": false, "md5_digest": "a401abbbcb7d16b384002840ba533bbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 213096, "upload_time": "2019-07-06T16:54:03", "url": "https://files.pythonhosted.org/packages/a4/b5/6af02b4bac219718a4d714fa09d513db1c7131d4728605a2dce451135ecb/libxmplite-1.3.tar.gz" } ] }