Home

Awesome

Digital Music Stand

Build Status

A simple cross-platform browser-based pdfjs-based viewer to display and search music sheets.

<img src="./.github/digitalmusicstand_001.gif" />

DEMO

See http://demo-digitalmusicstand.patwie.com/ for a subset of the Mutopia Project which are released under Creative Commons Attribution-ShareAlike.

Handling

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).

Shortcuts

<dl> <dt>h</dt><dd> opens help dialog</dd> <dt>p</dt><dd> opens prompt for a query</dd> <dt>u</dt><dd> opens dialog to upload pdf (when enabled)</dd> <dt>enter</dt><dd> loads select sheet</dd> <dt>esc</dt><dd> closes all modal dialogs</dd> <dt>arrow key down</dt><dd> selects next entry in result list</dd> <dt>arrow key up</dt><dd> selects previous entry in result list</dd> <dt>arrow key right or key '2'</dt><dd> scrolls to next page</dd> <dt>arrow key left or key '1'</dt><dd> scrolls to previous page</dd> </dl>

The short cuts 1 and 2 are for a programmable foot pedal

Get it

Download from the release page. The single binary contains all files.

Or build it yourself

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

Usage

./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

Add Songbooks

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

To activate this functionality use the --parse-yaml flag:

./digitalmusicstand --parse-yaml --sheets /path/to/pdfs --listen :3000