Problem with 'Wake display on MIDI Input'

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:

  1. Start Cantabile
  2. Go to Tools → Options → Diagnostics
  3. Turn on Console Logger
  4. Wait for display to sleep
  5. Wake the machine
  6. Check the console log window and see if the engine was stopped/restarted.

Brad

Hi Brad,

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.

Regards, -BW

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?

Brad

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:

  1. I didn’t touch the keyboards or PC for 2 min. to cause the screen to go dark.
  2. I played a few notes on Cantabile to confirm that the VSTs were still active.
  3. 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.
  4. I changed back to the old Song. I played some notes again.
  5. The display was still dark. I moved the mouse to restore the PC’s display. Until this step, the screen remained dark during testing.

-Bruce

Hi Bruce,

I just took a closer look at how this works and noticed a couple of things:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

Brad

I’ve just put up build 4322 with some logging for this.

  1. Install 4322
  2. Go to Tools → Options → Diagnostics and turn on “Verbose Logging”
  3. Redo your test

You should see messages like this whenever Cantabile tries to wake the display. As mentioned these are throttled to every 10 seconds.

00010183     6562   [08096:4]: Waking display by MIDI activity

Brad

Hi Brad,

Thanks for adding the new build with debugging. I’ll download it and try it later today.

I have a couple of other thoughts:

  1. I checked, and all of my MIDI inputs have Include in Master Indicator turned ON. So, that’s not the problem.
  2. 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?
  3. 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.’
  4. 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?

-Bruce

Hi Brad,

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:

02211074        5   [03860:2]: CoreEngine - TI: flags:0x00202e00 4/4 120.000bpm ppq:0.000 sample: 0
02211078        4   [03860:2]: CoreEngine - TI: flags:0x00202e00 4/4 120.000bpm ppq:0.000 sample: 0
02211081        3   [03860:2]: CoreEngine - TI: flags:0x00202e00 4/4 120.000bpm ppq:0.000 sample: 0

Every time I check the log file, there are more of them. Am I doing something wrong?

-Bruce

A couple more things I tried, just trying to eliminate possibilities:

  1. Turning off headless startup on the PC did not fix the problem.
  2. Disabling all MIDI outputs in Cantabile did not fix the problem.
  3. Disabling all MIDI inputs except the default one (Nord Stage) did not fix the problem.

To be clear… the main ones at the top right of the main window on the toolbar? Not the ones in the side monitor panel, but this one:

Regarding the lines "CoreEngine - TI: " being logged, go to Tools → Options → Diagnostics and turn off “Log Time Info”.

Here’s a video showing what you should be seeing.

I finally figured out what is going on here! :partying_face: 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.

-Bruce

Hi Bruce,

Thanks for the update.

Yes I planned to do that, but I wanted to properly understand the issue at your end before I make changes. I’ll get it fixed asap.

Brad

This should now work correctly in build 4323.

You still need to have the option to include activity indicator, but the toolbar can be hidden and it’ll still trigger the wake.

1 Like

Hi Brad,

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! :folded_hands: :man_superhero:

-Bruce