symusic


Namesymusic JSON
Version 0.4.5 PyPI version JSON
download
home_pageNone
SummaryA high performance MIDI file parser with comprehensible interface.
upload_time2024-04-12 13:24:55
maintainerNathan Fradet
docs_urlNone
authorNathan Fradet
requires_python>=3.8
licenseMIT License Copyright (c) 2023 廖奕凯 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords midi music mir
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # [symusic](https://github.com/Yikai-Liao/symusic)
[![Build and upload to PyPI](https://github.com/Yikai-Liao/symusic/actions/workflows/wheel.yml/badge.svg?branch=main)](https://github.com/Yikai-Liao/symusic/actions/workflows/wheel.yml) [![PyPI version](https://badge.fury.io/py/symusic.svg)](https://badge.fury.io/py/symusic) [![Downloads](https://static.pepy.tech/badge/symusic)](https://pepy.tech/project/symusic) [![Page Views Count](https://badges.toozhao.com/badges/01HGE1345YAKN4YV7WF0JRKZJK/blue.svg)](https://badges.toozhao.com/stats/01HGE1345YAKN4YV7WF0JRKZJK "Get your own page views count badge on badges.toozhao.com") <a target="_blank" href="https://colab.research.google.com/github/Yikai-Liao/symusic/blob/main/tutorial.ipynb">
  <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
</a>

**Sy**music("**Sy**bolic **Music**") is a cross-platform `note level` midi decoding library with lightening speed, which is hundreds of times faster (100x to 1000x depending on your file size) than [mido](https://github.com/mido/mido), the main midi parsing library in python.

The library is written in cpp and based on [minimidi](https://github.com/lzqlzzq/minimidi/tree/main). It offers a python binding using pybind11.

Here, we have added a tutorial.ipynb for you to learn about how to use the library. <a target="_blank" href="https://colab.research.google.com/github/Yikai-Liao/symusic/blob/main/tutorial.ipynb">
  <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/>
</a>

And a [document](https://yikai-liao.github.io/symusic/) is also available. Not complete though.

## Features

* You can just read a midi file like `score = symusic.Score("path to midi", ttype="tick")`
* Writing back to midi is now supported! `score.dump_midi("path")`
* Multiple `time unit (ttype)` is now supported (currently `tick` and `quarter`)
* The tempo attribute in the tempo event represents quarter per minute (qpm)
* We offer some batch operation functions for both `Score` and `Track` class:
  * shift_pitch(offset: int)
  * shift_velocity(offset: int)
  * shift_time(offset: float)
  * sort(key, reverse)
* You can operate each note just like you did before in python (like PrettyMidi)
* Extremely fast `pickle` is now supported
* `.numpy()` method for getting [SoA](https://en.wikipedia.org/wiki/AoS_and_SoA) data
* `.filter(func, inplace)` method for filtering objets in all the "List" in symusic
* A new synthesizer is now available! It comes from our another project [prestosynth](https://github.com/lzqlzzq/prestosynth).
  Find usages in our document. Note that we will support more features of soundfont for synthesizing in the future.

## Known Bugs

### Potential Dangling Pointer

The memory management logic for vectors in c++ is not the same as for python lists, so currently holding a reference to an element (e.g. a Note) inside a Score for an extended period of time poses a potential dangling pointer risk. Find more information [here](https://github.com/Yikai-Liao/symusic/issues/32).

I'm trying to implement a container that is different from a `c++` `std::vector` to solve this problem, which would be similar to the `stable_vector` in `boost`.

### Strange Noise at the End of Synthesized Audio

Currently, synthesizing audio with symusic on linux gives a probability of hearing strange noise at the end of the audio. This phenomenon cannot be reproduced consistently and does not occur on windows.

You can temporarily fix this by adding a few seconds of notes at the end and removing those seconds of audio at the end.

It is important to note that the audio synthesis functionality was implemented by us rather than using an off-the-shelf project, and it is still experimental at this time. Feel free to give us feedback on any bugs you find.

## Installation
### Use pre-compiled version
```bash
pip install symusic
```

### Build from source
> Make sure that your system has cmake and c++ compilers

```bash
git clone --recursive https://github.com/Yikai-Liao/symusic
pip install ./symusic
```

## Benchmark
### Parsing MIDI

* test using [mahler.mid](https://github.com/lzqlzzq/minimidi/blob/main/example/mahler.mid) from minimidi/example on my laptop (i7-10875H, 32GB 2666MHz DDR4 RAM, Linux 6.1.69-1-lts)
* Note that mahler.mid is quite a large midi file. So this benchmark mainly reelects the `parsing time` (the percentage of time of loading file gets more significant when file is smaller)
* `midifile` is writen in cpp, and could parse midi files to both `event level` and `note level`. It is slow mostly because of `iostream`.
* `mido` is writen in pure python, and only parses midi files to `event level`
* `pretty_midi` and `miditoolkit` is based on `mido`, and parse midi files to `note level`
* For libraries written in python or with python bindings, we use `timeit` to measure the time cost of parsing the midi file. `nanobench` for cpp libraries and `BenchmarkTools` for julia libraries.

| library                                                       | level | absolute time     | relative time |
|---------------------------------------------------------------|-------|-------------------|---------------|
| [**minimidi**](https://github.com/lzqlzzq/minimidi)           | event | 2.86 ms           | 1.0x          |
| [**symusic**](https://github.com/Yikai-Liao/symusic)          | note  | 3.47 ms ± 113 µs  | 1.2x          |
| [midifile](https://github.com/craigsapp/midifile)             | event | 44.0 ms           | 15.4x         |
| [midifile](https://github.com/craigsapp/midifile)             | note  | 45.6 ms           | 15.9x         |
| [MIDI.jl](https://github.com/JuliaMusic/MIDI.jl)              | note  | 109.707 ms        | 38.4x         |
| [mido](https://github.com/mido/mido)                          | event | 2.92 s ± 42.7 ms  | 1021.0x       |
| [miditoolkit](https://github.com/YatingMusic/miditoolkit)     | note  | 3.15 s ± 38.2 ms  | 1101.4x       |
| [pretty_midi](https://github.com/craffel/pretty-midi)         | note  | 3.16 s ± 9.56 ms  | 1104.9x       |
| [music21](https://github.com/cuthbertLab/music21)             | note  | 4.23 s ± 34.5 ms  | 1479.0x       |

## Acknowledgement

* [minimidi](https://github.com/lzqlzzq/minimidi) : A fast and lightweight midi parsing library written in cpp, which is the foundation of this project.
* [prestosynth](https://github.com/lzqlzzq/prestosynth) : A new fast soundfont synthesizer written in cpp, which is the foundation of the synthesizer in this project.
* [nanobind](https://github.com/wjakob/nanobind) : A efficient and lightweight library for binding C++ to Python, which is significantly faster than [pybind11](https://github.com/pybind/pybind11).
* [zpp_bits](https://github.com/eyalz800/zpp_bits) : An extraordinary fast and lightweight single header library for serialization and deserialization. I use it to support pickle.
* [geek_time_cpp](https://github.com/adah1972/geek_time_cpp/tree/master) The example code of the book "Modern C++ Programming Practice". We use the [metamacro.h](https://github.com/adah1972/geek_time_cpp/blob/master/40/metamacro.h#L1-L622) in it for shortening the code.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "symusic",
    "maintainer": "Nathan Fradet",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Yikai Liao <lyk-boya@outlook.com>, Zhongqi Luo <luozhongqi@mail.com>",
    "keywords": "midi music mir",
    "author": "Nathan Fradet",
    "author_email": "Yikai Liao <lyk-boya@outlook.com>, Zhongqi Luo <luozhongqi@mail.com>",
    "download_url": "https://files.pythonhosted.org/packages/ba/0b/b7ad81a26f08b4d1f45f59b22b30402819bc6542e19737e9a7b006927bc7/symusic-0.4.5.tar.gz",
    "platform": null,
    "description": "# [symusic](https://github.com/Yikai-Liao/symusic)\n[![Build and upload to PyPI](https://github.com/Yikai-Liao/symusic/actions/workflows/wheel.yml/badge.svg?branch=main)](https://github.com/Yikai-Liao/symusic/actions/workflows/wheel.yml) [![PyPI version](https://badge.fury.io/py/symusic.svg)](https://badge.fury.io/py/symusic) [![Downloads](https://static.pepy.tech/badge/symusic)](https://pepy.tech/project/symusic) [![Page Views Count](https://badges.toozhao.com/badges/01HGE1345YAKN4YV7WF0JRKZJK/blue.svg)](https://badges.toozhao.com/stats/01HGE1345YAKN4YV7WF0JRKZJK \"Get your own page views count badge on badges.toozhao.com\") <a target=\"_blank\" href=\"https://colab.research.google.com/github/Yikai-Liao/symusic/blob/main/tutorial.ipynb\">\n  <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/>\n</a>\n\n**Sy**music(\"**Sy**bolic **Music**\") is a cross-platform `note level` midi decoding library with lightening speed, which is hundreds of times faster (100x to 1000x depending on your file size) than [mido](https://github.com/mido/mido), the main midi parsing library in python.\n\nThe library is written in cpp and based on [minimidi](https://github.com/lzqlzzq/minimidi/tree/main). It offers a python binding using pybind11.\n\nHere, we have added a tutorial.ipynb for you to learn about how to use the library. <a target=\"_blank\" href=\"https://colab.research.google.com/github/Yikai-Liao/symusic/blob/main/tutorial.ipynb\">\n  <img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/>\n</a>\n\nAnd a [document](https://yikai-liao.github.io/symusic/) is also available. Not complete though.\n\n## Features\n\n* You can just read a midi file like `score = symusic.Score(\"path to midi\", ttype=\"tick\")`\n* Writing back to midi is now supported! `score.dump_midi(\"path\")`\n* Multiple `time unit (ttype)` is now supported (currently `tick` and `quarter`)\n* The tempo attribute in the tempo event represents quarter per minute (qpm)\n* We offer some batch operation functions for both `Score` and `Track` class:\n  * shift_pitch(offset: int)\n  * shift_velocity(offset: int)\n  * shift_time(offset: float)\n  * sort(key, reverse)\n* You can operate each note just like you did before in python (like PrettyMidi)\n* Extremely fast `pickle` is now supported\n* `.numpy()` method for getting [SoA](https://en.wikipedia.org/wiki/AoS_and_SoA) data\n* `.filter(func, inplace)` method for filtering objets in all the \"List\" in symusic\n* A new synthesizer is now available! It comes from our another project [prestosynth](https://github.com/lzqlzzq/prestosynth).\n  Find usages in our document. Note that we will support more features of soundfont for synthesizing in the future.\n\n## Known Bugs\n\n### Potential Dangling Pointer\n\nThe memory management logic for vectors in c++ is not the same as for python lists, so currently holding a reference to an element (e.g. a Note) inside a Score for an extended period of time poses a potential dangling pointer risk. Find more information [here](https://github.com/Yikai-Liao/symusic/issues/32).\n\nI'm trying to implement a container that is different from a `c++` `std::vector` to solve this problem, which would be similar to the `stable_vector` in `boost`.\n\n### Strange Noise at the End of Synthesized Audio\n\nCurrently, synthesizing audio with symusic on linux gives a probability of hearing strange noise at the end of the audio. This phenomenon cannot be reproduced consistently and does not occur on windows.\n\nYou can temporarily fix this by adding a few seconds of notes at the end and removing those seconds of audio at the end.\n\nIt is important to note that the audio synthesis functionality was implemented by us rather than using an off-the-shelf project, and it is still experimental at this time. Feel free to give us feedback on any bugs you find.\n\n## Installation\n### Use pre-compiled version\n```bash\npip install symusic\n```\n\n### Build from source\n> Make sure that your system has cmake and c++ compilers\n\n```bash\ngit clone --recursive https://github.com/Yikai-Liao/symusic\npip install ./symusic\n```\n\n## Benchmark\n### Parsing MIDI\n\n* test using [mahler.mid](https://github.com/lzqlzzq/minimidi/blob/main/example/mahler.mid) from minimidi/example on my laptop (i7-10875H, 32GB 2666MHz DDR4 RAM, Linux 6.1.69-1-lts)\n* Note that mahler.mid is quite a large midi file. So this benchmark mainly reelects the `parsing time` (the percentage of time of loading file gets more significant when file is smaller)\n* `midifile` is writen in cpp, and could parse midi files to both `event level` and `note level`. It is slow mostly because of `iostream`.\n* `mido` is writen in pure python, and only parses midi files to `event level`\n* `pretty_midi` and `miditoolkit` is based on `mido`, and parse midi files to `note level`\n* For libraries written in python or with python bindings, we use `timeit` to measure the time cost of parsing the midi file. `nanobench` for cpp libraries and `BenchmarkTools` for julia libraries.\n\n| library                                                       | level | absolute time     | relative time |\n|---------------------------------------------------------------|-------|-------------------|---------------|\n| [**minimidi**](https://github.com/lzqlzzq/minimidi)           | event | 2.86 ms           | 1.0x          |\n| [**symusic**](https://github.com/Yikai-Liao/symusic)          | note  | 3.47 ms \u00b1 113 \u00b5s  | 1.2x          |\n| [midifile](https://github.com/craigsapp/midifile)             | event | 44.0 ms           | 15.4x         |\n| [midifile](https://github.com/craigsapp/midifile)             | note  | 45.6 ms           | 15.9x         |\n| [MIDI.jl](https://github.com/JuliaMusic/MIDI.jl)              | note  | 109.707 ms        | 38.4x         |\n| [mido](https://github.com/mido/mido)                          | event | 2.92 s \u00b1 42.7 ms  | 1021.0x       |\n| [miditoolkit](https://github.com/YatingMusic/miditoolkit)     | note  | 3.15 s \u00b1 38.2 ms  | 1101.4x       |\n| [pretty_midi](https://github.com/craffel/pretty-midi)         | note  | 3.16 s \u00b1 9.56 ms  | 1104.9x       |\n| [music21](https://github.com/cuthbertLab/music21)             | note  | 4.23 s \u00b1 34.5 ms  | 1479.0x       |\n\n## Acknowledgement\n\n* [minimidi](https://github.com/lzqlzzq/minimidi) : A fast and lightweight midi parsing library written in cpp, which is the foundation of this project.\n* [prestosynth](https://github.com/lzqlzzq/prestosynth) : A new fast soundfont synthesizer written in cpp, which is the foundation of the synthesizer in this project.\n* [nanobind](https://github.com/wjakob/nanobind) : A efficient and lightweight library for binding C++ to Python, which is significantly faster than [pybind11](https://github.com/pybind/pybind11).\n* [zpp_bits](https://github.com/eyalz800/zpp_bits) : An extraordinary fast and lightweight single header library for serialization and deserialization. I use it to support pickle.\n* [geek_time_cpp](https://github.com/adah1972/geek_time_cpp/tree/master) The example code of the book \"Modern C++ Programming Practice\". We use the [metamacro.h](https://github.com/adah1972/geek_time_cpp/blob/master/40/metamacro.h#L1-L622) in it for shortening the code.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2023 \u5ed6\u5955\u51ef  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.",
    "summary": "A high performance MIDI file parser with comprehensible interface.",
    "version": "0.4.5",
    "project_urls": {
        "Homepage": "https://github.com/Yikai-Liao/symusic",
        "Issues": "https://github.com/Yikai-Liao/symusic/issues",
        "Repository": "https://github.com/Yikai-Liao/symusic.git"
    },
    "split_keywords": [
        "midi",
        "music",
        "mir"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "256ab9f4b1fca4cf56c76a7bacfb2f71ce52b0a96c3f2222cc351d76e91ccd97",
                "md5": "2afa8af1685ef39ab2cdf6745611c7c6",
                "sha256": "619b0a780487dbf91076dcfbb60a53832966133810daab2d6c2bdc0eb2da080a"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2afa8af1685ef39ab2cdf6745611c7c6",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2497611,
            "upload_time": "2024-04-12T13:23:31",
            "upload_time_iso_8601": "2024-04-12T13:23:31.770375Z",
            "url": "https://files.pythonhosted.org/packages/25/6a/b9f4b1fca4cf56c76a7bacfb2f71ce52b0a96c3f2222cc351d76e91ccd97/symusic-0.4.5-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d8436a3fb6c5622788418b5385ed46727b0738ce1cc63898a85699b14fbd9d6",
                "md5": "c5f1e1a5053956ff4394e7ac05540625",
                "sha256": "699958017e98c02c657e744403801a438d837445fe74a6959a0e019a5dbdb4d6"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c5f1e1a5053956ff4394e7ac05540625",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2408020,
            "upload_time": "2024-04-12T13:23:33",
            "upload_time_iso_8601": "2024-04-12T13:23:33.937762Z",
            "url": "https://files.pythonhosted.org/packages/3d/84/36a3fb6c5622788418b5385ed46727b0738ce1cc63898a85699b14fbd9d6/symusic-0.4.5-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "de1131c252ae280adc3a2ceb5a2e38e5eb007418234f92e93778c5d07d2fe6e1",
                "md5": "2797951f13b58eb3f1e9e0d277fd4ecb",
                "sha256": "911a5fb8ae05736e23957235d8ebdb081334e2a95b11efb36429356019a4e0f3"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2797951f13b58eb3f1e9e0d277fd4ecb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2362062,
            "upload_time": "2024-04-12T13:23:35",
            "upload_time_iso_8601": "2024-04-12T13:23:35.507460Z",
            "url": "https://files.pythonhosted.org/packages/de/11/31c252ae280adc3a2ceb5a2e38e5eb007418234f92e93778c5d07d2fe6e1/symusic-0.4.5-cp310-cp310-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "696dcccd113ecba10b289df3dddea52f973ed70c637330272e3cf25947058026",
                "md5": "af7b849783e02fced25c382bebadef60",
                "sha256": "3fe8f7868adb571fc40a9ec458628f2b4a68e54eb324b31664d9dbeb7b6491c7"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "has_sig": false,
            "md5_digest": "af7b849783e02fced25c382bebadef60",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2470062,
            "upload_time": "2024-04-12T13:23:36",
            "upload_time_iso_8601": "2024-04-12T13:23:36.863937Z",
            "url": "https://files.pythonhosted.org/packages/69/6d/cccd113ecba10b289df3dddea52f973ed70c637330272e3cf25947058026/symusic-0.4.5-cp310-cp310-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "96164b7ada8af4fd1abfb0d28a62b94463480c5cf564d877e324882e383d52e3",
                "md5": "20749c7beb058dcf7e1e5353a223c48c",
                "sha256": "da88d26a9bfb8bd4a10b912a0ed1b3747743a0801e16edbcac52a12df9beacea"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "20749c7beb058dcf7e1e5353a223c48c",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2782978,
            "upload_time": "2024-04-12T13:23:39",
            "upload_time_iso_8601": "2024-04-12T13:23:39.088521Z",
            "url": "https://files.pythonhosted.org/packages/96/16/4b7ada8af4fd1abfb0d28a62b94463480c5cf564d877e324882e383d52e3/symusic-0.4.5-cp310-cp310-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da747b6179f17ef8c90d1c3da3a6a045fa810f67f3a0acee694b73ff8ea5c107",
                "md5": "ef8e92b369f680ed175ebc7b2a550b39",
                "sha256": "192c97595f939e31d3aa2d8b0f5abb41b47dedaa38ea750719cf42f095728ac3"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ef8e92b369f680ed175ebc7b2a550b39",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 2901048,
            "upload_time": "2024-04-12T13:23:41",
            "upload_time_iso_8601": "2024-04-12T13:23:41.297140Z",
            "url": "https://files.pythonhosted.org/packages/da/74/7b6179f17ef8c90d1c3da3a6a045fa810f67f3a0acee694b73ff8ea5c107/symusic-0.4.5-cp310-cp310-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "233011991eb287484c3266fc43ad98b08e75322e53e09728dd14ed952db32499",
                "md5": "885d1bef2d008285ae98ce164f861d5d",
                "sha256": "6028ceea262342ac2c80fee0b6c1eb34ad66e5c6a4825f2dd726c131a65b0f06"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "885d1bef2d008285ae98ce164f861d5d",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1889182,
            "upload_time": "2024-04-12T13:23:42",
            "upload_time_iso_8601": "2024-04-12T13:23:42.739535Z",
            "url": "https://files.pythonhosted.org/packages/23/30/11991eb287484c3266fc43ad98b08e75322e53e09728dd14ed952db32499/symusic-0.4.5-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fa5724e0df0c2824a0394310be2d55f747151254dff34f0120430ddf8e51d6e0",
                "md5": "2704f2629c797c68552e8c5da6e3e4dd",
                "sha256": "5be6c04b9a847f3e871d45460193251b713c81e0ace02840ae1b9d4d1b09d1cf"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "2704f2629c797c68552e8c5da6e3e4dd",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1985771,
            "upload_time": "2024-04-12T13:23:44",
            "upload_time_iso_8601": "2024-04-12T13:23:44.970312Z",
            "url": "https://files.pythonhosted.org/packages/fa/57/24e0df0c2824a0394310be2d55f747151254dff34f0120430ddf8e51d6e0/symusic-0.4.5-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "46a84e52c71a54cec9d0c86abc030649dcf5302afb6887ba0145f40a624970f5",
                "md5": "78fea9f8941a1e1422547124492dc58b",
                "sha256": "ba29da60b05019ff7b86843ac04404c4e1fab9c67b219e264005d255d195ad25"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "78fea9f8941a1e1422547124492dc58b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2497456,
            "upload_time": "2024-04-12T13:23:47",
            "upload_time_iso_8601": "2024-04-12T13:23:47.084051Z",
            "url": "https://files.pythonhosted.org/packages/46/a8/4e52c71a54cec9d0c86abc030649dcf5302afb6887ba0145f40a624970f5/symusic-0.4.5-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "192ed63befa444683b33da8f974d682c2816d4fa9275e978b5127772e4364f39",
                "md5": "bd6c10283b314472af08c2a1e94dd0be",
                "sha256": "e154be26ddfd6e46270a69799aa47a4a99d953e9a18861b181f7975d12e7a710"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "bd6c10283b314472af08c2a1e94dd0be",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2407701,
            "upload_time": "2024-04-12T13:23:48",
            "upload_time_iso_8601": "2024-04-12T13:23:48.495498Z",
            "url": "https://files.pythonhosted.org/packages/19/2e/d63befa444683b33da8f974d682c2816d4fa9275e978b5127772e4364f39/symusic-0.4.5-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9693c05c470c33bd3c65c26cbb95fa62934e9da0f372e3ba5992b55b6fb06964",
                "md5": "061e259a3e3f9b1f9ae7f38efc2ccb50",
                "sha256": "a9c1aabfb0aefee4328a5caace886402d0e046a6f5f9f3c455c4c41bb9428369"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "has_sig": false,
            "md5_digest": "061e259a3e3f9b1f9ae7f38efc2ccb50",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2361778,
            "upload_time": "2024-04-12T13:23:50",
            "upload_time_iso_8601": "2024-04-12T13:23:50.050757Z",
            "url": "https://files.pythonhosted.org/packages/96/93/c05c470c33bd3c65c26cbb95fa62934e9da0f372e3ba5992b55b6fb06964/symusic-0.4.5-cp311-cp311-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4312517206f5bdd5ce51862d1894c90abd12f6765653adba59107e23f247ecf9",
                "md5": "fef76af20ae04d493095b6a628f57563",
                "sha256": "38a135ad6959ea0550c1ff08840c96c66776db79e45d8ff1841192e8045d9567"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "has_sig": false,
            "md5_digest": "fef76af20ae04d493095b6a628f57563",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2469926,
            "upload_time": "2024-04-12T13:23:51",
            "upload_time_iso_8601": "2024-04-12T13:23:51.615546Z",
            "url": "https://files.pythonhosted.org/packages/43/12/517206f5bdd5ce51862d1894c90abd12f6765653adba59107e23f247ecf9/symusic-0.4.5-cp311-cp311-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b9db319883ea7fa80005244e51f4ad4b73cce842ed957c2d0763eed33a76f47",
                "md5": "b53f49b894f9b1950ba1c92122fa96e6",
                "sha256": "f9a747d12b16aca649a4560bc74c6aed3cea74c0200b7565707db7c78655054f"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "b53f49b894f9b1950ba1c92122fa96e6",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2782572,
            "upload_time": "2024-04-12T13:23:53",
            "upload_time_iso_8601": "2024-04-12T13:23:53.542985Z",
            "url": "https://files.pythonhosted.org/packages/3b/9d/b319883ea7fa80005244e51f4ad4b73cce842ed957c2d0763eed33a76f47/symusic-0.4.5-cp311-cp311-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "347acb41bcce20dfb9866adb4de96a05fe04c6477000e62c3f1d3240463fb3cf",
                "md5": "a7a32ca00f0e4a0e321c781654faaab9",
                "sha256": "8ad050a385c18a260b0d66e9abe91ff19dd367eac376bcb5c658b1cb10257bc1"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a7a32ca00f0e4a0e321c781654faaab9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 2900763,
            "upload_time": "2024-04-12T13:23:55",
            "upload_time_iso_8601": "2024-04-12T13:23:55.066579Z",
            "url": "https://files.pythonhosted.org/packages/34/7a/cb41bcce20dfb9866adb4de96a05fe04c6477000e62c3f1d3240463fb3cf/symusic-0.4.5-cp311-cp311-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "66f9bdbd49aebb85e59aa2f450892fb9dafda06bb43c86718c6e8f47896197d4",
                "md5": "70b261f01d39015075f9bbb532264ec4",
                "sha256": "c4fbf384614d6465c11be1e2fe9a0add85766b5793fec87f0e6f3c8e3f6767de"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "70b261f01d39015075f9bbb532264ec4",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1888902,
            "upload_time": "2024-04-12T13:23:57",
            "upload_time_iso_8601": "2024-04-12T13:23:57.915385Z",
            "url": "https://files.pythonhosted.org/packages/66/f9/bdbd49aebb85e59aa2f450892fb9dafda06bb43c86718c6e8f47896197d4/symusic-0.4.5-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "10deda44ac583adec15cbf3d44739980a464d4b7e99a49746f8fdeead4f62a12",
                "md5": "0cff9de31214d55f573f813fd3a918d0",
                "sha256": "2b3c3e7b7eddadfb980deac2a8d36b53c59da428cb6ac6023012437e794080e7"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "0cff9de31214d55f573f813fd3a918d0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1985633,
            "upload_time": "2024-04-12T13:23:59",
            "upload_time_iso_8601": "2024-04-12T13:23:59.756266Z",
            "url": "https://files.pythonhosted.org/packages/10/de/da44ac583adec15cbf3d44739980a464d4b7e99a49746f8fdeead4f62a12/symusic-0.4.5-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17278c31e323a700cfd55cd79851819ce038b1ff4bc1c6800bc2cc3cb095d892",
                "md5": "154ea055595b9740c499ed7d70a9794d",
                "sha256": "025ddccc2fea7ff2ef26b7709d6e1f04d5f8e4d736af637aafa3851df06090c6"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "154ea055595b9740c499ed7d70a9794d",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2514137,
            "upload_time": "2024-04-12T13:24:02",
            "upload_time_iso_8601": "2024-04-12T13:24:02.081563Z",
            "url": "https://files.pythonhosted.org/packages/17/27/8c31e323a700cfd55cd79851819ce038b1ff4bc1c6800bc2cc3cb095d892/symusic-0.4.5-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "384d065fd7aa4be232bc3b44c9e64f54178bed17c4ef1e9249894a3d6b4c5bb2",
                "md5": "394c5ca5e3a6dc9ea40b8a513d60e3af",
                "sha256": "5b3679176801d6cd234410afa63cc7d85fd07a0ef92243cdb20518c059e33de7"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "394c5ca5e3a6dc9ea40b8a513d60e3af",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2412847,
            "upload_time": "2024-04-12T13:24:04",
            "upload_time_iso_8601": "2024-04-12T13:24:04.173877Z",
            "url": "https://files.pythonhosted.org/packages/38/4d/065fd7aa4be232bc3b44c9e64f54178bed17c4ef1e9249894a3d6b4c5bb2/symusic-0.4.5-cp312-cp312-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5a2c0a22e7dc0a492620e7d0342efffd6fd6277f70ad65af07149a5ca5731e7f",
                "md5": "67872a57711c742ac60ae2fd9de614bc",
                "sha256": "273ed22e93234aceb1557516da69dc8466f94a2831b05b1a327f97d7322dc4e0"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "has_sig": false,
            "md5_digest": "67872a57711c742ac60ae2fd9de614bc",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2361497,
            "upload_time": "2024-04-12T13:24:06",
            "upload_time_iso_8601": "2024-04-12T13:24:06.841689Z",
            "url": "https://files.pythonhosted.org/packages/5a/2c/0a22e7dc0a492620e7d0342efffd6fd6277f70ad65af07149a5ca5731e7f/symusic-0.4.5-cp312-cp312-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0e2d22e978d788b82b6670dfd1b8be34fa2676a2c68866b2c1f9052b8db799b4",
                "md5": "40746ae277ad39ee202200b819723c2f",
                "sha256": "b252b410bc72691ab342d6bdc4ada032c0f4d29650705626f9c4810cd802934d"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "has_sig": false,
            "md5_digest": "40746ae277ad39ee202200b819723c2f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2462427,
            "upload_time": "2024-04-12T13:24:08",
            "upload_time_iso_8601": "2024-04-12T13:24:08.385566Z",
            "url": "https://files.pythonhosted.org/packages/0e/2d/22e978d788b82b6670dfd1b8be34fa2676a2c68866b2c1f9052b8db799b4/symusic-0.4.5-cp312-cp312-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ebd312749102fad6e193fbf2975df9d3b222eaa984597f5212faf6f9cc79c7d8",
                "md5": "fc9f6426a05995c44fc90fcc4d0f3580",
                "sha256": "16c8c55174501f9987b35b1064a4205f5209344340e4aad3e5ace63366f7712b"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "fc9f6426a05995c44fc90fcc4d0f3580",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2770406,
            "upload_time": "2024-04-12T13:24:10",
            "upload_time_iso_8601": "2024-04-12T13:24:10.662332Z",
            "url": "https://files.pythonhosted.org/packages/eb/d3/12749102fad6e193fbf2975df9d3b222eaa984597f5212faf6f9cc79c7d8/symusic-0.4.5-cp312-cp312-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0a8f8f6e5067651e5d24d289ce54386e39b035ff902193a2f1f01930ea1d6d1d",
                "md5": "9559219c0a71c14933626256ca54355b",
                "sha256": "c4c5bf00dd138a628d48861ec3a2bbcfc7e1fe409d98255e5c9cfcd91fcf11fd"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9559219c0a71c14933626256ca54355b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 2895301,
            "upload_time": "2024-04-12T13:24:12",
            "upload_time_iso_8601": "2024-04-12T13:24:12.274239Z",
            "url": "https://files.pythonhosted.org/packages/0a/8f/8f6e5067651e5d24d289ce54386e39b035ff902193a2f1f01930ea1d6d1d/symusic-0.4.5-cp312-cp312-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4974854724b4345b22b80d13f97875b18512bd36399a70c36d451a7683cea9f9",
                "md5": "044dbfa039769451569afbc37cb3584e",
                "sha256": "6ef2dc268a8aab6b5bd299fb2d6737e746264bc2493402d818cb4a3f3d242a5f"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "044dbfa039769451569afbc37cb3584e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1890458,
            "upload_time": "2024-04-12T13:24:14",
            "upload_time_iso_8601": "2024-04-12T13:24:14.608765Z",
            "url": "https://files.pythonhosted.org/packages/49/74/854724b4345b22b80d13f97875b18512bd36399a70c36d451a7683cea9f9/symusic-0.4.5-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3ba754cdb9c5b8f67e1123b59c4e4ac455da372ec30037cfb95cd5a2112ce0fa",
                "md5": "cbaeba311ec3f29d56d285636ddab2a0",
                "sha256": "6c8df2577ce6b72f2fa779a2c208a446390254c17f2f23d40fc6b05b9afcf281"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "cbaeba311ec3f29d56d285636ddab2a0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1986903,
            "upload_time": "2024-04-12T13:24:16",
            "upload_time_iso_8601": "2024-04-12T13:24:16.264516Z",
            "url": "https://files.pythonhosted.org/packages/3b/a7/54cdb9c5b8f67e1123b59c4e4ac455da372ec30037cfb95cd5a2112ce0fa/symusic-0.4.5-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "dd694b58ac93196598cc448118fca8b2f0d8f8db79dd8a87af024b46990551b1",
                "md5": "4e9f7fb8a7d186733dd03842bb202bf0",
                "sha256": "e56fc07359550897e0aff4223b5e687c0b0b9ad7104a8d4c99b699c3f9abb2c8"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4e9f7fb8a7d186733dd03842bb202bf0",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2497612,
            "upload_time": "2024-04-12T13:24:17",
            "upload_time_iso_8601": "2024-04-12T13:24:17.934101Z",
            "url": "https://files.pythonhosted.org/packages/dd/69/4b58ac93196598cc448118fca8b2f0d8f8db79dd8a87af024b46990551b1/symusic-0.4.5-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a5d81b848cd2215cdecdb799b59ab3abf7f57e0debb74b249f4a7f155dcba02f",
                "md5": "ee3a677c5f66c73b9698d5f1a47bded9",
                "sha256": "7f0e50e5768d186d7f71178d60b5f151ed279c074f0f1f8e821cc7e892ac740a"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "ee3a677c5f66c73b9698d5f1a47bded9",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2407902,
            "upload_time": "2024-04-12T13:24:19",
            "upload_time_iso_8601": "2024-04-12T13:24:19.471095Z",
            "url": "https://files.pythonhosted.org/packages/a5/d8/1b848cd2215cdecdb799b59ab3abf7f57e0debb74b249f4a7f155dcba02f/symusic-0.4.5-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "20334bd5f5efb1fadd4f555e4dc466ab9f357d6c1b0c95a7df3c58bb66a19c15",
                "md5": "de40857f9e2edabe30837ad9f7b8cb70",
                "sha256": "8a1a3888b7eea8a6047171b9eb19b860900a53e8cd9a548701ee75762ce2fead"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "has_sig": false,
            "md5_digest": "de40857f9e2edabe30837ad9f7b8cb70",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2361881,
            "upload_time": "2024-04-12T13:24:21",
            "upload_time_iso_8601": "2024-04-12T13:24:21.660875Z",
            "url": "https://files.pythonhosted.org/packages/20/33/4bd5f5efb1fadd4f555e4dc466ab9f357d6c1b0c95a7df3c58bb66a19c15/symusic-0.4.5-cp38-cp38-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8498d24654cb6a4ab6a18d241de3fe92cfadd1c8c4a48d6c3c114d2a847807a",
                "md5": "8b55137e0d8da21bda909b47d085981e",
                "sha256": "7c9b26ad76bad98481fa9dc9deb36d177a94e2c52834988d8242401ecff11c6f"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8b55137e0d8da21bda909b47d085981e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2470249,
            "upload_time": "2024-04-12T13:24:23",
            "upload_time_iso_8601": "2024-04-12T13:24:23.601018Z",
            "url": "https://files.pythonhosted.org/packages/e8/49/8d24654cb6a4ab6a18d241de3fe92cfadd1c8c4a48d6c3c114d2a847807a/symusic-0.4.5-cp38-cp38-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "85b7415148ffebdcd8bf0390fb9002063252670f56c159be259aa19612363600",
                "md5": "3ad94135806953e9c9b636053a808eee",
                "sha256": "f93c05624949680ccf75f9801ca955aaf88274e4a2152bda620072d95e14457a"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "3ad94135806953e9c9b636053a808eee",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2782789,
            "upload_time": "2024-04-12T13:24:25",
            "upload_time_iso_8601": "2024-04-12T13:24:25.284090Z",
            "url": "https://files.pythonhosted.org/packages/85/b7/415148ffebdcd8bf0390fb9002063252670f56c159be259aa19612363600/symusic-0.4.5-cp38-cp38-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "958bf32339eedc701851174bd4f115acb348ae5d0268af5c2862bcbb699b3056",
                "md5": "ee7202e15dfc1d322388d785800f8d6b",
                "sha256": "ef60a280cf22e080c863a7baa36c6438790f9165d528b3e7892f543bd69e2011"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ee7202e15dfc1d322388d785800f8d6b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 2900930,
            "upload_time": "2024-04-12T13:24:27",
            "upload_time_iso_8601": "2024-04-12T13:24:27.292849Z",
            "url": "https://files.pythonhosted.org/packages/95/8b/f32339eedc701851174bd4f115acb348ae5d0268af5c2862bcbb699b3056/symusic-0.4.5-cp38-cp38-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c79295ce10c6343dc3b741c136e2cc8611c564494b96b1417c41b8e6ab680acf",
                "md5": "e645aeaa0003c1dbec72bddaec72f718",
                "sha256": "7e4e395907a7ddaf9abc412654f963b6646cc775d1d1807f9b47693430155cba"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "e645aeaa0003c1dbec72bddaec72f718",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1889514,
            "upload_time": "2024-04-12T13:24:28",
            "upload_time_iso_8601": "2024-04-12T13:24:28.788197Z",
            "url": "https://files.pythonhosted.org/packages/c7/92/95ce10c6343dc3b741c136e2cc8611c564494b96b1417c41b8e6ab680acf/symusic-0.4.5-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "55daa6e4d9407b53773c224ff7ae7e8dc9e40cf2dba20df16ecd4aa42f8cf6bb",
                "md5": "fb26349067d8535c8d351e0474cad940",
                "sha256": "d07a326cd6ce1aa8f14a1eac5377aa5afecf7c977b3d420376221f14ca9393e8"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "fb26349067d8535c8d351e0474cad940",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1986341,
            "upload_time": "2024-04-12T13:24:30",
            "upload_time_iso_8601": "2024-04-12T13:24:30.538745Z",
            "url": "https://files.pythonhosted.org/packages/55/da/a6e4d9407b53773c224ff7ae7e8dc9e40cf2dba20df16ecd4aa42f8cf6bb/symusic-0.4.5-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3afe20234c25b80f18e5dc71fefdb6aff5ec4c55ef9e279057a02fbb0a1210ed",
                "md5": "9535286cba04c1ed510847ceb005bccb",
                "sha256": "86e6b98dd0971689cb73308a1412d4f65181ebca60494cc3c0b74214d4d6bf03"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "9535286cba04c1ed510847ceb005bccb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2497903,
            "upload_time": "2024-04-12T13:24:32",
            "upload_time_iso_8601": "2024-04-12T13:24:32.063391Z",
            "url": "https://files.pythonhosted.org/packages/3a/fe/20234c25b80f18e5dc71fefdb6aff5ec4c55ef9e279057a02fbb0a1210ed/symusic-0.4.5-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "faa27547678928596e9fabdbd27bc8d4ca9ce638b9a36988e0239e102556cf3d",
                "md5": "63c3eca0f1a1c36a26ce68f4c1a67a1f",
                "sha256": "5fd26d98ea3369e678419c6b668a063acfbbaa6e9bf47ffe40e64dd8e4d6fe98"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "63c3eca0f1a1c36a26ce68f4c1a67a1f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2408274,
            "upload_time": "2024-04-12T13:24:33",
            "upload_time_iso_8601": "2024-04-12T13:24:33.703472Z",
            "url": "https://files.pythonhosted.org/packages/fa/a2/7547678928596e9fabdbd27bc8d4ca9ce638b9a36988e0239e102556cf3d/symusic-0.4.5-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "532ee183314681ef66a251d25945745317921b3415b668c3642ed64764257003",
                "md5": "2740a18c36a129d8b631ae649a99761d",
                "sha256": "4b8084bcde7dbcf6e2c714ec3c17cd952f66cde0f12f1cfd79bcb6affb65d9af"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "has_sig": false,
            "md5_digest": "2740a18c36a129d8b631ae649a99761d",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2362228,
            "upload_time": "2024-04-12T13:24:35",
            "upload_time_iso_8601": "2024-04-12T13:24:35.316171Z",
            "url": "https://files.pythonhosted.org/packages/53/2e/e183314681ef66a251d25945745317921b3415b668c3642ed64764257003/symusic-0.4.5-cp39-cp39-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38f651adea366b9f5f8b56334fd4a749443ac15aed8207ab0665b02a197e4e36",
                "md5": "bd1ebae839b54b167ff28ddb73f35a7b",
                "sha256": "44f4c69e8b56fd340c500bbb459f17e27e04fd89dda21d9688d2f250c4f128a3"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bd1ebae839b54b167ff28ddb73f35a7b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2470276,
            "upload_time": "2024-04-12T13:24:36",
            "upload_time_iso_8601": "2024-04-12T13:24:36.763421Z",
            "url": "https://files.pythonhosted.org/packages/38/f6/51adea366b9f5f8b56334fd4a749443ac15aed8207ab0665b02a197e4e36/symusic-0.4.5-cp39-cp39-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f3b589287fa0484fcb6496a0ef176e361764112eefa54d1fe34df1fe6feceba0",
                "md5": "57fab71f7bd217f697ac5d5b3fce457f",
                "sha256": "f0d17fa5c8c5fecb15cb3c25e81e0f9e7cf3beccc0f89dece4223e410063d900"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-musllinux_1_2_aarch64.whl",
            "has_sig": false,
            "md5_digest": "57fab71f7bd217f697ac5d5b3fce457f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2783098,
            "upload_time": "2024-04-12T13:24:38",
            "upload_time_iso_8601": "2024-04-12T13:24:38.905330Z",
            "url": "https://files.pythonhosted.org/packages/f3/b5/89287fa0484fcb6496a0ef176e361764112eefa54d1fe34df1fe6feceba0/symusic-0.4.5-cp39-cp39-musllinux_1_2_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "074e475981b731e0564210abe54e44bbb85de8cbd23308c2b9b7d067775723a1",
                "md5": "3691111aff7130d8149650fce649edfb",
                "sha256": "b6a3b3eeced66af1c78340d72ff6c13bc7d134905a6edf99831e390dda11bc56"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-musllinux_1_2_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3691111aff7130d8149650fce649edfb",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 2901261,
            "upload_time": "2024-04-12T13:24:41",
            "upload_time_iso_8601": "2024-04-12T13:24:41.404056Z",
            "url": "https://files.pythonhosted.org/packages/07/4e/475981b731e0564210abe54e44bbb85de8cbd23308c2b9b7d067775723a1/symusic-0.4.5-cp39-cp39-musllinux_1_2_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "479eef7285d036094c5bd5ff85b787aeafff565f2553653af5514f05208d925e",
                "md5": "9e49532aa6e343ba34f20c8213561f5a",
                "sha256": "03c008898f09bb0e8c653b577bc5027cdab76e8ab1e918ffb1dd70bb44a8de69"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "9e49532aa6e343ba34f20c8213561f5a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1889267,
            "upload_time": "2024-04-12T13:24:43",
            "upload_time_iso_8601": "2024-04-12T13:24:43.660494Z",
            "url": "https://files.pythonhosted.org/packages/47/9e/ef7285d036094c5bd5ff85b787aeafff565f2553653af5514f05208d925e/symusic-0.4.5-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "12d7e3f41ca90508bc3cb6aae5802e5b6105edbac33d007cd516ee6a082c8b17",
                "md5": "b0d5c0989a7a85b3ad0a767b0b09a557",
                "sha256": "1006280b9315ada66868079ce3ab65e9313eee2b84cfd29b24340edd637d9c91"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b0d5c0989a7a85b3ad0a767b0b09a557",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1986155,
            "upload_time": "2024-04-12T13:24:45",
            "upload_time_iso_8601": "2024-04-12T13:24:45.600260Z",
            "url": "https://files.pythonhosted.org/packages/12/d7/e3f41ca90508bc3cb6aae5802e5b6105edbac33d007cd516ee6a082c8b17/symusic-0.4.5-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "85f185fd3319556430e96a60b5f2b6f2d74c5e9ca7e3b7845704cd88fc81d536",
                "md5": "49e0a9f430402317793cdf7a5607490b",
                "sha256": "ad4fd99f10eea59884cbae27da7065d75150c1c284c5f1f05e438449ecb7a6d7"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "49e0a9f430402317793cdf7a5607490b",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 2494659,
            "upload_time": "2024-04-12T13:24:47",
            "upload_time_iso_8601": "2024-04-12T13:24:47.633944Z",
            "url": "https://files.pythonhosted.org/packages/85/f1/85fd3319556430e96a60b5f2b6f2d74c5e9ca7e3b7845704cd88fc81d536/symusic-0.4.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "66fa39f429f3298afba9d1c80f16e8d7803ece516ed8686e3c5744db0c3088d5",
                "md5": "fc67c594a75c683e70e9642d52453297",
                "sha256": "c479755e597f435de89b130406860279a5979bc2132b3add2ff5326e2cee9791"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "has_sig": false,
            "md5_digest": "fc67c594a75c683e70e9642d52453297",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 2359132,
            "upload_time": "2024-04-12T13:24:50",
            "upload_time_iso_8601": "2024-04-12T13:24:50.105306Z",
            "url": "https://files.pythonhosted.org/packages/66/fa/39f429f3298afba9d1c80f16e8d7803ece516ed8686e3c5744db0c3088d5/symusic-0.4.5-pp39-pypy39_pp73-manylinux_2_28_aarch64.manylinux_2_27_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "155d5a7052fb84de1639f87f645a67a4a1f17fc90779d4725a929d2b6a5d7c47",
                "md5": "934a4c7529655baadfd7b48172fa6123",
                "sha256": "27e65ecc115476f6b1bcdec073e34203bc92f236c7506e107f4b4091c490c9d5"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "has_sig": false,
            "md5_digest": "934a4c7529655baadfd7b48172fa6123",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 2467440,
            "upload_time": "2024-04-12T13:24:51",
            "upload_time_iso_8601": "2024-04-12T13:24:51.749240Z",
            "url": "https://files.pythonhosted.org/packages/15/5d/5a7052fb84de1639f87f645a67a4a1f17fc90779d4725a929d2b6a5d7c47/symusic-0.4.5-pp39-pypy39_pp73-manylinux_2_28_x86_64.manylinux_2_27_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8c45877585e4f71e2690f43c5b44a52a0c650ebc509988d5ca196f12373ab8fa",
                "md5": "922df61778651db25f86a9a4301c0b7c",
                "sha256": "14c11925921e00ac84e2a52def4fc07f44058df9b81f78f7002ff2c17b6c3563"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5-pp39-pypy39_pp73-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "922df61778651db25f86a9a4301c0b7c",
            "packagetype": "bdist_wheel",
            "python_version": "pp39",
            "requires_python": ">=3.8",
            "size": 1983261,
            "upload_time": "2024-04-12T13:24:53",
            "upload_time_iso_8601": "2024-04-12T13:24:53.985738Z",
            "url": "https://files.pythonhosted.org/packages/8c/45/877585e4f71e2690f43c5b44a52a0c650ebc509988d5ca196f12373ab8fa/symusic-0.4.5-pp39-pypy39_pp73-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ba0bb7ad81a26f08b4d1f45f59b22b30402819bc6542e19737e9a7b006927bc7",
                "md5": "f2106a40560bca94b2f55a3c59ffd4d8",
                "sha256": "411d04ef5fc7f70542fcf5c78be493ce1593097b934525cce2f965649d2f5025"
            },
            "downloads": -1,
            "filename": "symusic-0.4.5.tar.gz",
            "has_sig": false,
            "md5_digest": "f2106a40560bca94b2f55a3c59ffd4d8",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 13478024,
            "upload_time": "2024-04-12T13:24:55",
            "upload_time_iso_8601": "2024-04-12T13:24:55.727443Z",
            "url": "https://files.pythonhosted.org/packages/ba/0b/b7ad81a26f08b4d1f45f59b22b30402819bc6542e19737e9a7b006927bc7/symusic-0.4.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-12 13:24:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Yikai-Liao",
    "github_project": "symusic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "symusic"
}
        
Elapsed time: 0.23465s