# Python-SoXR
[![GitHub](https://img.shields.io/badge/GitHub-python--soxr-181717?logo=github)](https://github.com/dofuuz/python-soxr) [![PyPI](https://img.shields.io/pypi/v/soxr.svg?logo=pypi)](https://pypi.org/project/soxr/) [![conda-forge](https://img.shields.io/conda/vn/conda-forge/soxr-python?logo=conda-forge)](https://anaconda.org/conda-forge/soxr-python) [![Packaging status](https://repology.org/badge/tiny-repos/python:soxr.svg)](https://repology.org/project/python:soxr/versions) [![Read the Docs](https://img.shields.io/readthedocs/python-soxr?logo=read-the-docs)](https://python-soxr.readthedocs.io)
High quality, one-dimensional sample-rate conversion library for Python.
- Homepage: https://github.com/dofuuz/python-soxr
- Documentation: https://python-soxr.readthedocs.io
- PyPI: https://pypi.org/project/soxr/
Keywords: Resampler, Audio resampling, Samplerate conversion, DSP(Digital Signal Processing)
Python-SoXR is a Python wrapper of [libsoxr](https://sourceforge.net/projects/soxr/).
## Installation
```
pip install soxr
```
If installation fails, upgrade pip with `python -m pip install --upgrade pip` and try again.
### in Conda environment
```
conda install -c conda-forge soxr-python
```
Note: Conda packge name is `soxr-python`, not python-soxr.
## Basic usage
```python
import soxr
y = soxr.resample(
x, # 1D(mono) or 2D(frames, channels) array input
48000, # input samplerate
16000 # target samplerate
)
```
If input is not `numpy.ndarray`, it will be converted to `numpy.ndarray(dtype='float32')`.
dtype should be one of float32, float64, int16, int32.
Output is `numpy.ndarray` with same dimension and data type of input.
## Streaming usage
Use `ResampleStream` for real-time processing or very long signal.
```python
import soxr
rs = soxr.ResampleStream(
44100, # input samplerate
16000, # target samplerate
1, # channel(s)
dtype='float32' # data type (default = 'float32')
)
eof = False
while not eof:
# Get chunk
...
y_chunk = rs.resample_chunk(
x, # 1D(mono) or 2D(frames, channels) array input
last=eof # Set True at end of input
)
```
Output frame count may not be consistent. This is normal operation.
(ex. [0, 0, 0, 186, 186, 166, 186, 186, 168, ...])
## Requirement
x86 and ARM processors are supported.
Neon extension is required for ARM CPUs. Without Neon, it may crash or return inaccurate result.
## Benchmark
Sweep, impulse, speed compairsion with other Python resamplers.
https://colab.research.google.com/drive/1XgSOvWlRIau1FYwQG_yRSAhDK3KB8bEL?usp=sharing
### Speed comparison summary
Downsampling 10 sec of 48000 Hz to 44100 Hz.
Ran on Google Colab.
Library | Time on CPU (ms)
------------------------ | ----------------
soxr (HQ) | 7.2
scipy.signal.resample | 13.4
soxr (VHQ) | 15.8
torchaudio | 19.2
lilfilter | 21.4
julius | 23.1
resampy (kaiser_fast) | 62.6
samplerate (sinc_medium) | 92.5
resampy (kaiser_best) | 256
samplerate (sinc_best) | 397
## Technical detail
For technical details behind resampler, see libsoxr docs.
- https://sourceforge.net/p/soxr/wiki/Home/
- http://sox.sourceforge.net/SoX/Resampling
- https://sourceforge.net/p/soxr/code/ci/master/tree/src/soxr.h
Python-SoXR uses [forked version](https://github.com/dofuuz/soxr) of libsoxr. [See difference here](https://github.com/dofuuz/soxr/compare/0.1.3...master).
These changes does not apply to dynamic linked builds(e.g. conda-forge build)
## Credit and License
Python-SoXR is LGPL v2.1+ licensed, following libsoxr's license.
### OSS libraries used
#### libsoxr (LGPLv2.1+)
The SoX Resampler library
https://sourceforge.net/projects/soxr/
Python-SoXR is a Python wrapper of libsoxr.
#### PFFFT (BSD-like)
PFFFT: a pretty fast FFT.
https://bitbucket.org/jpommier/pffft/
libsoxr dependency.
Raw data
{
"_id": null,
"home_page": "https://github.com/dofuuz/python-soxr",
"name": "soxr",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "audio resampling,samplerate conversion,SRC,signal processing,resampler",
"author": "Myungchul Keum",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/49/31/f24193672d07964cbf85f2e7af3b45936e1c76e44eb5ad97199865e2dcf8/soxr-0.3.7.tar.gz",
"platform": null,
"description": "# Python-SoXR\n\n[![GitHub](https://img.shields.io/badge/GitHub-python--soxr-181717?logo=github)](https://github.com/dofuuz/python-soxr) [![PyPI](https://img.shields.io/pypi/v/soxr.svg?logo=pypi)](https://pypi.org/project/soxr/) [![conda-forge](https://img.shields.io/conda/vn/conda-forge/soxr-python?logo=conda-forge)](https://anaconda.org/conda-forge/soxr-python) [![Packaging status](https://repology.org/badge/tiny-repos/python:soxr.svg)](https://repology.org/project/python:soxr/versions) [![Read the Docs](https://img.shields.io/readthedocs/python-soxr?logo=read-the-docs)](https://python-soxr.readthedocs.io)\n\nHigh quality, one-dimensional sample-rate conversion library for Python.\n\n- Homepage: https://github.com/dofuuz/python-soxr\n- Documentation: https://python-soxr.readthedocs.io\n- PyPI: https://pypi.org/project/soxr/\n\nKeywords: Resampler, Audio resampling, Samplerate conversion, DSP(Digital Signal Processing)\n\nPython-SoXR is a Python wrapper of [libsoxr](https://sourceforge.net/projects/soxr/).\n\n\n## Installation\n\n```\npip install soxr\n```\n\nIf installation fails, upgrade pip with `python -m pip install --upgrade pip` and try again.\n\n\n### in Conda environment\n\n```\nconda install -c conda-forge soxr-python\n```\n\nNote: Conda packge name is `soxr-python`, not python-soxr.\n\n\n## Basic usage\n\n```python\nimport soxr\n\ny = soxr.resample(\n x, # 1D(mono) or 2D(frames, channels) array input\n 48000, # input samplerate\n 16000 # target samplerate\n)\n```\nIf input is not `numpy.ndarray`, it will be converted to `numpy.ndarray(dtype='float32')`. \ndtype should be one of float32, float64, int16, int32.\n\nOutput is `numpy.ndarray` with same dimension and data type of input.\n\n\n## Streaming usage\n\nUse `ResampleStream` for real-time processing or very long signal.\n\n```python\nimport soxr\n\nrs = soxr.ResampleStream(\n 44100, # input samplerate\n 16000, # target samplerate\n 1, # channel(s)\n dtype='float32' # data type (default = 'float32')\n)\n\neof = False\nwhile not eof:\n # Get chunk\n ...\n\n y_chunk = rs.resample_chunk(\n x, # 1D(mono) or 2D(frames, channels) array input\n last=eof # Set True at end of input\n )\n```\n\nOutput frame count may not be consistent. This is normal operation. \n(ex. [0, 0, 0, 186, 186, 166, 186, 186, 168, ...])\n\n\n## Requirement\n\nx86 and ARM processors are supported.\n\nNeon extension is required for ARM CPUs. Without Neon, it may crash or return inaccurate result.\n\n\n## Benchmark\n\nSweep, impulse, speed compairsion with other Python resamplers.\n\nhttps://colab.research.google.com/drive/1XgSOvWlRIau1FYwQG_yRSAhDK3KB8bEL?usp=sharing\n\n\n### Speed comparison summary\n\nDownsampling 10 sec of 48000 Hz to 44100 Hz. \nRan on Google Colab.\n\nLibrary | Time on CPU (ms)\n------------------------ | ----------------\nsoxr (HQ) | 7.2\nscipy.signal.resample | 13.4\nsoxr (VHQ) | 15.8\ntorchaudio | 19.2\nlilfilter | 21.4\njulius | 23.1\nresampy (kaiser_fast) | 62.6\nsamplerate (sinc_medium) | 92.5\nresampy (kaiser_best) | 256\nsamplerate (sinc_best) | 397\n\n\n## Technical detail\n\nFor technical details behind resampler, see libsoxr docs.\n- https://sourceforge.net/p/soxr/wiki/Home/\n- http://sox.sourceforge.net/SoX/Resampling\n- https://sourceforge.net/p/soxr/code/ci/master/tree/src/soxr.h\n\nPython-SoXR uses [forked version](https://github.com/dofuuz/soxr) of libsoxr. [See difference here](https://github.com/dofuuz/soxr/compare/0.1.3...master). \nThese changes does not apply to dynamic linked builds(e.g. conda-forge build)\n\n\n## Credit and License\n\nPython-SoXR is LGPL v2.1+ licensed, following libsoxr's license.\n\n### OSS libraries used\n\n#### libsoxr (LGPLv2.1+)\nThe SoX Resampler library \nhttps://sourceforge.net/projects/soxr/\n\nPython-SoXR is a Python wrapper of libsoxr.\n\n#### PFFFT (BSD-like)\nPFFFT: a pretty fast FFT. \nhttps://bitbucket.org/jpommier/pffft/ \n\nlibsoxr dependency.\n",
"bugtrack_url": null,
"license": "LGPLv2.1+",
"summary": "High quality, one-dimensional sample-rate conversion library",
"version": "0.3.7",
"project_urls": {
"Bug Tracker": "https://github.com/dofuuz/python-soxr/issues",
"Documentation": "https://python-soxr.readthedocs.io",
"Homepage": "https://github.com/dofuuz/python-soxr",
"Source": "https://github.com/dofuuz/python-soxr"
},
"split_keywords": [
"audio resampling",
"samplerate conversion",
"src",
"signal processing",
"resampler"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "2232c8f8c60d91db642ee2ecf86656a35bd5463b12b54cc72f3161750e2539d3",
"md5": "176abd1974d0b6db2cd9ca3b8ef336ab",
"sha256": "ac81c4af6a993d5b7c0b466bbac4835bad2b14ec32f342b2c1f83e4cf825e301"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "176abd1974d0b6db2cd9ca3b8ef336ab",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 414127,
"upload_time": "2023-10-05T02:35:44",
"upload_time_iso_8601": "2023-10-05T02:35:44.432425Z",
"url": "https://files.pythonhosted.org/packages/22/32/c8f8c60d91db642ee2ecf86656a35bd5463b12b54cc72f3161750e2539d3/soxr-0.3.7-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bc382635bcf180de54457d64a6b348b3e421f469aee7edafead2306a6e74cc1a",
"md5": "ff3432853aeac11df6ab0b014bb0f90d",
"sha256": "8d8a2b3e7f8d0255e2484fb82cb66c86da6fb25b342ef793cceca9ce9a61aa16"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ff3432853aeac11df6ab0b014bb0f90d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 390040,
"upload_time": "2023-10-05T02:35:46",
"upload_time_iso_8601": "2023-10-05T02:35:46.164103Z",
"url": "https://files.pythonhosted.org/packages/bc/38/2635bcf180de54457d64a6b348b3e421f469aee7edafead2306a6e74cc1a/soxr-0.3.7-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c02a1c492e2ffa0cddabef105332d488e647b8d1315a21cb881e3671a2812880",
"md5": "96c36ae42068c5104ccf0a1a287e055b",
"sha256": "a0cd6eb6f6bbda2e8de36672cf2f0529ced6e638773150744ef075be0cc4f52c"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "96c36ae42068c5104ccf0a1a287e055b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 1216295,
"upload_time": "2023-10-05T02:35:47",
"upload_time_iso_8601": "2023-10-05T02:35:47.847055Z",
"url": "https://files.pythonhosted.org/packages/c0/2a/1c492e2ffa0cddabef105332d488e647b8d1315a21cb881e3671a2812880/soxr-0.3.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "31f7d95b816c47dca6a068305fb7176b8c8d2c94bbc6cce6dcc296c6cf98660f",
"md5": "f97869b8d0e680a094e120159158ef12",
"sha256": "e47d86af35b942c92606fc2d5dfccf3f01309329475571ae2312bbf9edc3a790"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "f97869b8d0e680a094e120159158ef12",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 1238709,
"upload_time": "2023-10-05T02:35:49",
"upload_time_iso_8601": "2023-10-05T02:35:49.660280Z",
"url": "https://files.pythonhosted.org/packages/31/f7/d95b816c47dca6a068305fb7176b8c8d2c94bbc6cce6dcc296c6cf98660f/soxr-0.3.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3ce789951b917600d02f7389e760696c32b70a80a96301d0a018a70a317e4ecc",
"md5": "184707a2b627326f5692846d63fc51f5",
"sha256": "0e291adfaf9f2a7c4dd180a1b8c280f9beb1c84cb381853e4f4b3434d002ed7f"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "184707a2b627326f5692846d63fc51f5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.6",
"size": 184591,
"upload_time": "2023-10-05T02:35:51",
"upload_time_iso_8601": "2023-10-05T02:35:51.441636Z",
"url": "https://files.pythonhosted.org/packages/3c/e7/89951b917600d02f7389e760696c32b70a80a96301d0a018a70a317e4ecc/soxr-0.3.7-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1c5a61572e3d1f5dd4c9c0a32d9f7f57b7b6089222227c881fe0945cf955261f",
"md5": "e8400d0d088b6126a6e74921e20ef3de",
"sha256": "9e811450f0e91972932bd37ac58e32e44002c2c99db2aa926a9e7ba164545034"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "e8400d0d088b6126a6e74921e20ef3de",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 414444,
"upload_time": "2023-10-05T02:35:52",
"upload_time_iso_8601": "2023-10-05T02:35:52.847835Z",
"url": "https://files.pythonhosted.org/packages/1c/5a/61572e3d1f5dd4c9c0a32d9f7f57b7b6089222227c881fe0945cf955261f/soxr-0.3.7-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d079c93daceac24cd6830333d9f3d04716115240ef3be4e8d8ece511afbcf417",
"md5": "5676179e45880512cbe3a61525fa248f",
"sha256": "9cea63014ce91035074e1228c9340e2b8609faf964e268705fcac5135d05060c"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5676179e45880512cbe3a61525fa248f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 390460,
"upload_time": "2023-10-05T02:35:54",
"upload_time_iso_8601": "2023-10-05T02:35:54.592791Z",
"url": "https://files.pythonhosted.org/packages/d0/79/c93daceac24cd6830333d9f3d04716115240ef3be4e8d8ece511afbcf417/soxr-0.3.7-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "add76ec56e463e74764a9b9c2cc2645788991d7ce6c82cd40ff002e5fd6694bc",
"md5": "9808aaa80c63e2fd95802703951ae043",
"sha256": "bfab27830f6217a15b83445988225c3aeea3bbccfa9399ced291e53e1b05925d"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "9808aaa80c63e2fd95802703951ae043",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 1287621,
"upload_time": "2023-10-05T02:35:56",
"upload_time_iso_8601": "2023-10-05T02:35:56.017531Z",
"url": "https://files.pythonhosted.org/packages/ad/d7/6ec56e463e74764a9b9c2cc2645788991d7ce6c82cd40ff002e5fd6694bc/soxr-0.3.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2b97cbce72f9c8b5c9c667eb55dc55be20a87c610dba55c0466c77498c1a8c97",
"md5": "97dfc44f2e7ee3e0146f18f53537babd",
"sha256": "286858e3078d76c11b6d490b66fed3c9bb2a4229759f6be03ceef5c02189bf2c"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "97dfc44f2e7ee3e0146f18f53537babd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 1298574,
"upload_time": "2023-10-05T02:35:57",
"upload_time_iso_8601": "2023-10-05T02:35:57.819814Z",
"url": "https://files.pythonhosted.org/packages/2b/97/cbce72f9c8b5c9c667eb55dc55be20a87c610dba55c0466c77498c1a8c97/soxr-0.3.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0d958398287a3a00d006ebbe5fcada88bb2536acde2beecce892ff091e1c1a3b",
"md5": "633d59948b16294c29afc5b135489fcd",
"sha256": "54985ff33292192d2937be80df3e5f3a44d6d53e6835f727d6b99b7cdd3f1611"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "633d59948b16294c29afc5b135489fcd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.6",
"size": 184720,
"upload_time": "2023-10-05T02:35:59",
"upload_time_iso_8601": "2023-10-05T02:35:59.028653Z",
"url": "https://files.pythonhosted.org/packages/0d/95/8398287a3a00d006ebbe5fcada88bb2536acde2beecce892ff091e1c1a3b/soxr-0.3.7-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "042adfb7e28335e9715d0494a7f896f4a5ae70e42761ca7740392dd52fa8c133",
"md5": "cab89d35b8f9f3247ac71ab12e342b26",
"sha256": "83c74ef6d61d7dcd81be26f91bee0a420f792f5c1982266f2a80e655f0650a98"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "cab89d35b8f9f3247ac71ab12e342b26",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 413863,
"upload_time": "2023-10-05T02:36:00",
"upload_time_iso_8601": "2023-10-05T02:36:00.142238Z",
"url": "https://files.pythonhosted.org/packages/04/2a/dfb7e28335e9715d0494a7f896f4a5ae70e42761ca7740392dd52fa8c133/soxr-0.3.7-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d65b14ff65df4ba5663b69ddc6e80bc10c0c98f67c3cfd9a3aa435ab8bde3b92",
"md5": "a6f9c2cbec9a673b804076b6c0eb56e7",
"sha256": "cb1e14663a43fe88b8fbc287822a159028366a820abe1a0a9670fb53618cb47b"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "a6f9c2cbec9a673b804076b6c0eb56e7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 390167,
"upload_time": "2023-10-05T02:36:01",
"upload_time_iso_8601": "2023-10-05T02:36:01.935460Z",
"url": "https://files.pythonhosted.org/packages/d6/5b/14ff65df4ba5663b69ddc6e80bc10c0c98f67c3cfd9a3aa435ab8bde3b92/soxr-0.3.7-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7a1a1287a8d6a470d1ce5084269ec7ac17dfc8eeb3e48bec3bd0be0eefed8ed4",
"md5": "2218b52e6916b22440e54d90fed1ace1",
"sha256": "48acdfbcf870ab54f645b1cfd641bce92c1e3a67346c3bf0f6c0ad2873c1dd35"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "2218b52e6916b22440e54d90fed1ace1",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 1270769,
"upload_time": "2023-10-05T02:36:03",
"upload_time_iso_8601": "2023-10-05T02:36:03.351463Z",
"url": "https://files.pythonhosted.org/packages/7a/1a/1287a8d6a470d1ce5084269ec7ac17dfc8eeb3e48bec3bd0be0eefed8ed4/soxr-0.3.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1b5154a6bbb3c0e80b7f59a7e30a4643fef18f43b75ce30512a6baf4afb8d490",
"md5": "5e257f48ab926c0d031c614ac60c961b",
"sha256": "ea663b76f2b0ec1576b8a43aef317aec080abc0a67a4015fcd9f3407039f260a"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "5e257f48ab926c0d031c614ac60c961b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 1298776,
"upload_time": "2023-10-05T02:36:05",
"upload_time_iso_8601": "2023-10-05T02:36:05.375978Z",
"url": "https://files.pythonhosted.org/packages/1b/51/54a6bbb3c0e80b7f59a7e30a4643fef18f43b75ce30512a6baf4afb8d490/soxr-0.3.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "863315edab5cd5299238c2b5c67031472108374b8fbd4b488843919cc7a03698",
"md5": "7957b4b10841993ae9507a9a8a5b9828",
"sha256": "42da0d9eb79c70e5a41917f1b48a032e241a48eb4a1bcea7c80577302ff26974"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "7957b4b10841993ae9507a9a8a5b9828",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.6",
"size": 184068,
"upload_time": "2023-10-05T02:36:06",
"upload_time_iso_8601": "2023-10-05T02:36:06.897810Z",
"url": "https://files.pythonhosted.org/packages/86/33/15edab5cd5299238c2b5c67031472108374b8fbd4b488843919cc7a03698/soxr-0.3.7-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1b937d79c305d8af2ee1991155247ad9bfe5aa90babcc1104b954fad3cfb645c",
"md5": "d6980b487c3002fbdb1b61d3cd5cbe41",
"sha256": "511c6b2279c8ddd83459d129d69f628f7aae4616ae0a1912963985bd89e35df7"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp37-cp37m-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "d6980b487c3002fbdb1b61d3cd5cbe41",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.6",
"size": 411315,
"upload_time": "2023-10-05T02:36:08",
"upload_time_iso_8601": "2023-10-05T02:36:08.503617Z",
"url": "https://files.pythonhosted.org/packages/1b/93/7d79c305d8af2ee1991155247ad9bfe5aa90babcc1104b954fad3cfb645c/soxr-0.3.7-cp37-cp37m-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bc0484d07ef46ab0aa8d8aafe25de9a610f87d67703d3aa9b7ddc3a5ce49092e",
"md5": "13d6e2a9abd2c579aa1d6d8dfbb5adc8",
"sha256": "a37c518c0b5d70162956d808d6c2e249bae0672e414e0dcfc101e200d8c31f3c"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "13d6e2a9abd2c579aa1d6d8dfbb5adc8",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.6",
"size": 1167932,
"upload_time": "2023-10-05T02:36:09",
"upload_time_iso_8601": "2023-10-05T02:36:09.817457Z",
"url": "https://files.pythonhosted.org/packages/bc/04/84d07ef46ab0aa8d8aafe25de9a610f87d67703d3aa9b7ddc3a5ce49092e/soxr-0.3.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ba6d412ec405c89e3a11f7f3ea9bc1f535c989cd3585a67453ad5a996bd76605",
"md5": "d0a948656aafb2493d0f9950c0d3eb1c",
"sha256": "27f2890528d2b2e358938ab660a6b8346802863f5b6b646204d7ff8ab0ca2c66"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "d0a948656aafb2493d0f9950c0d3eb1c",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.6",
"size": 1192022,
"upload_time": "2023-10-05T02:36:12",
"upload_time_iso_8601": "2023-10-05T02:36:12.267037Z",
"url": "https://files.pythonhosted.org/packages/ba/6d/412ec405c89e3a11f7f3ea9bc1f535c989cd3585a67453ad5a996bd76605/soxr-0.3.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "156f622f56320a24c7113e1d1149dc38e989cae171fca0d0d8b229a329f641be",
"md5": "ce5fc6cb293d98df9792295b88376e65",
"sha256": "52467c8c012495544a6dcfcce6b5bcbbc653d24fe9bb33c0b6191acecdb5e297"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp37-cp37m-win_amd64.whl",
"has_sig": false,
"md5_digest": "ce5fc6cb293d98df9792295b88376e65",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": ">=3.6",
"size": 183223,
"upload_time": "2023-10-05T02:36:13",
"upload_time_iso_8601": "2023-10-05T02:36:13.585895Z",
"url": "https://files.pythonhosted.org/packages/15/6f/622f56320a24c7113e1d1149dc38e989cae171fca0d0d8b229a329f641be/soxr-0.3.7-cp37-cp37m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3969b1cd2acc3642873b836e12197343e52cd5626d0820441092438c6890901a",
"md5": "c1636c2823bb2d80d9ce62759e57b2ff",
"sha256": "ce12b93747958f2769d6b297e6e27c73d9ad635fe8104ef052bece9c8a322824"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c1636c2823bb2d80d9ce62759e57b2ff",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 413051,
"upload_time": "2023-10-05T02:36:14",
"upload_time_iso_8601": "2023-10-05T02:36:14.692047Z",
"url": "https://files.pythonhosted.org/packages/39/69/b1cd2acc3642873b836e12197343e52cd5626d0820441092438c6890901a/soxr-0.3.7-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d33d04a8be9e776bd7c39634066927f3eeed5134e3c3f6c1e6211ce6b69e6025",
"md5": "8b31a0f45b68967c24797e0ddd85116d",
"sha256": "1cd65dc7b96ea3cb6c8c48e6020e859680556cc42dd3d4de44779530cce21037"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp38-cp38-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "8b31a0f45b68967c24797e0ddd85116d",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 389443,
"upload_time": "2023-10-05T02:36:16",
"upload_time_iso_8601": "2023-10-05T02:36:16.511110Z",
"url": "https://files.pythonhosted.org/packages/d3/3d/04a8be9e776bd7c39634066927f3eeed5134e3c3f6c1e6211ce6b69e6025/soxr-0.3.7-cp38-cp38-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7090872f5a4277fc43ca5643cd9919d8de8d3c392fdd03fc09861669e6c1f2ff",
"md5": "44d22033adc2bb1182fd82e89c9d1a3f",
"sha256": "d994f1a7690b1b13ab639ea33e0c1d78415b64d88d6df4af705a9443f97b9687"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "44d22033adc2bb1182fd82e89c9d1a3f",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 1246233,
"upload_time": "2023-10-05T02:36:17",
"upload_time_iso_8601": "2023-10-05T02:36:17.890454Z",
"url": "https://files.pythonhosted.org/packages/70/90/872f5a4277fc43ca5643cd9919d8de8d3c392fdd03fc09861669e6c1f2ff/soxr-0.3.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ce6bf9ac173f4365d52d247df1e4727c932d241b4e8b04f0820b1d5c44ba18c8",
"md5": "0da2ffc531fc53914b56db4f844e77aa",
"sha256": "e87b58bc9e8c2caa16f07726f666bd043f0a49ca937baa803ce7708003b27833"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0da2ffc531fc53914b56db4f844e77aa",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 1269620,
"upload_time": "2023-10-05T02:36:19",
"upload_time_iso_8601": "2023-10-05T02:36:19.052951Z",
"url": "https://files.pythonhosted.org/packages/ce/6b/f9ac173f4365d52d247df1e4727c932d241b4e8b04f0820b1d5c44ba18c8/soxr-0.3.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e28fbd1c42ae58a41a7f30f908659b510d27b30657312e64d8005f234450d529",
"md5": "a0a0c8984369114a88775dcfa088eecb",
"sha256": "07f4c0c6125ea1482fa187ad5f007216712ee0a93586a9b2f80e79c0bf944cf7"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "a0a0c8984369114a88775dcfa088eecb",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.6",
"size": 184966,
"upload_time": "2023-10-05T02:36:20",
"upload_time_iso_8601": "2023-10-05T02:36:20.312977Z",
"url": "https://files.pythonhosted.org/packages/e2/8f/bd1c42ae58a41a7f30f908659b510d27b30657312e64d8005f234450d529/soxr-0.3.7-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "bba068de2c18fd5079f979ece27b40b86f388c3083f491386d47731c610f3341",
"md5": "a31331f5299c3c8f5cd00c32743028d0",
"sha256": "e5267c3ba34d4b873d9bbe3a9e58418b01ae4fd04349a4f944d9943b9ddac0f7"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "a31331f5299c3c8f5cd00c32743028d0",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 413987,
"upload_time": "2023-10-05T02:36:21",
"upload_time_iso_8601": "2023-10-05T02:36:21.957054Z",
"url": "https://files.pythonhosted.org/packages/bb/a0/68de2c18fd5079f979ece27b40b86f388c3083f491386d47731c610f3341/soxr-0.3.7-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3e867fd03c9f2a825a1434ba1a5097e793fdb431571beaefcd7030d013dca707",
"md5": "ad5fbd0075d73912cc68a4f732a9ed26",
"sha256": "6e39668c250e221db888cf3b290a16fbe10a702d9a4eb604a127f720040de583"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ad5fbd0075d73912cc68a4f732a9ed26",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 390064,
"upload_time": "2023-10-05T02:36:23",
"upload_time_iso_8601": "2023-10-05T02:36:23.045743Z",
"url": "https://files.pythonhosted.org/packages/3e/86/7fd03c9f2a825a1434ba1a5097e793fdb431571beaefcd7030d013dca707/soxr-0.3.7-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ab8dd228996ae2d35944f7f79792e0a45a7446e59b4b09367380db5a006cdfd8",
"md5": "8efed6b0f4e37e8464c1d092a0eb6f00",
"sha256": "f8ceeb74e5a55d903cc286d3bd12c2d8f8c85d02894071e9ec92ab405430907c"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "8efed6b0f4e37e8464c1d092a0eb6f00",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 1220544,
"upload_time": "2023-10-05T02:36:24",
"upload_time_iso_8601": "2023-10-05T02:36:24.235213Z",
"url": "https://files.pythonhosted.org/packages/ab/8d/d228996ae2d35944f7f79792e0a45a7446e59b4b09367380db5a006cdfd8/soxr-0.3.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "be1a845d95266ea63ff402121ac5d1d48261bebfd20f45dbd24ce08fb712bf47",
"md5": "62ff321cbbe4d52411fe436bde13179d",
"sha256": "0eed6bf58192dd1bb93becd2444de4d712689713d727b32fd55623ae9aae7df7"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "62ff321cbbe4d52411fe436bde13179d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 1239697,
"upload_time": "2023-10-05T02:36:25",
"upload_time_iso_8601": "2023-10-05T02:36:25.494818Z",
"url": "https://files.pythonhosted.org/packages/be/1a/845d95266ea63ff402121ac5d1d48261bebfd20f45dbd24ce08fb712bf47/soxr-0.3.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ba1f1a343ff7d37b00931f76f629ea121df6b639d80765d67b41faa521ce692",
"md5": "5a1b3e0d6bb952203022b828398945b1",
"sha256": "7221302b4547d02a3f38dd3cd15317ab2b78873c75921db5f4a070848f0c71be"
},
"downloads": -1,
"filename": "soxr-0.3.7-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "5a1b3e0d6bb952203022b828398945b1",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.6",
"size": 184793,
"upload_time": "2023-10-05T02:36:26",
"upload_time_iso_8601": "2023-10-05T02:36:26.983573Z",
"url": "https://files.pythonhosted.org/packages/8b/a1/f1a343ff7d37b00931f76f629ea121df6b639d80765d67b41faa521ce692/soxr-0.3.7-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4931f24193672d07964cbf85f2e7af3b45936e1c76e44eb5ad97199865e2dcf8",
"md5": "5098dda6177eb8ef7033958eb08e14ed",
"sha256": "436ddff00c6eb2c75b79c19cfdca7527b1e31b5fad738652f044045ba6258593"
},
"downloads": -1,
"filename": "soxr-0.3.7.tar.gz",
"has_sig": false,
"md5_digest": "5098dda6177eb8ef7033958eb08e14ed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 296432,
"upload_time": "2023-10-05T02:36:28",
"upload_time_iso_8601": "2023-10-05T02:36:28.674891Z",
"url": "https://files.pythonhosted.org/packages/49/31/f24193672d07964cbf85f2e7af3b45936e1c76e44eb5ad97199865e2dcf8/soxr-0.3.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-05 02:36:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dofuuz",
"github_project": "python-soxr",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "soxr"
}