{ "info": { "author": "Franz M. Heuchel", "author_email": "franz.heuchel@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Multimedia :: Sound/Audio", "Topic :: Utilities" ], "description": "\nResponse\n========\n\n[![](https://img.shields.io/pypi/l/response.svg?style=flat)](https://pypi.org/project/response/)\n[![](https://img.shields.io/pypi/v/response.svg?style=flat)](https://pypi.org/project/response/)\n[![travis-ci](https://travis-ci.org/fhchl/Response.svg?branch=master)](https://travis-ci.org/fhchl/Response)\n[![codecov](https://codecov.io/gh/fhchl/Response/branch/master/graph/badge.svg)](https://codecov.io/gh/fhchl/Response)\n\nThe response module defines the `Response` class as an abstraction of frequency and\nimpulse responses.\n\n```python\nimport numpy as np\nfrom response import Response\n\nfs = 48000 # sampling rate\nT = 0.5 # length of signal\n# a sine at 100 Hz\nt = np.arange(int(T * fs)) / fs\nx = np.sin(2 * np.pi * 100 * t)\n# Do chain of processing\nr = (\n Response.from_time(fs, x)\n # time window at the end and beginning\n .time_window((0, 0.1), (-0.1, None), window=\"hann\") # equivalent to Tukey window\n # zeropad to one second length\n .zeropad_to_length(fs * 1)\n # circular shift to center\n .circdelay(T / 2)\n # resample with polyphase filter, keep gain of filter\n .resample_poly(500, window=(\"kaiser\", 0.5), normalize=\"same_amplitude\")\n # cut 0.2s at beginning and end\n .timecrop(0.2, -0.2)\n # apply frequency domain window\n .freq_window((0, 90), (110, 500))\n)\n# plot result\nr.plot(show=True)\n# real impulse response\nr.in_time\n# complex frequency response\nr.in_freq\n# and much more ...\n```\n\nImplements a [fluent interface][1] for chaining processing commands. Find the API documentation [here][2].\n\n[1]: https://en.wikipedia.org/wiki/Fluent_interface\n[2]: https://fhchl.github.io/Response/\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/fhchl/Response", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "response", "package_url": "https://pypi.org/project/response/", "platform": "", "project_url": "https://pypi.org/project/response/", "project_urls": { "Homepage": "https://github.com/fhchl/Response" }, "release_url": "https://pypi.org/project/response/0.4.0/", "requires_dist": [ "numpy", "scipy", "matplotlib (>=2.2.0)" ], "requires_python": ">=3.6.0", "summary": "Your handy frequency and impulse response processing object", "version": "0.4.0" }, "last_serial": 5430778, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "83347db8a2bebf579f2e76c8df5cebde", "sha256": "96d354af4a8ca3796fbf444047ecf8e06ebf3cbf547c79f920b060e81f7d9217" }, "downloads": -1, "filename": "response-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "83347db8a2bebf579f2e76c8df5cebde", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 12140, "upload_time": "2019-02-07T11:09:16", "url": "https://files.pythonhosted.org/packages/9b/ad/e30f69924ee6169ffd62bfadc50cfeb679e365af339fd44d8fa716bd3ab0/response-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f017f236fc55080d78350b42f4c8909", "sha256": "f01ff7c7a989484771952489b11a29ab548a59b9d02fb24422f225ad370c1122" }, "downloads": -1, "filename": "response-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5f017f236fc55080d78350b42f4c8909", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 13017, "upload_time": "2019-02-07T11:09:18", "url": "https://files.pythonhosted.org/packages/e9/03/5b16114d00fb9cec46d3c468237650c099567adee9267fcd24ed06af310b/response-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "2ea53177c944f571b4289045ec98802a", "sha256": "5d11eb9a268ac8196aa4308d9af17d3e6d4f15a8084551455a665a6ebbe03868" }, "downloads": -1, "filename": "response-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2ea53177c944f571b4289045ec98802a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.6.0", "size": 12523, "upload_time": "2019-02-07T22:01:18", "url": "https://files.pythonhosted.org/packages/44/ae/371f39e8b97c1cd69bbbb4cc08cc74f4ced16d4d3e8d533a67fac5b16e0c/response-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a94e71726f521297a8ede00bc7cee2d", "sha256": "aa447d37c6f0afa5b008606a8c03f077da8fd687b18a80815353ef2180ae3853" }, "downloads": -1, "filename": "response-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0a94e71726f521297a8ede00bc7cee2d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 13414, "upload_time": "2019-02-07T22:01:19", "url": "https://files.pythonhosted.org/packages/a8/55/315aec6b99ca8d1b6c681b111ecdb261478246d4fd5cbad3c7da4007e9f6/response-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d8d73b191835f417c10a4a39e2d41877", "sha256": "6ae07f57cdffc8a8bcadc94eee1fc5fa6d9731e95a921a0226a2eeab0fcecffa" }, "downloads": -1, "filename": "response-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "d8d73b191835f417c10a4a39e2d41877", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 12854, "upload_time": "2019-02-08T11:06:17", "url": "https://files.pythonhosted.org/packages/07/45/1b8cf89bae758c742a3c246fb43e0a84345797fcb91589ef4bcd4a958720/response-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1c211e3bebc2db420490ad9c6ad088b", "sha256": "34b4f1c129b72a4c221806735b5518dd5acf33c32b5acfe1f8b39ca913c96c74" }, "downloads": -1, "filename": "response-0.2.0.tar.gz", "has_sig": false, "md5_digest": "b1c211e3bebc2db420490ad9c6ad088b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 13687, "upload_time": "2019-02-08T11:06:19", "url": "https://files.pythonhosted.org/packages/49/e2/1c6c2da4ccc7ee8171fc4564b8db2d7bf4e53c7eb5fb545790984527dba2/response-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "ffd08119ab5d15d97da60fc3da522cb8", "sha256": "484075fd75716b81b5f2cc66a33aa586bf833670e7f277ccdf2010425a380c2a" }, "downloads": -1, "filename": "response-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ffd08119ab5d15d97da60fc3da522cb8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 14204, "upload_time": "2019-02-27T14:57:12", "url": "https://files.pythonhosted.org/packages/ee/bd/5f2a83902b91bc800f69df0e458e5ac739550a1168db04f2b3e0a0d5abbb/response-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c7147746906cad789827c895501442e", "sha256": "0364dc7594e0bc1a5d51635f4ec8135acf7c9f9fc841e9179ffe370fb60d7efb" }, "downloads": -1, "filename": "response-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2c7147746906cad789827c895501442e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 14576, "upload_time": "2019-02-27T14:57:14", "url": "https://files.pythonhosted.org/packages/b7/d4/330095570bf6150bc3a4657e18ac7a0274e4384b8db99296bcbffc367009/response-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "8d3f95d08eadaa549716cfcb20f9c5e0", "sha256": "70544ea0303a94e5072c71412328150abd818d36004c0664cdc07045cf897984" }, "downloads": -1, "filename": "response-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8d3f95d08eadaa549716cfcb20f9c5e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 13645, "upload_time": "2019-06-21T13:07:59", "url": "https://files.pythonhosted.org/packages/e1/32/b5bd492d59077954247d229f53f27d189a1cd5967d68d8df34a272586a13/response-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af5e2cc9d8a4ed2eda0df2c441a15278", "sha256": "9ec345f92983d21091a79eb8660cb58bef5fef08b220eb2c0eea44b3a0fe8f93" }, "downloads": -1, "filename": "response-0.4.0.tar.gz", "has_sig": false, "md5_digest": "af5e2cc9d8a4ed2eda0df2c441a15278", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 14409, "upload_time": "2019-06-21T13:08:00", "url": "https://files.pythonhosted.org/packages/f9/d2/319878686e0e42fc312c67fa05ededdd4aef046f0578c0c732073d97c7d1/response-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8d3f95d08eadaa549716cfcb20f9c5e0", "sha256": "70544ea0303a94e5072c71412328150abd818d36004c0664cdc07045cf897984" }, "downloads": -1, "filename": "response-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8d3f95d08eadaa549716cfcb20f9c5e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 13645, "upload_time": "2019-06-21T13:07:59", "url": "https://files.pythonhosted.org/packages/e1/32/b5bd492d59077954247d229f53f27d189a1cd5967d68d8df34a272586a13/response-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af5e2cc9d8a4ed2eda0df2c441a15278", "sha256": "9ec345f92983d21091a79eb8660cb58bef5fef08b220eb2c0eea44b3a0fe8f93" }, "downloads": -1, "filename": "response-0.4.0.tar.gz", "has_sig": false, "md5_digest": "af5e2cc9d8a4ed2eda0df2c441a15278", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 14409, "upload_time": "2019-06-21T13:08:00", "url": "https://files.pythonhosted.org/packages/f9/d2/319878686e0e42fc312c67fa05ededdd4aef046f0578c0c732073d97c7d1/response-0.4.0.tar.gz" } ] }