PipeScore is designed around 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.
Watch the video for an introduction to using PipeScore.
It is currently under development - see todo.md for a rough roadmap.
PipeScore is powered by:
- typescript
- mithril for rendering
- firebase for saving, user accounts, and hosting, via the following libraries:
- esbuild for building
- eslint for linting
- prettier for code formatting
- Reactive embellishments - a faster way to input gracenotes
- Built-in documentation
- Undo / Redo
- Automatic note grouping and spacing
- Sharing using URLs
- Playback
- Parts, repeats, second timings
- Ties, triplets, time signatures, text boxes
- Importing from the Bagpipe Music Writer format
- Automatic saving, downloading and uploading of files
- ~12000 lines of code
See src/PipeScore/README.md for documentation.
This manual is a helpful guide to BWW files.
You will need:
python3(andpip3)npm
To install dependencies, run:
$ npm install # install JS dependencies
$ pip3 install svgwrite # install svgwrite, for building iconsTo build JS files, icons and HTML pages, run:
$ npm run build # build JS, static pages and iconsRun 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 # typecheckTo build a production JS bundle run:
$ npm run build # build minified bundleThank you to any and all who have contributed code to PipeScore!
- benjaminelliot - the initial implementation of BWW file parsing
