I know this patch won't "work". It's not supposed to. DO NOT move/edit any of the max-generated boilerplate, i.e. midiin, comments, etc. You want a pristine Max MIDI device template with my stuff pasted in, wherever it winds up. Don't save anything.
Open the Max output window, start the transport, lock the patch & click the "goto live_set current_song_time" message.
This will start generating a ton of errors, since the syntax is wrong. That's intentional. The point is, although I haven't saved the patch/device to disk, it is definitely "interacting" with live. That's fine.
OK, now unlock the patch & delete ONLY the objects you just pasted in.
On my computer, the stuff I just deleted is still continuing to generate errors, although the "object" column is now empty, and the "show object" arrow is greyed out. WTF???!!!
Now it gets interesting: close the patcher window. If you haven't modified the template, then it WILL NOT ask you to save, since you already deleted what you added, and the template, from the standpoint of Max, hasn't "changed".
On my system, when I close the patcher with the non-existant objects still generating error messages, the error messages stop. If I open the "empty" patcher window again, the error messages start again. WTF???!!!
Here's the best part: With the empty patcher open and the error messages flying, save the max device. On my computer, the error messages stop.
I do understand that there are some distinctions between the device in the track, and the device in the patcher, but this is wildly inconsistent behavior. An object can be instantiated in an open, unsaved patcher, but it can't be destroyed? It only affects certain objects/situations, but there seems no rhyme or reason to it. This is the first small test example I've been able to nail down.
I'm really hoping someone can shed some light on this...