Skip to main content

Interactive Score Editor

Project description

This package has been renamed as isedit



Interactive Score Editor

A python library that combines score editing tools with audio output.
PyPI Build Status codecov image image

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 importlib  
ise = importlib.import_module("interactive-score-editor.src.Base")
Piece = ise.Piece
p1 = Piece(60, "3/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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

interactive-score-editor-0.1.3.tar.gz (19.9 kB view details)

Uploaded Source

File details

Details for the file interactive-score-editor-0.1.3.tar.gz.

File metadata

File hashes

Hashes for interactive-score-editor-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7a0bb3dffd53cc3a7be5a0a83909e2aeeb71a24ecde5b3dd14802341963e5080
MD5 b28a3c8db1c25a9f3e5fdab7f23a5ff5
BLAKE2b-256 ce833d41f70015cfdc846ab229b72d45bd5204e148ba64c31becaaa4674b7754

See more details on using hashes here.

Supported by

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