A Python library that gives musical theory contend.
Project description
PySongTool
🎵 Music Theory with Python
Version: beta 0.10
PySongTool is a Python library designed to help provide information involving music theory
This project follows SOLID principles and uses the Facade design pattern to organize and simplify the management of classes and functions.
📚 Requirements
- Python >= 3.7
🔧 Installation
You can install PySongTool directly from PyPI (when available) or locally:
pip install pysongtool
Or clone the repository and install it manually:
git clone https://github.com/your-username/pysongtool.git
cd pysongtool
pip install .
🗂 Features
- Generate chords from a root note and chord name.
- Get all available scales or chords.
- Explore musical intervals based on a root note.
- Retrieve detailed scale information, including notes and associated chords.
🚀 How to Use
Creating an Instance
from pysongtool import PySongTool
tool = PySongTool()
Generating a Chord
result = tool.chord('C', 'maj')
print(result)
# {'chord': 'Cmaj', 'notes': ['C', 'E', 'G']}
Listing All Chords
all_chords = tool.all_chords('C')
print(all_chords)
# [{'maj': {'chord': 'Cmaj', 'notes': ['C', 'E', 'G']}}, ...]
Generating a Scale
scale = tool.scale('C', 'major')
print(scale)
# {'notes': ['C', 'D', 'E', 'F', 'G', 'A', 'B'], 'chords': ['Cmaj', 'Dmin', ...]}
Getting Intervals
intervals = tool.intervals('C')
print(intervals)
# [{'name': 'Unison', 'semitones': 0, 'note': 'C'}, ...]
Calculating Intervals Between Notes
intervals = tool.get_interval('C', 'E', 'G')
print(intervals)
# [{'note': 'E', 'interval': {'name': 'Major Third', 'semitones': 4}}, ...]
🛠 Contributing
Contributions are welcome! To collaborate:
- Fork the repository.
- Create a branch for your feature/bugfix:
git checkout -b my-feature
- Commit your changes:
git commit -m "Description of my feature"
- Push to your fork:
git push origin my-feature
- Open a Pull Request in the main repository.
📝 License
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pysongtool-0.10.tar.gz
(4.8 kB
view details)
File details
Details for the file pysongtool-0.10.tar.gz
.
File metadata
- Download URL: pysongtool-0.10.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a2da94cb2c3117ab5bd7cc3cc2a276dc8598f6c4b6387a56acac3f336ff616f |
|
MD5 | 19a2a0397ec7b51fd3f087d9610fe62b |
|
BLAKE2b-256 | f7485e7432ca7265d73cec85f908a4ad168d6c7076823dcd15a9dc9692952bba |