Interactive Score Editor
Project description
Interactive Score Editor
A python library that combines score editing tools with audio output.
Overview
Interactive Score Editor is a python library that helps bridge a music notation library (such as Lilypond via Abjad(https://abjad.github.io/index.html) to an audio player (such as pydub). The goal is to resolve the following: "Abjad provides no audio output beyond LilyPond’s built-in MIDI functionality" (https://abjad.github.io/first_steps/audience.html). Using LilyPond's MIDI is will take longer and be more complicated than a built in feature to play notes directly.
A successful implementation will be helpful both for individuals creating music-composition tools / applications, as well as individuals looking to play around with music composition and sound in a notebook, and will cut the time from starting a music project to hearing actual sound (an element which has been a personal annoyance).
Installation
Prerequisites:
- Python >=3.7,
- lilypond, portaudio
- numpy, pyaudio, midiutil, ipython, pygame
To install python packages:
$ pip install numpy
$ pip install pyaudio
$ pip install midiutil
$ pip install ipython
$ pip install pygame
Lilypond (https://lilypond.org) and portaudio (http://www.portaudio.com) can be installed from their websites, with brew
$ brew install lilypond
$ brew install portaudio
or with apt
# sudo apt install portaudio19-dev python3-pyaudio
# sudo apt install -y lilypond
Ensure that lilypond runs from the command line by running
$ lilypond --version
Quick start example
For now, ensure you have a folder named temp
in the current directory in order to ensure functinality of getScore() (this will be amended in a future release)
import isedit
Piece = isedit.Piece
p1 = Piece(60, "3/4")
p1.addVoice("e' f' g'", 4)
p1.addVoice("e' f' g'", 4)
p1.addVoice("c'4 d'4 e'4 f'4 g'4 a'4 b'4 c''4 b'4 c''2.")
p1.play()
p1.getScore()
The above example demonstrates the primary functionality of the piece object; the ability to play and display notes using the same object.
Contributions
See the guidelines for Contributing
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
File details
Details for the file isedit-0.2.0.tar.gz
.
File metadata
- Download URL: isedit-0.2.0.tar.gz
- Upload date:
- Size: 21.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6711431fe45f724b2eee23ddbce6e2b02b64fac76ad2f2d581b8d5e1db8a15f4 |
|
MD5 | 179a651bd81f484b9cf21da8834d4c82 |
|
BLAKE2b-256 | f66546ae998d43225637fadb0967fd84aa8652e8d1802c3d5c7ebe18032ead92 |