Retour au classement

MTG/sms-tools

Pythonupf.edu/web/mtg/sms-tools

Sound analysis/synthesis tools for music applications

jupyter-notebooksound-analysispythonsound-synthesisteaching-materials
Croissance des étoiles
Étoiles
1.8k
Forks
765
Croissance hebdomadaire
Issues
3
5001k1.5k
sept. 2013déc. 2017avr. 2022juil. 2026
ArtefactsPyPIpip install sms-tools
README

sms-tools

Sound analysis/synthesis tools for music applications written in python.

The package includes the following sound analysis/synthesis models:

  • dftModel.py: models based on the Discrete Fourier Transform
  • stft.py: models based on the Short-Time Fourier Transform
  • sineModel.py: models based on a Sinusoidal Model
  • harmonicModel.py: models based on a Harmonic Model
  • stochasticModel.py: models based on a Stochastic Model
  • sprModel.py: models based on a Sinusoidal plus Residual Model
  • spsModel.py: models based on a Sinusoidal plus Stochastic Model
  • hprModel.py: models based on a Harmonic plus Residual Model
  • hpsModel.py: models based on a Harmonic plus Stochastic Model

Installation

Install using pip:

pip install sms-tools

When installing via pip, the Cython extension is built automatically if a compatible compiler and Python environment are available. This provides significant speedups for core routines.

pip install sms-tools

If you are developing locally or want to ensure the Cython extension is built, you can run:

pip install sms-tools
python setup.py build_ext --inplace

If you encounter issues with the Cython extension, ensure you have Cython, setuptools, and a C compiler installed. The extension is optional; sms-tools will fall back to pure-Python routines if unavailable.

You can verify which backend is active at runtime:

python - <<'PY'
from smstools.models import utilFunctions as UF
print("Using Cython backend:", UF.UF_C is not None)
print("Backend module:", getattr(UF.UF_C, "__file__", None))
PY

Binary packages are available for Linux, macOS (Intel & Apple Silicon) and Windows (64 bit) on all recent python versions.

For details about automatic Cython acceleration and fallback behavior, see the "Cython backend" section below.

To build and install the package locally you can use the python packaging tools:

pip install build
python -m build

Cython backend

sms-tools includes a compiled Cython extension for selected core routines. When available, it is used automatically for better performance. If it cannot be imported, sms-tools falls back to pure-Python implementations with the same public behavior (typically slower).

You can verify which backend is active at runtime:

python - <<'PY'
from smstools.models import utilFunctions as UF
print("Using Cython backend:", UF.UF_C is not None)
print("Backend module:", getattr(UF.UF_C, "__file__", None))
PY

Testing

To install test dependencies and run the test suite, use:

pip install .[test]
pytest

You can run a specific test file with:

pytest -v tests/test_cython_vs_python.py

This will execute all tests and print detailed output.

sms-tools-materials repository

There is a separate repository containing teaching materials, example notebooks, and exercises used in courses that use the sms-tools package. It includes Jupyter notebooks, audio examples, and practical guides to help students and researchers learn about sound analysis, synthesis, and transformation with sms-tools.

For more information and resources, see: https://github.com/MTG/sms-tools-materials

License

sms-tools is made available under the terms of the Affero GPL license (http://www.gnu.org/licenses/agpl-3.0.en.html).

Dépôts similaires
jakevdp/PythonDataScienceHandbook

Python Data Science Handbook: full text in Jupyter Notebooks

Jupyter NotebookMIT Licensescikit-learnnumpy
jakevdp.github.io/PythonDataScienceHandbook
49.3k19.1k
CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers

aka "Bayesian Methods for Hackers": An introduction to Bayesian methods + probabilistic programming with a computation/understanding-first, mathematics-second point of view. All in pure Python ;)

Jupyter NotebookMIT Licensebayesian-methodspymc
camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/
28.2k7.9k
ageron/handson-ml

⛔️ DEPRECATED – See https://github.com/ageron/handson-ml3 or handson-mlp instead.

Jupyter NotebookApache License 2.0tensorflowscikit-learn
25.6k12.8k
trekhleb/homemade-machine-learning

🤖 Python examples of popular machine learning algorithms with interactive Jupyter demos and math being explained

Jupyter NotebookMIT Licensepythonjupyter
24.7k4.2k
AccumulateMore/CV

✅(已完结)超级全面的 深度学习 笔记【土堆 Pytorch】【李沐 动手学深度学习】【吴恩达 深度学习】【大飞 大模型Agent】

Jupyter Notebookbookchinese
22.8k2.6k
MLEveryday/100-Days-Of-ML-Code

100-Days-Of-ML-Code中文版

Jupyter NotebookMIT Licensemachine-learningpython
22.2k5.5k
recommenders-team/recommenders

Best Practices on Recommendation Systems

PythonPyPIMIT Licensemachine-learningrecommender
recommenders-team.github.io/recommenders/intro.html
21.8k3.3k
plotly/plotly.py

The interactive graphing library for Python :sparkles:

PythonPyPIMIT Licensepythond3
plotly.com/python/
18.7k2.8k
emilwallner/Screenshot-to-code

A neural network that transforms a design mock-up into a static website.

HTMLOtherkerasdeep-learning
16.5k1.5k
Data-Centric-AI-Community/fg-data-profiling

1 Line of code data quality profiling & exploratory data analysis for Pandas and Spark DataFrames.

PythonPyPIMIT Licensepandas-profilingpandas-dataframe
docs.sdk.ydata.ai
13.7k1.8k
jupyter/notebook

Jupyter Interactive Notebook

Jupyter NotebookBSD 3-Clause "New" or "Revised" Licenseclosemberjupyter
jupyter-notebook.readthedocs.io
13.3k5.7k
chenyuntc/pytorch-book

PyTorch tutorials and fun projects including neural talk, neural style, poem writing, anime generation (《深度学习框架PyTorch:入门与实战》)

Jupyter NotebookMIT Licensepytorchpytorch-tutorials
12.8k3.7k