Notes and document viewer

Regarding notes and document viewer the more I think about this the more I agree with comments elsewhere that a score reader is probably outside the scope of Cantabile and I’d be better to focus on better integration with existing dedicated readers.

However that doesn’t mean there’s not a case for some sort of user notes capability in Cantabile - more along the lines of reminders and simple lyrics and chord progression display. ie: something a lot simpler than a score reader/document viewer. At this stage (at least initially) it would probably just be plain text and images - limited yes, but covers many typical use cases.


1 Like

:+1: I agree after having been through this process and learning what could be done within the scope of the program.

:+1: second that!

There are a number of score readers on various platforms. Especially useful to me are the ones for tablets - I simply have an 8 inch tablet sitting on top of my master keyboard displaying lyrics.

Wouldn’t want my Cantabile machine there - that one is a bit bigger and sits quietly to the side of my master keyboard. I only glance there once in a while to make sure I’m still in the correct song state.

Actually, that would be an interesting addition to Cantabile: just a small USB tethered display (LED?) that displays nothing but the current song / song state. Velcro it to your master keyboard and always know where Cantabile is without needing a big screen. Just dreaming … :wink:



I agree too that the rendering of scores, or sophisticated layouts is beyond the scope of Cantabile, and that better integration for triggering page turns etc. in dedicated display software is probably the way to go. However if Cantabile may support plain text and images, can I make a request for simple HTML rendering? Could be as simple as each song state having a local file URL pointing to some webview-renderable content, which could be plain text, an image, or HTML that references embedded media (even including score). Obviously we’d need to author this HTML ourselves externally - editing stuff like that would be beyond the scope of Cantabile! I would imagine it ought to be straightforward to implement…?

Hi all,

I wanted to add that since we will use external executable files to achieve some of this task, could we improve or simplify the programming for this task. As it is now you :

  • Set up trigger
  • Select executable option
  • Select Target
    - Point to Exe File Directory
    - Browse for filename and extension for the desired target file
    - Prepare command line syntax for use

I think that’s right but correct me if I missed something. How I think it should work is :

  • Set up trigger
  • Select the executable file from drop down list or browse to it and select
  • Select the target file you wish to act on

Can the syntax we see now be hidden from user and assembled and executed automatically hidden from view using the few user inputs from above idea? Would doing this leave out needed capability or screw something up? If anyone else can think of something chime in.

Ok, here is a small thing I want to share with you guys:

I wrote a small C# program which is able to process
csv-files which contain song information like chords, lyrics etc and
display it on the screen in a nice way.

I attached an example of a csv-file at the ende of this post and here the output of the program:

I tried it already in cantabile with executing an external program with parameters for
the csv-file and the location and size of the container and it works
nicely. Here an example of the calling: noteviewer.exe c:\song.csv 0 0 1000 1000
where the last 4 paramteres are position x+y from the top left of the screen and the width and the height of the container where the notes are displayed.

Example for the Part “Intro Solo Git”:

*Intro Solo Git
G/(D) A/(E) Hdim/(E) A/(E) Em/(E) |8x


This is cool! A question, is your program display size fixed or adjustable and what actual size do you have it on your screen?


@Neil_Durant HTML is not something I really want to include directly in Cantabile. Unless it was a very limited subset that Cantabile rendered directly, bringing in a html rendering engine presents all sorts of issues.

On the other hand this would work well if Cantabile was serving up the live mode interface via a built in web server and you just pointed a browser at it. This would also present the opportunity for some radically customized views.

@dave_dore noted… let me think about it.

No, it’s adjustable in size and position on the screen. Here two examples of my “normal view” in rehearsal mode with different sizes:

Screen resolution of this desktop is 1920x1080. First container has the size 1000x1040 and the second 500x500.

Greetings, Tom


Greetings to you Tom and Thanks for the answer and the great pics! :grinning: I have been making jpegs and using irfanview set to allow only one window at a time and set to custom size. Not the best solution but I can size the fonts any size depending on what I am displaying. Always looking for a better way so I will follow this topic with interest.

I’ve built my own LivePrompter tool - a teleprompter specialized to work for live musicians.

It uses the ChordPro format (you can grab thousands of already scripted songs from the web and it’s pretty easy to edit) and renders it to HTML (internally) to display it on screen and scroll throught the song in time with the music.

Looks like this in action (always runs full screen):

This is the main screen to select songs, books (=subsets of the whole catalog) or playlists

I’m using this on a dedicated tablet directly on my masterkeyboard. That’s why I don’t really need Cantabile to do any of this - Windows tablets are pretty cheap by now :smile:

The underlying files are simple .txt files with lyrics and chords, plus some metadata:

{title:Hey Joe}
{artist:Jimi Hendrix}
{duration: 04:38}
{cc9:-- Basic Piano, Organ D-1}
{cc8:-- Piano mit Wurly}
{cc8:-- Organ auf EXP, Leslie auf Mod}

{cc0:--- start with guitar intro ---}

Verse 1:
[C]Hey [G]Joe, [D]where you [A]goin’ 
with that [E]gun in your hand?

[C]Hey [G]Joe, I said [D]where you [A]goin’
with that [E]gun in your hand?

[C]I’m goin’ down to [G]shoot my old lady, 
[D]You know I caught her [A]messin’ ’round
with an[E]other man.

If anyone is interested in using this, just let me know - it’s free for the time being :wink: I haven’t gotten around to doing the documentation, but if there’s enough interest, I might as well spend some time on documenting the beast.

It’s pretty stable by now - I’ve been using it live for some time now and it’s been behaving nicely so far. There are also small tools around this, e.g. to render the files to printable HTML or to automatically transpose songs to other keys (with meaningful harmonic interpretation of chords…), etc., but it’s all a bit geeky (configured thru .ini files in a text editor :slight_smile: , no fancy dialog boxes here…)

Apologies @brad for the shameless plug - but I guess it fit the context :wink:




Funny - looks like we’ve all come up with our own solutions to the synchronised music notes problem!

I wrote a C# program that responds to MIDI bank and program changes on a particular channel, and brings up a pre-prepared HTML page based on the bank (song) and program change (part of song). The HTML files have the bank and program changes embedded in the filename, so when I run the program it finds all the HTML files in a particular folder, and forms a mapping from bank/program to file, and renders it in the window, along with the file for the next part of the song under a horizontal split. Works really nicely, and it automatically pages through as I work through the parts of the songs.


I’m surrounded by software engineers that play music. Is there a pattern here? Anyway it’s great!:grinning:

I’ve worked with a lot of software developers and I’ve noticed a definite pattern where the better developers often play music. I don’t know if it’s correlation or causation. If it is causation, I’m not sure which way the causation goes, but there seems to be something there.

btw: I think it’s great you guys are building and sharing these tools and pleased to have discussion about them here on the forum. ie: no need to apologize @Torsten :smile:

Brad, if CV3 can work better than CV2 with PDF Reader, I would be very happy. Just had too many crashes with CV2 and PDF Reader working at the same time. Integration…YES

I’d like to try out your program @Neil_Durant and @Torsten. Can you provide a way to download it?

My program isn’t really in an easily-usable state without me writing some documentation on how to install it - I don’t currently have an installer, as I just wrote the software for my own use. I’ll have a think about putting together a version for public consumption…


Here you go: everything you need is in this thread!

Have fun!


1 Like

Thanks. I’ll test it out.