web based music sheet viewer (go, pdfjs) as a single binary
GPL-3.0 License
A simple cross-platform browser-based pdfjs-based viewer to display and search music sheets.
P
and perform a fuzzy search.1,2
to scroll to previous/next page using a programmable foot pedal.See http://demo-digitalmusicstand.patwie.com/ for a subset of the Mutopia Project which are released under Creative Commons Attribution-ShareAlike.
Press p
and then type monlgiht3
(with typos).
You can use the arrow keys (up/down) to navigate. But for now select Sonata No. 14 Moonlight (3rd Movement: Presto Agitato)
and press the enter
key. To scroll to the next page use the right arrow key (or the key 2
).
The short cuts 1
and 2
are for a programmable foot pedal
Download from the release page. The single binary contains all files.
Or build it yourself:
git clone https://github.com/PatWie/digitalmusicstand.git
cd digitalmusicstand
# only run once: minify static assets
wget https://github.com/tdewolff/minify/releases/download/v2.6.1/minify_2.6.1_linux_amd64.tar.gz
tar -xvf minify_2.6.1_linux_amd64.tar.gz && rm -r cmd && rm LICENSE.md
make
# run multiple times
go build
Instructions to install the required dependencies and their known-to-be-working versions are available at https://github.com/PatWie/digitalmusicstand/blob/master/.docker/dms-release.dockerfile
./digitalmusicstand --sheets /path/to/pdfs --listen :3000
The files in the sheet directoy need to follow the convention interpret_title.pdf
.
Whitespaces should be replaced by '-'.
Point your browser to http://localhost:3000
Alternatively, the YAML format can be used to add songbooks or complex sheets.
Example 1 (Songbook):
# content of The_Big_Book_of_Jazz.yml
path: The_Big_Book_of_Jazz.pdf
artist: Various Artists
title: The Big Book of Jazz
songs:
- artist: Artist 1
title: Song 1
pages: [2, 3]
- artist: Artist 2
title: Song 2
pages: [4, 5, 6, 5, 6]
- title: The Big Book of Jazz (Full book)
Example 2 (single sheet):
# content of Let_it_be.yml
path: Let_it_be.pdf
artist: The Beatles
title: Let It Be
path
.To activate this functionality use the --parse-yaml
flag:
./digitalmusicstand --parse-yaml --sheets /path/to/pdfs --listen :3000