{ "info": { "author": "Zuzu_Typ", "author_email": "zuzu.typ@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: zlib/libpng License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Topic :: Games/Entertainment", "Topic :: Multimedia :: Sound/Audio", "Topic :: Software Development :: Libraries" ], "description": "# PyWave \n## Open, read and write Wave files \n**PyWave** is a small **extension** that enables you to **open** and **read** the data of any **WAVE\\-RIFF** file\\. \nIt supports PCM, IEEE\\-FLOAT, EXTENSIBLE and a few other wave formats \\(including 32 and 64 bit waves\\)\\. \nIt can also create and write wave files, but it's currently limited to PCM\\-Waves and pure data \\(no metadata\\)\\. \n\n## Tiny documentation \n### About PyWave \n**PyWave** is supposed to **replace** the builtin Python extension `wave`, which doesn't support \\>16\\-bit wave files\\. \n\n### Using PyWave \nTo install PyWave you can use the [PyPI](https://packaging.python.org/tutorials/installing-packages/): \n\n pip install PyWave\n\nTo use PyWave in a script, you have to import the package `PyWave` using \n\n import PyWave\n\nor a wildcard import: \n\n from PyWave import *\n\n\n\n#### The Wave class\nYou can use `open(path)` to open and read a wave file\\. \n\nOr you can use \n\n\n open(path[, mode = 'r', channels = 2, frequency = 48000, bits_per_sample = 16, format = WAVE_FORMAT_PCM])\n\nwith \\ set to `'w'` to open and create a writable wave file\\. \n\nBoth will return an instance of the `Wave` class\\. \n\nThe following methods are provided by the `Wave` class: \n\n\n Wave.read([max_bytes = None]) -> data\n Reads and returns at most bytes of data.\n If is None, reads until the end.\n\n Wave.read_samples(number_of_samples) -> data\n Reads and returns at most samples of data.\n\n Wave.write(data) -> None\n Writes to the data chunk of the wave file.\n Before write can be called, the following members have to be set:\n - Wave.channels\n - Wave.frequency\n - Wave.bits_per_sample\n\n This function can only append to the end of the data chunk,\n thus it is not effected by 'seek()'.\n\n Wave.seek(offset[, whence = 0]) -> None\n Sets the current position in the data stream.\n If is 0, is the absolute position of the\n data stream in bytes.\n If is 1, is added to the current position\n in the data stream in bytes.\n If is 2, the position will be set to the end of\n the file plus .\n\n Wave.tell() -> position\n Returns the current position in the data stream.\n\n Wave.close() -> None\n Closes the file handle.\n\n\nAnd it has the following members: \n\n\n Wave.format \n Format of the audio data. Can be any of:\n - WAVE_FORMAT_PCM\n - WAVE_FORMAT_IEEE_FLOAT\n - WAVE_FORMAT_ALAW\n - WAVE_FORMAT_MULAW\n - WAVE_FORMAT_EXTENSIBLE\n Otherwise the format is unknown\n\n Wave.channels \n The number of audio channels present in the audio stream\n\n Wave.frequency \n Sample rate of the audio stream\n\n Wave.bitrate \n Number of bits per second\n\n Wave.bits_per_sample \n Number of bits per sample (usually 8, 16 or 32)\n\n Wave.samples \n Total number of samples in the audio data\n\n Wave.data \n [Deprecated]\n (only exists if was set to True)\n Audio data as bytes\n\n Wave.metadata \n A dictionary containing metadata specified in the wave file\n\n\n\n\n### Example \n\n\n import PyWave\n\n PATH = \"path/to/a/wave/file.wav\"\n\n wf = PyWave.open(PATH)\n\n print(\"This WAVE file has the following properties:\")\n print(wf.channels, \"channels\")\n print(wf.frequency, \"Hz sample rate\")\n print(wf.bitrate, \"bits per second\")\n print(wf.samples, \"total samples\")\n\n wf_copy = PyWave.open(\"path/to/a/wave/file_copy.wav\", \n mode = \"w\",\n channels = wf.channels,\n frequency = wf.frequency,\n bits_per_sample = wf.bits_per_sample,\n format = wf.format)\n wf_copy.write(wf.read())\n wf.close()\n wf_copy.close()\n\n\n#### PyTest\n\nPyTest support has been added in the form of a test_pywave.py module, in order to facilitate extensions to the module. In order to use it, one should install PyTest first by running:\n\n```\npip install -r pytest_requirements.txt\n```\n\nOnce installed, you should be able to simply run\n\n```\npytest\n```\n\nIn the repo folder, and see 2 items being collected, and 2 tests passing. \n\n\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://github.com/Zuzu-Typ/PyWave", "keywords": "wave RIFF wav interface simple read write create load open", "license": "zlib/libpng license", "maintainer": "", "maintainer_email": "", "name": "PyWave", "package_url": "https://pypi.org/project/PyWave/", "platform": "", "project_url": "https://pypi.org/project/PyWave/", "project_urls": { "Homepage": "https://github.com/Zuzu-Typ/PyWave" }, "release_url": "https://pypi.org/project/PyWave/0.5.0/", "requires_dist": null, "requires_python": "", "summary": "Open, read and write Wave files", "version": "0.5.0", "yanked": false, "yanked_reason": null }, "last_serial": 9764766, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "db42cf80e758b12dd810f872e50f5850", "sha256": "98d334f06f553bb8873ab28199cc223fd8e7a858ca8d005cc9c7891409856634" }, "downloads": -1, "filename": "PyWave-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db42cf80e758b12dd810f872e50f5850", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4521, "upload_time": "2019-08-28T13:02:24", "upload_time_iso_8601": "2019-08-28T13:02:24.603263Z", "url": "https://files.pythonhosted.org/packages/16/9a/e37708b7f449149177963648bce0e99ac5683b2d770b7b91572d87e2e5e8/PyWave-0.1.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ee0adc60eec88ee65154940d99384927", "sha256": "0e0b8440e39a4b2411002681a2e48ce6c9d17afa27a79c572e1dc99a0f03f0f7" }, "downloads": -1, "filename": "PyWave-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ee0adc60eec88ee65154940d99384927", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4855, "upload_time": "2019-08-28T13:02:26", "upload_time_iso_8601": "2019-08-28T13:02:26.990998Z", "url": "https://files.pythonhosted.org/packages/2e/5b/ab936d807379610ba9dbeb7178722b7bd47c0f0084d4e53ced0724b7c5d6/PyWave-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f561441d0f49a90bdb3039e5d760c9bf", "sha256": "53d0f3b284ea330b88ae7a3d55c39315f580800e25fbfd32580ab00695a47efd" }, "downloads": -1, "filename": "PyWave-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f561441d0f49a90bdb3039e5d760c9bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5149, "upload_time": "2019-08-29T07:49:11", "upload_time_iso_8601": "2019-08-29T07:49:11.385499Z", "url": "https://files.pythonhosted.org/packages/8b/09/19dd13dde33b362210f7e839c990f9402edc92b91c626c93d2c4ed5870c2/PyWave-0.2.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "ceccc2fe2757571d148d91f900e8e325", "sha256": "60f173426d3b4066b6e41dada14023e724b3ab927cafc583e02eadc6a64263a6" }, "downloads": -1, "filename": "PyWave-0.2.0.tar.gz", "has_sig": false, "md5_digest": "ceccc2fe2757571d148d91f900e8e325", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5504, "upload_time": "2019-08-29T07:49:13", "upload_time_iso_8601": "2019-08-29T07:49:13.146107Z", "url": "https://files.pythonhosted.org/packages/e1/c6/31a4b68c2022781925263858f2acdd63ecf486a438721cac59468baf58d5/PyWave-0.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9b1f891a6c7a1ebebcb6caf9dfd49c3a", "sha256": "a8ce8ffa651b842a11ec5917d5397a5a6639d3f3723d020f9d019af812cca3b9" }, "downloads": -1, "filename": "PyWave-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9b1f891a6c7a1ebebcb6caf9dfd49c3a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 5645, "upload_time": "2019-09-03T05:51:29", "upload_time_iso_8601": "2019-09-03T05:51:29.324717Z", "url": "https://files.pythonhosted.org/packages/40/ec/e52986a9e03e90884a99c970b032187f2f6a3dd2cec2f6c588ea811a5b44/PyWave-0.3.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "01d8c9988d9f312970b8f4fad7b90f23", "sha256": "f6e365c9a50c2aff4ddc308b93bdf70a873fba4b4ecf0c24d2ba34a855b20b11" }, "downloads": -1, "filename": "PyWave-0.3.0.tar.gz", "has_sig": false, "md5_digest": "01d8c9988d9f312970b8f4fad7b90f23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5971, "upload_time": "2019-09-03T05:51:30", "upload_time_iso_8601": "2019-09-03T05:51:30.910564Z", "url": "https://files.pythonhosted.org/packages/a2/d7/12399959f23346738497a619134cef8104f0c2e52489ee1a80484cd99cea/PyWave-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "fe99fbba4c660aea949acf9f03729414", "sha256": "05e0c33ff9f69f8f1c9d00eb4c4a30aacb6dbf94aeb32a47682bb70d1d753aae" }, "downloads": -1, "filename": "PyWave-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fe99fbba4c660aea949acf9f03729414", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6821, "upload_time": "2019-09-30T15:32:36", "upload_time_iso_8601": "2019-09-30T15:32:36.522796Z", "url": "https://files.pythonhosted.org/packages/f5/e7/a7aefd270148c4aea8d12792fa44f07bbb4bbcf795f2ec5cf11883d689b1/PyWave-0.4.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9a83665c4ed799bc1539101531c40245", "sha256": "fd5860220ea8674cbf417dfd6788baea0766535d3541f3262fb016d5c0f56141" }, "downloads": -1, "filename": "PyWave-0.4.0.tar.gz", "has_sig": false, "md5_digest": "9a83665c4ed799bc1539101531c40245", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7225, "upload_time": "2019-09-30T15:32:37", "upload_time_iso_8601": "2019-09-30T15:32:37.951334Z", "url": "https://files.pythonhosted.org/packages/fa/a2/3cc67693c4066604c292bdb6489e088590a9ee9e565ba87d28b8f67931b2/PyWave-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "ade3d90f7e6a37c93e2ee04c28ed709c", "sha256": "81dbbe64c805402cf9a71e44c327dcf00a3c7a9f22d50d5004a3def47c21c705" }, "downloads": -1, "filename": "PyWave-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ade3d90f7e6a37c93e2ee04c28ed709c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6978, "upload_time": "2019-10-22T18:51:36", "upload_time_iso_8601": "2019-10-22T18:51:36.041111Z", "url": "https://files.pythonhosted.org/packages/ef/3d/8bfbad2bb7c4325dc7b1367c21a4d650ec69f925343a11ac8abf7099cf7b/PyWave-0.4.1-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c89a3306162763a0e04e4454b7dc6b29", "sha256": "b2e628b84001b9d3d4fa94e45b304119d363634ff913be6b61f3a1aa80417ca4" }, "downloads": -1, "filename": "PyWave-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c89a3306162763a0e04e4454b7dc6b29", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7884, "upload_time": "2019-10-22T18:42:32", "upload_time_iso_8601": "2019-10-22T18:42:32.273163Z", "url": "https://files.pythonhosted.org/packages/22/7a/e9ac202bf38807dba616cc6161269b26741d3ca75db0e8e5838a793c1b32/PyWave-0.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "bd52f8755f525f64bb5c4253cb12af4e", "sha256": "e3395bab9e96d28f3266f9a321e2fdd0cf417ca58ce259e3ac97d9860295ba09" }, "downloads": -1, "filename": "PyWave-0.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bd52f8755f525f64bb5c4253cb12af4e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6990, "upload_time": "2021-01-01T20:36:20", "upload_time_iso_8601": "2021-01-01T20:36:20.520905Z", "url": "https://files.pythonhosted.org/packages/79/5d/29e6b3c6e7cca36215cef9affcd35fb53c6c2b7f5692dd1c2b77257a42fd/PyWave-0.4.2-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "13bc7bceb3a438220312f876639baa83", "sha256": "47255cc4ea76b1308568a040e5dc4c15090e0579d9ee9a639d1369739ccb3d8f" }, "downloads": -1, "filename": "PyWave-0.4.2.tar.gz", "has_sig": false, "md5_digest": "13bc7bceb3a438220312f876639baa83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7908, "upload_time": "2021-01-01T20:36:21", "upload_time_iso_8601": "2021-01-01T20:36:21.953189Z", "url": "https://files.pythonhosted.org/packages/47/b1/55000de28ce155f8bfbcdc64b3d936aebe6ab74eeddc4391f152cb416c1f/PyWave-0.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "f8f3e671f997f07f008134bd266f3489", "sha256": "d31bb468ff0501f0dacbe30c0d4c32aaf86d1421de2d5f08b50d428fca2bea48" }, "downloads": -1, "filename": "PyWave-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8f3e671f997f07f008134bd266f3489", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18847, "upload_time": "2021-03-14T07:33:02", "upload_time_iso_8601": "2021-03-14T07:33:02.730328Z", "url": "https://files.pythonhosted.org/packages/3c/1f/e2ea31e0c1ca511fe69912ce7af8db0c8b6425fe3c2a00867079b5c50005/PyWave-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9477844aad839388af0ddc7eed44d40f", "sha256": "f1592fd71be7e94a4da00f0254f346e8e867893d38c15ae1fdf1872eaf61c615" }, "downloads": -1, "filename": "PyWave-0.5.0.tar.gz", "has_sig": false, "md5_digest": "9477844aad839388af0ddc7eed44d40f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20446, "upload_time": "2021-03-14T07:33:04", "upload_time_iso_8601": "2021-03-14T07:33:04.099234Z", "url": "https://files.pythonhosted.org/packages/ca/cc/011f0f80e49cae1adc2e98e79b2393cc35b083fc2be5a9c47483510f6e66/PyWave-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f8f3e671f997f07f008134bd266f3489", "sha256": "d31bb468ff0501f0dacbe30c0d4c32aaf86d1421de2d5f08b50d428fca2bea48" }, "downloads": -1, "filename": "PyWave-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f8f3e671f997f07f008134bd266f3489", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18847, "upload_time": "2021-03-14T07:33:02", "upload_time_iso_8601": "2021-03-14T07:33:02.730328Z", "url": "https://files.pythonhosted.org/packages/3c/1f/e2ea31e0c1ca511fe69912ce7af8db0c8b6425fe3c2a00867079b5c50005/PyWave-0.5.0-py2.py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "9477844aad839388af0ddc7eed44d40f", "sha256": "f1592fd71be7e94a4da00f0254f346e8e867893d38c15ae1fdf1872eaf61c615" }, "downloads": -1, "filename": "PyWave-0.5.0.tar.gz", "has_sig": false, "md5_digest": "9477844aad839388af0ddc7eed44d40f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20446, "upload_time": "2021-03-14T07:33:04", "upload_time_iso_8601": "2021-03-14T07:33:04.099234Z", "url": "https://files.pythonhosted.org/packages/ca/cc/011f0f80e49cae1adc2e98e79b2393cc35b083fc2be5a9c47483510f6e66/PyWave-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }