Built another little tool that works nicely with Cantabile: MidiAlert


Hi Torsten, is there a way of sending a carriage return in the text string so there can be multiple lines of text?

Not a problem either way! Thanks.


Hi Al,

unfortunately not at present (the “DrawText” function of the development toolkit I use doesn’t deal with line breaks). When I get to it, I’ll have to build my own multi-line text drawing function…




Hi Torsten, no problem, I don’t need it now as I’m using colour instead, so please cancel my question!

By way of an update,

I’m using MidiAlert to show the name of the next song state with background colours to remind me whether the song state will auto advance based on a note I’ll naturally press during playing, or whether I need to manually advance it. At the moment the MidiAlert window is open permanently because non-blocking delayed bindings don’t work properly in the latest betas. Brad is aware but it will be a few weeks before it gets resolved.

One more question then - would it be possible to either specify the position of the window on the screen, or an x,y offset from centre please? I’d prefer to be able to set it further towards the bottom right hand side of the screen so that it doesn’t obscure the selected rack states in the routing screen.

Cheers, Al


Hey Al,

I’ll put it on the backlog. No promises, though - I’m currently busy building another little tool for organizing my guitar pedalboard…




I just found this post as I was looking for a way to display the global transpose information on my music reading screen, which when open blocks the view of Cantabile, of course. I have Cantabile running on a NUC inside my XK3 and can view that computer via ethernet on my Surface Pro 4 (NoMachine screen sharing software) if I need to make any adjustments. I use Musicsheets to display the music for the songs but sometimes I need to transpose something. This I have set up using two buttons on my MixFace controller (up transpose/down transpose via a binding in Cantabile) but I did on one occasion forget to press ‘down’ for the next song - rather embarrassing!

What I need is a visual display on the Surface Pro to remind me I am in transpose mode hence I found this post. Would this plugin work how I imagine and is it still available?



Hey Paul,

you can download MidiAlert 2 here.

When you install it, it also installs a manual, so just give it a try.

To be sure: MidiAlert is not a plugin - it is a stand-alone program that lives in your system tray, waits for MIDI messages and then pops up messages centered on your screen. These messages can either stay there until you tell them to close, or they can be timer-driven and just show up for a couple of seconds.

To have MidiAlert messages pop up on your Surface 2, you’ll need to connect your Cantabile Machine and your Surface via MIDI - if you’ve already connected them via ethernet, I’d recommend creating that connection via the network with rtpMIDI. Now you need to find the best way to send Sysex messages to your Surface using Cantabile bindings when you transpose. I’ll leave that challenge to you :wink:




Thanks Torsten, looking forward to giving this a try. I already use rtpMidi to connect a couple of things to the Surface Pro so hopefully I can figure this one out, too.

I’ll report back with my success - or failure!



Will try this soon. Thx a lot


I’ve been successful (eventually!) in getting MidiAlert to work! It was rather tricky trying to work out why it wouldn’t work at first. I decided to copy the ‘Hello World’ example in the pdf just to get me started but the first problem was Cantabile giving me a syntax error message. In the example the syntax includes 4D 41 but I realised after a while that this is Hex and the correct syntax in the insertion line should be “MA” - phew, problem solved. Maybe you can correct this in the pdf file, Torsten? Bear in mind I don’t really know what I’m doing :slight_smile:

I also found that Cantabile wouldn’t let me enter a sysex value if I just made a normal binding - I had to create a new rack, add a binding there and then clicking in ‘value’ brought up the dialogue box. Once it worked I could copy the binding and use it outside the rack, though it still won’t let me edit again by clicking the ‘value’ part of the line - strange.

I got this to work locally using loopMIDI then changed the wording and box size in MidiAlert (I realised that I had to shut down midiAlert and open it again for the new parameters to take effect).

Next problem was to get this to work over rtpMIDI via the ethernet connection that goes between the main computer and the Surface Pro. I tried everything I could think of without success (and Midienum wouldn’t work in Windows 10) but eventually I entered just the name of the Surface Pro computer (as shown in rtpMIDI) into the MidiAlert ini file as the midi port and - success!

I just need to tidy up the port names in Cantabile since I don’t really need the local loopMidi connection. Since my MixFace controls (which I’m using for the transpose function) also is replicated in Chameleon on the Surface Pro, I just have to get the pass-through to midiAlert to also bring up the alert message if I use the Chameleon touch buttons. That’s for tomorrow!

Thanks for this very useful programme, Torsten.



Yes - that was an error in the manual. Corrected now - thanx!

BTW: you could also use 0xf0 0x7d 0x4D 0x41 - go full hex🤓


It works like a charm.
Need to explore it now. Thx a lot