Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/SwayamSahoo11742/Scopul
A python package to extract information from MIDI files
https://github.com/SwayamSahoo11742/Scopul
midi music package python sheet-music
Last synced: about 1 month ago
JSON representation
A python package to extract information from MIDI files
- Host: GitHub
- URL: https://github.com/SwayamSahoo11742/Scopul
- Owner: SwayamSahoo11742
- License: mit
- Created: 2023-02-13T23:17:14.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-08-30T02:40:00.000Z (over 1 year ago)
- Last Synced: 2024-11-08T20:49:21.648Z (about 2 months ago)
- Topics: midi, music, package, python, sheet-music
- Language: Python
- Homepage: https://pypi.org/project/scopul/
- Size: 242 KB
- Stars: 12
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
![Scopul](https://user-images.githubusercontent.com/117121187/219178220-f0db6cef-ab90-406f-acfc-e14b6ff8677d.jpg)
![PyPI - Status](https://img.shields.io/pypi/status/Scopul)
![PyPI](https://img.shields.io/pypi/v/scopul)
![PyPI - Downloads](https://img.shields.io/pypi/dm/scopul)`Scopul` is a python package to extract data from MIDI files!
![scopul-rep](https://user-images.githubusercontent.com/117121187/219198671-72a73a16-b168-4b4c-abe5-e384c9624e3c.gif)
Scopul can also do additional functionality such as generating PDFs or tempo conversions.
## Installation
```cmd
$ pip install scopul
```## Simple Example
```python
from Scopul import Scopul, config_musescorescop = Scopul("test.mid")
# Get tempo
print(scop.get_audio_lenght())# Sample output
>>> "12.467519999999997"```
## Future Plans
π‘ = In progressπ = To-Do
π’ = Done
### Things to look forward in the next major release, any suggestions will be appreciated
- Deletion of elements (Only addition is currently supported)π
- Create and add parts, consisting of multiple other Scopul Musical Elementsπ
- Chord extraction: Allow the extraction of chord progressions from the MIDI file.π
- Key detection: Implement a function to detect the key of the MIDI file.π
- Melody extraction: Allow the extraction of the melody from the MIDI file.π
- Harmonic analysis: Provide harmonic analysis of the MIDI file by identifying chords and their progressions.π### Things for the distant future, any suggestions will be appreciated
- Drum track extraction: Allow the extraction of the drum track from the MIDI file.π
- Quantization: Implement a function to quantize the notes in the MIDI file to a particular grid size.π
- MIDI file validation: Implement a function to validate the structure of the MIDI file and detect any errors.π
- Export to other formats: Allow the export of the MIDI data to other formats such as CSV, JSON, or XML.π
-
None of this is happening anytime soon.
## Bugs
- A lot of the MIDI to PDF conversions are still throwing errors
- PDFs and XMLs are not generating with title## Links
Documentation - [https://swayamsahoo11742.github.io/](https://swayamsahoo11742.github.io/)Documentation Source Code - [https://github.com/SwayamSahoo11742/SwayamSahoo11742.github.io/](https://github.com/SwayamSahoo11742/SwayamSahoo11742.github.io/)
PyPi - [https://pypi.org/project/scopul/](https://pypi.org/project/scopul/)
GitHub - [https://github.com/SwayamSahoo11742/Scopul/](https://github.com/SwayamSahoo11742/Scopul/)
## Credits
Thanks to [Music21](https://web.mit.edu/music21/doc/) and [MuseScore](https://musescore.org/en/download) for making this possible## Contact or Help us!
If you have any questions, kindly send an email to [email protected]. If you have any suggestions or would like to contribute to the improvement of the code, including efficiency and best practices, feel free to reach out to me via email or create a pull request. I most likely wonβt be actively adding and developing this project, but I will still implement any sugegstions that are fit.Thank you very much!