Skip to main content

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', 'major')
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!


📝 License

This project is licensed under the MIT License.


Project details


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.11.0.tar.gz (6.8 kB view details)

Uploaded Source

File details

Details for the file pysongtool-0.11.0.tar.gz.

File metadata

  • Download URL: pysongtool-0.11.0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.1

File hashes

Hashes for pysongtool-0.11.0.tar.gz
Algorithm Hash digest
SHA256 b4d443959b2470054fc2fe5649b83f1d4a65a7cfd4ff937269445fd9679688c8
MD5 e5a02674d73e22a69d203c29deff88d0
BLAKE2b-256 57acb3e9091ee14ce571966b999030ce371279586325a8083ae8799bee30cf72

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page