Skip to content

macarc/PipeScore

Repository files navigation

PipeScore

A bagpipe notation app

PipeScore is a free, easy-to-use, online bagpipe notation application. Use it here!

PipeScore's unique feature is reactive gracenotes - pipe embellishments that automatically update when you change the note that they are on. This means gracenotes can be added in sets (e.g. 'add a doubling to this note') rather than the user having to individually pick the correct one.

GIF of reactive gracenote

Watch the video for an introduction to using PipeScore.

PipeScore is powered by:

Features

  • Reactive embellishments - a faster way to input gracenotes
  • Automatic note grouping and spacing
  • Sharing using URLs
  • Playback
  • Ties, triplets, time signatures, text boxes
  • Parts, repeats, second timings
  • Harmonies
  • Multiple tunes and pages
  • Undo / Redo
  • Importing/exporting from the Bagpipe Music Writer format
  • Exporting to PDF
  • Cloud saving, downloading and uploading of files
  • Built-in documentation, as well as a comprehensive help page
  • Multi-language interface (currently English and French)
  • Intuitive user interface for all of the above
  • ~16000 lines of code (including tests)

Documentation

See src/PipeScore/README.md for documentation.

This manual is a helpful guide to BWW files.

Running locally

You will need:

  • python3 (and pip3)
  • npm

To install dependencies, run:

$ npm install            # install JS dependencies
$ pip3 install svgwrite  # install svgwrite, for building icons

To build JS files, icons and HTML pages, run:

$ npm run build     # build JS, static pages and icons

Run the following commands to run locally, ideally in separate terminals:

$ npm run dev       # run the development server
$ npm run watch     # rebuild JS on changes
$ npx tsc --watch   # typecheck

To build a production JS bundle run:

$ npm run build    # build minified bundle

Contributors

Thank you to any and all who have contributed code to PipeScore!