Background
See these posts for some background thoughts, suggestions, ideas etc…
- RFC: Replacing Show Notes (kinda, maybe)
- RFC: Show Notes Autoscrolling Requirements
- Thinking about show notes
- Experimental Video Playback Solution (cantabile-media-server)
- Experimental MIDI Controllable PDF Viewer
Requirements
Distilling all of the above down, this is what I’m aiming for as the main requirements:
- Improved text formatting (eg: ability to color individual words, in paragraph formatting etc…)
- Integration with Cantabile’s states (eg: show/hide sections based on state, auto scroll to state marker)
- Ability to embed cantabile $(Variables) in notes.
- Support for images
- Support for PDF files (or parts thereof)
- Support for multi-column layout and/or tables
- Other formatting features like bullet lists, numbered lists, quotations etc…
- Ability to view notes both within Cantabile and remotely via Web-UI. (eg: viewing notes on a tablet)
- Ability to deliver different notes to different band members
- Support for ChordPro display
- Support for auto-scrolling based on song timing and/or bindings
- Support for manual scrolling via MIDI control
- Ability to convert old show notes to new system
Basic Approach
Here’s initial approach I’ll be taking with this:
- Show notes will become a plain text file format
- The notes will be stored as a separate file next to the associated song file. (eg: MySong.cantabileSong and MySong.cantabileNotes live together)
- Editing will be done using an external text editor of your choice
- The format will be markdown, with embedded directives for additional control and markup
- The notes will be displayed in a separate web browser
- Integration with Cantabile will be via the Cantabile Network API.
- PDF rendering using Ghostscript
Later:
- Support for storing the notes content embedded in Cantabile (rather than as a separate file)
- Support for editing the notes directly in Cantabile (rather than with a separate editor)
- Embed a web browser in Cantabile so notes can be viewed in-place without requiring a separate window.
- Direct integration between the embedded browser and Cantabile (rather than via the network API).