I recently enabled this option in Cantabile Performer x64, but it doesn’t seem to work – at least, not the way I expected it to:
I have two music keyboards connected to the PC via USB, a Nord Stage 3 and a Studiologic SL73 master keyboard.
When I play notes on either keyboard the green MIDI activity indicators flash, so MIDI is clearly reaching Cantabile.
The Windows display timeout is set to 10 minutes on the PC. If I return to find the display dark, pressing keys on the music keyboards does not re-enable the display.
Moving the mouse or pressing a (computer) key always re-enables the display.
I also have a second PC connected to the first by RTPmidi (LAN). This connection is almost never used for MIDI input, though, just for cloning the MIDI output to another PC.
Any thoughts? Am I misinterpreting how this option is supposed to work?
This should work according to your description and my understanding of how it should work. It would be a good idea to flag this post for @brad since it could be a bug.
I just checked this on two different machines and it seems to be working fine here.
Are you sure it’s just the display being turned off? If the machine is being suspended then this won’t work. ie: suspended machine can be woken by hitting a key, but not by MIDI (at least not by using Cantabile’s mechanism).
One thing you could check is Cantabile’s debug log. Try this:
Start Cantabile
Go to Tools → Options → Diagnostics
Turn on Console Logger
Wait for display to sleep
Wake the machine
Check the console log window and see if the engine was stopped/restarted.
I did the tests as you suggested. I could not find a “console log window,” either in the View menu or in the Options. Can you elaborate?
Anyway, I enabled logging and console logging and ran some tests. The latest log.txt is attached. bw_log.zip (47.6 KB)
After waiting for the display to go dark, I pressed two notes on my Nord Stage, waited about 10-15 sec. to confirm that the display was still off, then wiggled the mouse. The display came on immediately at that point. During all the testing, the PC did not indicate that it was in Sleep Mode (based on its power lights).
The Windows power settings I’m using are:
Turn my screen off after: 20 min (now changed to 2 min for convenience)
Make my device sleep after: Never
I can confirm that even when I have left the machine on and unused for 6-10 hours, the power light on the PC is not blinking to indicate Sleep Mode.
If you would prefer to continue this offline, feel free to PM me.
When you turn on Options → Diagnostics → Console Logger, a second top most command prompt looking window should appear where diagnostic information is logged.
Something like this, not the green text log in the background.
Unfortunately, I can’t tell from the log which engine stop/starts you manually invoked vs which ones might be due to power suspend or similar. In the log, the engine was stopped about a dozen times.
Another test… setup so playing notes on the MIDI keyboard produces sound. When the screen is dark, if you play notes can you still hear them?
It turns out that the Console Logger was in a separate child window, behind the main Cantabile screen, which I use maximized on my PC. I’ve attached a simple test: disabled the Console Logger, closed Cantabile, restarted Cantabile, then turned the Console Logger back on. It’s attached here – bw_console log.zip (3.1 KB)
Yes, I hear notes playing when the screen is dark. In fact, the test that is logged in the attached file was:
I didn’t touch the keyboards or PC for 2 min. to cause the screen to go dark.
I played a few notes on Cantabile to confirm that the VSTs were still active.
I have a binding that ties the program in the Nord Stage to the Cantabile Set List, 1:1. I used the Stage to change the Song to another one with different VSTs. I played a couple of notes on the new Song.
I changed back to the old Song. I played some notes again.
The display was still dark. I moved the mouse to restore the PC’s display. Until this step, the screen remained dark during testing.
I just took a closer look at how this works and noticed a couple of things:
There’s a bug where the setting in Tools → Options doesn’t actually do anything, but instead it always tries to wake in MIDI input. I’ve fixed this for the next build, but this shouldn’t affect you.
The “waking of the display” is throttled to every 10 seconds - ie: once it thinks it’s woken the display it won’t do it again until 10 seconds have passed and more MIDI input arrives.
It’s triggered by the master MIDI input indicator. If you’ve got Tools → Options → MIDI Ports → double click port in question → Include in Master Indicator turned off, it will not trigger waking of the display.
The display wake is implemented by injecting a fake mouse move into the input stream. It actually sends a mouse move event with zero movement, but that’s always triggered a screen wake in every test I’ve tried.
Let me know if any of the above helps or explains what’s happening on your machine. If not I’ll need to add some debug logging to try and figure out what’s going on.
Thanks for adding the new build with debugging. I’ll download it and try it later today.
I have a couple of other thoughts:
I checked, and all of my MIDI inputs have Include in Master Indicator turned ON. So, that’s not the problem.
One of my MIDI input ports is ‘special.’ I have a Leslie simulator in the Background Rack, and sometimes its controls need to be sent through a different path than the main keyboards. I ended up creating a MIDI input that is not assigned to any real MIDI port and enabling its loopback feature. I can then connect or disconnect this ‘shadow’ input per song. Could having no assigned input mess up the waking routine?
I used to use this Dell mini-PC as a remote slave from my laptop. To do this, I remember having to go into the BIOS and set some kind of “allow PC to run headless” switch. I don’t think I ever turned it off, because it doesn’t seem to prevent the PC from not running headless. I wonder if this setting could be filtering out small mouse movements as ‘noise.’
I also wonder if the Dell BIOS is treating a zero-pixel move as invalid? Maybe a say, +3 pixel move followed by a -3 pixel move would work better?
I installed Cantabile 4322 and deleted all previous log.txt files from the system folder. I enabled Write to Log File and Verbose Logging in the Options → Diagnostic are. I also made sure that all three power management options were enabled, including Wake display on MIDI Input.
I closed the Options and hit keys on my Nord Stage and SL73 for about 20-25 sec., confirming that the green activity indicators were flashing as I hit keys. (I could also hear sounds coming from the VSTs.) I then opened the log.txt file and searched for the word “Waking.” There are no instances of that word anywhere in the log file! I checked again after about 10 more minutes: the log.txt file is increasing in size, but I don’t see any Waking messages. What I do see is thousands of lines that look something like this:
I finally figured out what is going on here! Your last question was the key:
If the main toolbar is visible and I can see the area you mention, the Wake display on MIDI Input works perfectly. I also see “Waking display by MIDI activity” events in the Verbose log.txt.
If the main toolbar is hidden, though, the Wake function does not work, and the Waking events are missing from the Verbose log.
I tried turning the main toolbar on and off (visible and hidden) a couple of times, and the functionality tracks the visibility.
Which brings me to a feature request: can the Wake function be made to work whether or not the main toolbar is visible? In my particular setup, the functions on the main toolbar – the rec/play transport, the metronome, etc. – aren’t being used, so I hid the main toolbar to gain real estate for other windows. I would prefer not to give up that extra ~2cm at the top of the display, all things being equal.
Yes, it works great! I installed 4323 and tested it quickly before going to bed, then tested it again this morning (US EDT). Now to get my head around the new tabs and split screen features. I’m going to have to make a couple of changes to the hack that I was using to make something similar work, but I think I’m going to enjoy the end results.
Thank you for the very fast support on this issue!