I’d need to know if there is a way to pop-up automatically notes after a song is loaded, for example an image or just some text (used as memo). On stage, maybe the laptop is bit far away and not so comfortable to reach the laptop to switch on “Show Notes” tab, and neither a “good view” for the audience…
Also, in the “Text” field is possible to insert “Date”, “Time”, “Folders”… what’s the meaning?
As far as I know, and my experience also tells me so, Cantabile will startup the way you’ve left/saved it.
So if you save it in live mode with the notes enabled, they will show up per default on next run.
Those date, time and so on are placeholders, that will be replaced with it’s current value.
So you can inluce “$(yyyy)-$(mm)-$(dd)” in your notes (or any other format) and it will display the current date.
Same for songname, mediafiles, etc.
I’d like to revisit this request from Mistheria from waaaay back. With the recent advances I was wondering if a feature like this would be possible. A pop up window that the user can determine what is displayed in it and that can have timed duration that could be set including always on. There is an Display Alert pop up window but this other pop up I speak of would be more for controlled display of temporary messages that could stay up till closed or till their timer ran out. Is this something you have already on the back log @brad ? Or are there longer range plans for user GUI spaces on the back burner of the development? I remember you talked about the possibility of user control panels in some discussions previously.
This topic touches on a few different areas with different timelines and development costs, but here’s some ideas thoughts:
Cantabile already has several similar places that display information:
The status panel on the main toolbar at the top of the main window
The delay load popup panels
The show notes panel
The show notes panel is the only place capable of displaying anything more complex than simple text (ie: it can display images and has some simple formatting)
The status panel and the delay load popup panel can both display messages with timeouts
The display alert binding point can display a message but it’s more for diagnostic purposes and is modal and requires ok click to close.
What if there was a binding point that could display a message in the status panel, or as a delay load style popup?
What if there was a "“user message” binding point that you could send a message to (with optional timeout) and it becomes available in a $(UserMessage) variable - which you could then display in a show note, on the controller bar, read from binding expressions etc…
The other thing I’ve considered in the past is a message log window that could display messages, with a history.
It does timed or toggled pop-ups and is controlled by sending sysex via (physical or virtual) MIDI connections. But the messages it can show are limited to a single line of text - just quick status messages.
I am more in favor of the delay load style pop up that can auto size and as stated have control over duration. It would also need to remember the screen position it pops up at per/song. It would need to be able to display text strings and/or existing functions. Selectable stay on top would be a nice feature too.
Interesting, what would you be able to use as a message? Text, Text & functions? In my case I would prefer it was available as a pop up but I see where for the show notes where your normal show notes were prepared and the message over rode the view and forced the “user message” to the front. When it timed out the regular show notes would return.
Thank you for this Torsten, it does a lot of what I had in mind but as you noted was designed for simple messages and I had hoped to tap into Cantabile’s functions for display as well as simple messages. What you created is a nice piece of kit though and it may find it’s way into my world.
Currently you can’t bind from a sys-ex message but I was thinking about providing a way to use a sys-ex pattern to extract a value and use it as a binding source. But… sys-ex patterns don’t support extracting strings and not sure how hard that would be to add - I guess it depends how complex the sys-ex is.
Essentially I’m thinking about it this way: make receiving a sysex message on a specific port a binding source, so the value of the binding source would be the sysex message (array of Uint8). Then have a function SysexToString(value, begin, end) to extract a string from a known position in the sysex message.
We’d also have to get a way to have a binding condition that evaluates the first couple of bytes to identify the correct sysex message (something like “value[3…6] == 0x47 0x 53 0x22 0x00”).
With these two capabilities, a lot could be done processing incoming sysex…
I think this needs to be split into two parts - you’d at least want some sort of pattern matching at the source side of the binding so that routing decisions could be made on the audio thread. So maybe a pattern match at the source side, followed by string/value extraction in the mapper.