Symusic

Latest version: v0.5.6

Safety actively analyzes 701507 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 6

0.3.4

Bug Fixing
* Use multiple channels for the dumped midi instead of using channel 0 for all tracks (except for drums). 22 kirchhoff-hw Yikai-Liao lzqlzzq
* Fix `encodeVelocity` argument in pianoroll xzzxy0413 Yikai-Liao

0.3.3

In this version, we packed two cli programs, abc2midi and midi2abc into symusic to support ABC format. Yikai-Liao
As they are part of the [abcmidi](https://ifdo.ca/~seymour/runabc/top.html) project, which is under GPLv2 license, we choose to call throught the cli, instead of static linking it. And these 2 programs are prebuilt into the pip package, so you don't need to install them manually. Here is the usage:
python
Score("xxx.abc")
Score("xxx.txt", fmt="abc")

Score.from_file("xxx.abc")
Score.from_file("xxx.txt", fmt="abc")

Score.from_abc("you abc notation")




At symusic's development standards (what I have in mind), the abcmidi project is still slow and has a lot of room for optimization.
Therefore we choose to implement our own lightweight abc notation parser in the future. But abc notation is complex, so abcmidi will also be retained for a long time at the same time until our own parser could fully support abc notation.

Finally, I would like to thank lzqlzzq and Natooz for their help in the development process

0.3.2

* fix second conversion error when `tempos` is empty lzqlzzq Yikai-Liao
* fix start and end property when `tracks` is empty lzqlzzq

0.3.1

* fix errors in copy and sort methods Natooz Yikai-Liao
* set the default key of sorting TrackList to `is_durm, program, name, note_num()`

0.3.0

After a long period of development, we have finally merge the librarify branch 19 into the main branch and we release it here as v0.3.0 🎉

* We finally split the original `Score.hpp` into multiple files successfully, and make them a c++ library, which means now you could use symusic easily in your own c++ project! Yikai-Liao lzqlzzq
* A branch new [SoA](https://en.wikipedia.org/wiki/AoS_and_SoA) interface #18 in this version Yikai-Liao, and more `SoA` based functions will be introduced in the future 10.
Here is an example:
python
note_arr: Dict[str, np.ndarray] = score.tracks[0].notes.numpy()

* Re-implement Pianoroll 16 lzqlzzq
* Second is fully supported now 17 Yikai-Liao ilya16
* [nanobind](https://github.com/wjakob/nanobind) is introduced as the new python binding framework instead of pybind11, to reduce overhead. Yikai-Liao The overhead benchmark is available in #18
* A yet to be completed [document](https://yikai-liao.github.io/symusic/) is added to github pages. We choose [mdbook](https://github.com/rust-lang/mdBook) as the framework. Yikai-Liao
* A filter method is added for all the List like objects in symusic Yikai-Liao , you can use them like this:
python
score.tracks[0].notes.filter(lambda note: note.pitch > 60, inplace=True)
`

0.2.5

We copy key performance improvements from the `librarify` branch manually , basecaus the new pianoroll interface design is stuck 16
And we want to let all enjoy the new midi parsing speed, which would be several times faster.

In this version:
* Midi parsing performance is significantly improved Yikai-Liao lzqlzzq
* utf8 path on windows is supported (this issue is found by Natooz)

Here, we would like to thank [intel vtune](https://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html) for its accurate analysis of hotspot functions, which allows us to quickly optimize the performance of our code.

Page 4 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.