Cantabile and LivePrompter - now better together!

Yes tried that now-it works fine on channel 1 with omni. :slight_smile:

Cheers,
Al

OK, I’ve found the gremlin - uploaded a new build that should work correctly with Midi Channels for input keys now. Can you give it a go and see if it works for you as well?

Download link is in the first post above - simply copy the LivePrompter.exe file from the .zip archive to your program directory and overwrite the old version (or move it elsewhere for safekeeping :wink: ). Everything else can stay as it is.

Cheers,

Torsten

1 Like

Wow…making and uploading a new build in less then 30 minutes!! Torsten…you are certainly “Da Man”…but I think everyone on this site knows that!!

2 Likes

Ooops - forgot one thing: when you use the new build, you’ll also want to install the “Roboto” and “Roboto Mono” font families (included in the .zip, “Fonts” directory). I’ve changed the GUI font in LivePrompter for something a bit more clean and readable than the old “Deja vu”.

I’ll really have to get around to creating an installer :blush:

Cheers,

Torsten

1 Like

I regret to report that the “Roboto” family fonts are not in evidence within the font folder in that zip I just downloaded.

Could I have gotten a cached version??? Everything has 3-3-2017 dates on them…

Terry

gaaah - that’s what I get for cutting corners and uploading in the middle of the night…

yup, the Roboto font is not in the archive I uploaded (hadn’t updated my zip script) - you can simply download both Roboto and Roboto Mono families from Google Fonts and install them. Or wait until I upload an update later today.

Sorry for the confusion!

Cheers

Torsten

OK, updated archive online - now includes the Roboto and Roboto Mono families in the Fonts folder. Now I still need to update the manual…

Have fun!

Cheers,

Torsten

1 Like

Hi Torsten, thanks for doing this, I’ll try it later tonight.

While you are updating the manual…

There is the “Set List” -> “Selected Song Program” source binding available which I am using to send the selected song back into LP, for when you change a song in C3 and want it to remote control LP.

I don’t remember seeing that in the manual anywhere, or any discussion about it on this thread…

There is a problem If you have song change triggers going from C3 to LP and ALSO triggers from LP to C3. If you change songs too quickly, then race conditions occur and both programs get into a loop. At the moment I’ve worked around it by suppressing the return messages for a couple of seconds using BOME.

1 Like

Yeah, that’s one you’ll want to avoid. I’d suggest to make a hard decision, which system leads and only change songs there. For me, it’s LivePrompter (the tablet is right in front of me on stage), I’m not letting Cantabile remote-control LP’s songs, only pause/play and up/down.

Cheers,

Torsten

That’s a good one - wasn’t available when I wrote the guide on Cantabile & LivePrompter. I’ll definitively work that in when I do the next revision!

Cheers,

Torsten

Hi. This looks pretty useful. I am about to resurrect a project of mine, where the singer needs a comfort blanket. I would prefer that they didn’t :slight_smile: but if it helps, I would prefer a tablet of some sort on a Mic stand as opposed to an untidy A4 folder!

I will look into your software.

Hi Torsten,

I’ve been experimenting with running 2 instances of LP on the same PC. The 1st instance is a display just for me. I split my screen in 2 and use the left hand side for LP and the right hand side for C3. The 2nd instance is a display for the rest of the band on another monitor. I have copied the LP prog folder to a different location and set the text size to 128 for that instance. That means just the song title and the 1st couple of lines of text are displayed. I use these lines for song key and which beat number the song starts on. I also set the 2nd LP instance to full screen. I point both instances to the same DATA folder.

This all leads to 2 questions.

  1. Sometimes when I start LP, the song listing window does not appear. It seems to be off screen somewhere. I end up having to use Win+arrow keys to move other applications around so that LP is forced to come back to one of my screens. I do chop and change between monitor setups - 3 or 4 at home, 1 or 2 when out. The same happens with the song display window. Is LP possibly storing the “last used” window coordinates? When I then restart LP it then doesn’t check if those coords are still valid?

  2. My 1st instance of LP is in “Windowed” mode, so I can use Win+arrows to move it around. My 2nd instance is full screen. I cannot easily change which monitor the full screen instance appears on. Win+Arrows does not work. My work around is to start the 1st instance move it to the 2nd monitor then exit. This saves the last used coordinates. Then start the 2nd instance which comes up on the 2nd screen. Then I can start the 1st instance again in windowed mode and move it to the 1st screen. With other applications that have a full screen mode, normally you can switch it to Windowed mode to move it to the correct monitor before going full screen. Can you do that with LP?

Cheers.

1 Like

Wow - this looks like a pretty sophisticated way to use a simple tool like LivePrompter! TBH, it wasn’t really built with “dual-use” scenarios in mind.

Especially managing screen positions for TWO instances is a bit of a challenge: LivePrompter simply saves window size and position for the list window and the song window in the Windows registry on exit. It was never built for multiple list windows or song windows; so the values saved on exiting the LAST instance of LP will be written to registry and recalled on start-up.

  • Thanx for the suggestion in your 1st question - I’ll build a range check into LP. Will have to do some research on how wxWidgets treats multiple screens with different resolutions; I believe, the dimension range is just a big envelope rectangle, so possibly there is a scenario where a window may fit into that enveloping rectangle but will still be invisible. But outside such scenarios, I will probably come up with a healthy range check and move the windows to a “healthy” position if they fall outside the visible screen.
  • But there’s a downside to this - once you move back to your 3 or 4 monitor setup from a single monitor scenario, your window position will be on the first screen, since that’s where it was last saved. But at least you won’t have to find your window somewhere off-screen…

A broader solution that also addresses your multi-instance-issues could be to introduce a new variable in LivePrompter.ini: “ScreenLayout”. Simply a numeric parameter (default: 1) that tells LP to store and recall window coordinates in a different “slot” in the registry. With this, you could also deal with varying monitor configurations for the SAME instance of LP: simply use a different .ini file for each configuration.

I’ll have to look at this - shouldn’t be too complicated to implement! Will keep you posted in this thread once I have something ready to test.

Will have to do some work on the full screen issue - funny enough, the window coordinates stored for windowed mode do affect which screen the full screen version will pop up on. So, currently, you’ll need to start LivePrompter in windowed mode, move the song window to whatever screen you want the maximised version to display later, close it and then start it in full screen mode. But that’s a bit non-intuitive and convoluted, so I’ll change things for full screen: the full screen will always be displayed on the same window that shows the list window. Or I could (if wxWidgets allows this) allow an .ini setting that specifies which screen the song window should be maximized to.

BTW: there shouldn’t be a need to copy the LP prog folder to run two differently configured instances of LP on one system. Simply create different .ini files for each configuration and launch LP with the name of the .ini file as a parameter (set the shortcut target to “…\LivePrompter.exe MyConfig.ini”). Now start one instance with myConfig.ini and the other with bandConfig.ini - done!

That’s also how you would start your primary instance with different screen layouts for different monitor configurations - use an identical .ini file with just the ScreenLayout parameter set differently (once that parameter exists…).

Cheers,

Torsten

2 Likes

Hi Torsten, range check, screenlayout parameter, and full screen song window on the same screen as the list window sound perfect.

Thanks for the tip on launching multiple .ini files.

One more question - are the text size, and region size of the “next song” display at the bottom of the song window configurable?

Thanks!

OK, I’ve given it a first shot:

  • new .ini variable called “ScreenLayout” - set it to anything above 0 and you’ll create a new place to store and recall window positions. So, set it to ScreenLayout=1 for your “band” configuration, now its window positions will be stored in a separate place and not mess up your “personal” configuration. If ScreenLayout is set to 0, this is the same as not setting ScreenLayout at all in your .ini file, and your settings will be read from the “standard” layout.
  • new .ini variable called “FullScreenDisplay” - set it to the number of a specific display in your setup (same as in Windows Display Settings --> “Identify”), and full screen will be launched on this specific display, independent of where your list window sits. If FullScreenDisplay is out of range (i.e. this display number doesn’t exist), full screen will be launched on display #1
  • If FullScreenDisplay is not defined (or set to 0), the full screen will be launched on whatever display the list window currently sits. Simply move the window to whatever display and click “Go” - should now work.
  • screen fit check: every time a window gets created, LP checks if it fits inside the display or if it is out of range. Whenever a window is out of range, it simply gets relocated to coordinates (10,10). I’ve just made this a very simple check, so this happens even when a window is saved slightly off-screen - quick and dirty :wink: . When I have some more time, I may create a more sophisticated check…

Give it a quick whirl with your setup and let me know if this works! I’ve uploaded the newest executable here - simply replace your current one with it (if you have the newest version installed) . I will create a full installer later this week; also need to update the documentation…

Cheers,

Torsten

Nope - same as the header bar. This is part of the “fixed furniture” - haven’t seen the need to customize this yet. Any specific reason why you need this?

Cheers,

Torsten

Not important by any means - but here’s what the “band” screen looks like. If the next song line was bigger they could read that as well.

I’ll try the new version in a couple of hours - thanks for doing this!

OK, I get it! Will look at this when I get some more time.

One thing that might be interesting for your scenario: take a look at “custom comments” - a good way to show different things to your band-mates on your second screen than you are looking at yourself:

{cc1:This is a comment only for myself}
{cc2:This is a comment only for my band-mates}

Now if in your “personal config” you set “ShowCustomComments=1” and in your “band” config “ShowCustomComments=2”, you give specific directions on your second screen. Also, you might want to disable chord display in your “band” config to only show lyrics - “HideChords=yes”. That’s a nice one for sing-along nights - set your second config to “HideChords=yes” and “HideComments=yes” and maybe sprinkle in some Custom Comments for the audience…

A lot you can do with varying configurations on the same song files - in my band, I have three band members using the same song files - each with individual custom comments and view configurations (our mixing person doesn’t really need chords, but very specific comments like “make sure guitar solo is loud enough”…).

Cheers,

Torsten

Hi Torsten, I tried the new build.
ScreenLayout parameter seems to work as expected.
One slight inconsistency, is that if using FullScreen mode then the song window opens on the same screen as the song list, as expected. However if using Windowed mode, then the song window doesn’t open on the same window as the list window - I think it is using the same window as the last time full screen was enabled?

I havent tried FullScreenDisplay yet. Will report back when I do.
thanks!

When using Windowed mode, the position of the song window is stored individually, i.e. it opens wherever you last closed it. That’s the ScreenLayout - it saves the position of both windows. So just move it to whatever window you want to open it on - LP will remember the position. As long as you use different values of ScreenLayout for your two separate configs, you should be OK.

When there’s nothing saved (i.e. the first time you start LP with a new ScreenLayout number, the song window will open on the default screen. But if you then move/resize it and close LP, position and size should be remembered.

Cheers,

Torsten