protection / stop a standalone from working after a certain date

Jan 13, 2014 at 6:54am

protection / stop a standalone from working after a certain date

Hello all,

I know there is alot of discussion on the forums regarding the security of max standalones, but I was wondering if anybody had any ideas of ways to stop a max patch from working after a certain date / after a certain amount of use?

I was trying to use the “date” object to control a dac (which would not switch on after a certain date – however the date object reports the computer clock – which can be easily altered.)

Any ideas?

Any help is much appreciated!


Jan 13, 2014 at 7:16am

You could code a ntp client in mxj.


Jan 13, 2014 at 7:56am

That looks way above my head!


Jan 14, 2014 at 3:25am

I don’t know much about Java, but maybe the attached files will work for you (put the folder somewhere in the search path). It surprisingly does for me (Max 6.1 under MacOSX.9.1)!

I didn’t spend time changing the format returned by the Java class, but it’s easy to do within Max. Don’t forget you need an internet connection if you want to use this technique.

Good luck,


Jan 14, 2014 at 10:38am

Thanks so much Patrick, this is perfect!

Do you know if it will also work on Windows too?


Jan 14, 2014 at 11:40am

I suppose it should work (that’s what’s nice with Java) but I can’t test it.

Jan 16, 2014 at 6:25am

Off the top of my head: why don’t you simply loadbang a [time] object and compare the output with some fixed value? If [time]‘s output is past your best-by date, then send a ‘;max quit’ message. Bob’s your uncle.

I really don’t see a need Java for this. But don’t let that stop you.

Jan 16, 2014 at 6:48am

Hi Peter.

A time object? Do you mean date?
Andy was afraid his users would change the OS’ system date (don’t tell me you don’t know this old trick :-), that’s why I proposed ntp. Or did I miss something?

Feb 17, 2014 at 12:09am

Hi again Patrick, thanks again for your help with this!

The NTP object works perfectly, just one question though, it seems to work in patchers and collectives but not when its part of a standalone – any idea why?


Feb 17, 2014 at 3:13am

If you want to build a standalone with some Java, you need to include a couple of files in your standalone, Max won’t do it for you. If you’re on a Mac, ctrl-click your standalone and open the package.
Then go to Contents/Resources and there copy the following files from your /Cycling ’74/java folder: ;
the lib folder (keep only the max.jar file);
the classes folder (all the stuff there is probably useless in your case) where you’ll also have to copy NtpMessage.class and sntpMaxClient.class
It should look like the inluded screenshot.

  1. Screen-Shot-2014-02-17-at-12.11.19
Feb 17, 2014 at 3:32am

Thanks again Patrick, really appreciate it,

I wonder if anyone knows how to do the same for Windows…………………


Feb 17, 2014 at 4:04am
Feb 18, 2014 at 4:34am

Sorry for the confusion earlier, yes, of course, I meant [date].

Yes, I know that users can change the date/time setting on a computer, but this has become much more of a pain-in-the-arse for users than it was thirty years go. Nowadays it means turning off automatic time check (which most people rely on for any number of things, not least among them the automatic handling of the change between Summer and Winter Time). What I was suggesting was a simple method that will discourage about, oh, 99.44% of users from using the patch after the best-by date.

An NTP-based solution may catch the other 0.56% of users. But it also requires a network connection and a compatible Java install (do not get me started on the problems of Java incompatibilities).

Choose your poison.

Feb 18, 2014 at 6:13am

Diablodale implemented a time limit in his dp.kinect external. Not sure how it works but you could ask him.

Feb 18, 2014 at 10:32am

What message would you send a standalone so that it only runs one time?

e.g sfplay~ –> fadeout –> bang message to cripple standalone


You must be logged in to reply to this topic.