Skip to main content

LilypondToBandVideoConverter

Introduction

The LilypondToBandVideoConverter is a python script that orchestrates existing command line tools to convert a music piece written in the lilypond notation to

  • a PDF score of the whole piece,

  • several PDF voice extracts,

  • a MIDI file with all voices (with some preprocessing applied for humanization),

  • audio mix files with several subsets of voices (specified by configuration), and

  • video files for several output devices visualizing the score notation pages and having the mixes as mutually selectable audio tracks as backing tracks.

For processing a piece one must have

  • a lilypond fragment file with the score information containing specific lilypond identifiers, and

  • a configuration file giving details like the voices occuring in the piece, their associated midi instrument, destination audio volume, list of mutable voices for the audio tracks etc.

Based on those files the python script -- together with some open-source command-line software like ffmpeg or fluidsynth -- produces all the destination files either incrementally or altogether.

The tool-chain has several processing phases that can be run as required and produce the several outputs incrementally. The following figure shows the phases and their results and how the phases depend on each other.

LilypondToBandVideoConverter phases

The files (in yellow) are generated by the phases (in magenta), the configuration file (in green) and the lilypond fragment file (in blue) are the only manual inputs into the processing chain.

Those phases are:

  • extract: generates PDF notation files for single voices as extracts (might use compacted versions if specified),

  • score: generates a single PDF file containing all voices as a score,

  • midi: generates a MIDI file containing all voices with specified instruments, pan positions and volumes,

  • silentvideo: generates (intermediate) silent videos containing the score pages for several output video file kinds (with configurable resolution and size),

  • rawaudio: generates unprocessed (intermediate) audio files for all the instrument voices from the midi tracks,

  • refinedaudio: generates (intermediate) audio files for all the instrument voices with additional audio processing applied,

  • mix: generates final compressed audio files with submixes of all instrument voices based on the refined audio files with a specified volume balance and some subsequent mastering audio processing (where the submix variants are configurable), and

  • finalvideo: generates a final video file with all submixes as selectable audio tracks and with a measure indication as subtitle

Installation and Requirements

The script and its components are written in python and can be installed as a single python package. The package requires either Python 3.7 or later.

Additionally the following software has to be available:

  • lilypond: for generating the score pdf, voice extract pdfs, the raw midi file and the score images used in the video files,

  • ffmpeg: for video generation and video postprocessing,

  • fluidsynth: for generation of voice audio files from a midi file plus some soundfont (e.g. FluidR3_GM.sf3),

  • sox: for instrument-specific postprocessing of audio files for the audio mix files as well as the mixdown, and

Optionally the following software is also used:

  • qaac: the AAC-encoder for the final audio mix file compression.

  • mp4box: the MP4 container packaging software

The location of all those commands as well as a few other settings has to be defined in a global configuration file for the LilypondToBandVideoConverter.

Installation is done from the PyPi repository via

pip install lilypondToBandVideoConverter

Make sure that the scripts directory of python is in the path for executables on your platform.

Further Information

A longer description is available here, part1 and here, part2. The detailed manual is available here.

Download files

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

Source Distribution

lilypondtobandvideoconverter-1.2.1.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lilypondtobandvideoconverter-1.2.1-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file lilypondtobandvideoconverter-1.2.1.tar.gz.

File metadata

File hashes

Hashes for lilypondtobandvideoconverter-1.2.1.tar.gz
Algorithm Hash digest
SHA256 de70bb84a7b45dbac4d16351af559c96932f4f9fcaffb85277ceb79801f2d425
MD5 37ac772aacefc8b0394d0b4a0ae970ff
BLAKE2b-256 698c2a63483a861bd40618ae7447a90dc9bc8b1dd8717293989af8de2c02e35f

See more details on using hashes here.

File details

Details for the file lilypondtobandvideoconverter-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for lilypondtobandvideoconverter-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 51e61cc4f2123a98f752edc49ad829234b6d1f9887e6e5cc9f23ba9481d0196d
MD5 2044681939c2b619f55730434a346eb8
BLAKE2b-256 3301d2111dcad9bffc92b538f1ea8720f51e5b6cf8fad5b3a60dcf35b89c0531

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.2.1 This release

2 files

1.1.1.post1

2 files

1.1.1

1 file

1.1

1 file

0.4

1 file

0.1.2

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page