How to prevent M4L device from being edited?

ziya's icon

Hi,

Does anyone know how to prevent a Max4Live device from being edited?

All of the K-Devices stuff close the edit window as soon as you open the edit window for example.

I assume it has sort of an javascript event listener which closes the edit window.

Wetterberg's icon

could probably be done with thispatcher scripting, too?

(I personally only go for freely editable devices, but that's beside the point ;) )

Peter McCulloch's icon

@Wetterberg: how about non-free, but editable devices?

I feel there's something wrong about a Max for Live device that you can't edit. I'm working on a commercial release, and wonder how much piracy is a concern. Copy protection is a PITA, and I'm hoping that a fair price is better copy-protection, but I guess we'll see.

ziya's icon

I agree, it is totally against the whole point of M4L to prevent editing now. But this also stops developers to spend time on develop commercial devices.

I guess, the only way now is to release under creative commons licence or something similar or ask for donations from users.

Peter McCulloch's icon

Asking for donations is a non-starter, in my experience. I've had over 10,000 downloads of my devices but I never got a donation when I had a PayPal donate button on my old site. (which is why I left it off my new site, frankly)

I had the downloads hosted on maxforlive.com and the documentation on my site, so I probably didn't see as much traffic on my site, but still...

I like the idea of free devices and try to make mine so when I can, but it's not always sustainable. Devices don't bring in enough traffic that you can make money based on advertising. I've been looking at Gumroad, and it seems like a pretty reasonable model.

This seems to be a recurring topic on the forums, too: "I like Max, is there any way I can get paid so I can spend more time in Max?"

stringtapper's icon

The couple of commercial devices I've checked out have used a kind of makeshift method of making all the objects transparent and stacking them on top of each other. Seems pretty time consuming and, ultimately, ineffective since someone willing to put the time in to untangle it all can eventually make the code readable.

I'm like Wettergberg and only deal with editable devices, paid or free. If I like a device enough to use then I'm also going to want to know how it works under the hood and be able to make any modifications I want. To me that's one of the whole points of Max and M4L.

I recently asked a dev on the Ableton forum who was plugging his devices why he chose to use (the aforementioned) copy protection scheme. His reply was that making the insides (easily) available would take away "the magic" of how the device works. My response was that for some of us übergeeks the insides are the magic!

Peter McCulloch's icon

Exactly. I have definitely modified devices to fit my own purposes, and hope that there are others doing the same. Moreover, I don't want to have to track down bugs in obfuscated code. (doubtless they have a script they run it through or some such, but it still seems like a lot of hassle for the developer)

I have toyed with the notion of having two price points, the cheaper with obfuscated (or at least not cleaned-up...) code and the slightly more expensive version with thorough commenting, clean layouts, etc.

There are a lot of people who don't care about how their devices work--or at least enough to warrant a section in Ableton's Max for Live FAQ--but there's definitely things you can learn from other's devices.

Clean code takes more time, and I wonder if people would be willing to pay a small premium.

johntre's icon

If you want to sell something you made in M4L, the only real way of doing it is to prototype it there and then re-code it as a VST or Audio Unit. You're essentially selling a script which requires *a lot* of external dependencies to run so there's really no guarantee to the end user that your patch is even going to be fully functional 6 months down the road. It's also not very comforting knowing that the developer isn't dedicated to his/her device enough to put in the time consuming effort to code it in C, so there's already that demonstrating that you'll most likely not keep it updated.

You have to go the extra mile to get people trust you with their money.

Peter McCulloch's icon

I'll agree with the last sentence, and say that the paragraph before that is sad if true. (the more compelling argument to me is that there is a considerably bigger market for VSTs than AMXDs) I tend to view Max as an interpreted language, the sort of thing that people outside of its community are skeptical about.

Each language has its strengths, weaknesses, and idiomatic usages, and I guess it all depends on what you're trying to do. I've done a decent amount of C++ DSP stuff, but I still prefer Max for the flexibility and expressiveness it provides. C/C++ is great for efficiency and low-level control, but it's not nearly as good as Max for exploring, especially when you factor gen~ in. Hopefully gen~'s code generation will close some of this gap. There are still some things that C/C++ is helpful for, but Max's capabilities continue to grow.

I'd add that I regularly use abstractions of mine that are 10+ years old, so I don't think that it has to be that way in Max. I don't believe that coding it in C necessarily shows more effort; I think it sometimes means that that effort just goes to a different place. (like waiting for that compile to finish so you can load it into the AU tester) YMMV.

Anyways, I'm very far afield from the original topic.

ziya's icon

what is the copy protection scheme that @stringtapper mentioned?

Peter McCulloch's icon

It sounds like a script that moves all the objects in the patch to the same location.

ziya's icon

hmm... i thought its a license.

This can be done by selecting all the objects and aligning them horizontally. but this feels so annoying when people do that.

Its a lot more professional to do like k-devices is doing.

try downloading one of their free devices.

what happens is when you press the edit button it opens the max editor then it closes it in one second.

i think if we could find out how they do this, it would be helpful for now.

and ultimately guys a cycling74 should come up with a good solution for this because i can guess with around 1 million ableton live users around the world it would be a good market for independent developers and it will eventually help the level of devices being made.

Peter McCulloch's icon

Maybe, but I'd say that their experience with Pluggo may color this.

David Butler's icon

Another option is to write your device as a simple Max wrapper around a custom external which does the 'magic' bit. This is the approach I've taken for a number of devices I'm currently developing.

The best thing about this method is it doesn't totally remove customisation. It still allows users to make additions to the patch (to rearrange the GUI, add external control options, add on an extra gain section, etc.) but keeps your core work invisible and tamper-proof.

Of course this makes the device marginally harder to support, but if you're selling your work then it's a price worth paying.

ziya's icon

david, could you please explain this method more in detail? and have you got any basic code examples for this method?

stringtapper's icon

He is talking about coding Max externals in C that perform the core functions of the device, but the rest of the device's code is editable. Sounds like a very good idea.

Come to think of it, since most M4L users will probably not also be full Max users, and thus not Gen users, one could conceivably use the same scheme with the main functions of the device running inside of a gen~ object.

(karrrlo)'s icon

I personnally think that  people who don't own maxforlive should be able to access M4L devices.

I believe a vast majority of ableton users are users and not developpers. Many M4L devices are probably very attractive to these users, but they can't access them unless they get the full M4L extension.

A (paid for ) M4L runtime would be sufficient so ableton users could access/use M4L devices, and would probably pay for M4L devices, this would indeed offer more opportunities for developpers. Right now the M4L community is i believe more of an "extended" maxmsp developpers/users community.

In my humble opinion i feel max patches or m4L devices should remain open, it is the whole beauty of this now twenty years old Max community. i am willing to suppport/pay for externals and devices but i love to be able to change them to fit my needs.

my 2 cents

@peter McCullough i definetly owe you a few bucks as i use some of your great devices very often !

stringtapper's icon

People have been clamoring for a M4L Runtime since M4L was released and neither company has ever given any indication it's something they plan to do. I would say that the inclusion of M4L in the Live 9 Suite bundle is an indication that a M4L Runtime is still not planned.

@(Karrlo)

I find your stance that there should be a M4L Runtime to be contradictory to your later statement that you think M4L devices should remain open. A "runtime" environment by definition means that the devices can't be edited. So which do you want?

(karrrlo)'s icon

@stringtapper My statement is the folllowing:

- enable more ableton users to access M4L devices through a possible M4L runtime, which who give a larger audience to M4L devices developpers who wish to sell their plugins.

and

- leave patches/devices open for maxmsp, maxforlive users/developpers just as it is right now and has always been in the max community.

i can understand that some people wish to have their patches "protected/closed" , especially if they have put great efforts in the creation of these patches.

But i am a true believer that "openess" equals to progress as ideas, concepts, improvements organically grow faster. And ultimately we don't what to stay stuck in prehistory, do we ? ;)

stringtapper's icon

Well the first is up to Ableton/Cycling 74 and is not looking very likely since M4L is now a part of Live 9 Suite.

The second is up to individuals. If someone doesn't want anyone, users or other developers, to access their code then it's their right to try to find a way to copy protect their work.

As I've already stated I am only interested in devices that are open because I agree that that is the essence of Max and by extension M4L. But what I believe can't and shouldn't dictate what other people can or can't do with their work.

I think David Butler's system of coding externals to do "the magic" and allowing those core functions to still be extensible through the M4L "shell" is a good idea, although not everyone has the chops to write externals (not me, although I'm working on it).

Peter McCulloch's icon

Hey Karrrlo, if you want to I just posted a new device, the Super6 Detune. It does Roland SuperSaw-style detune on any arbitrary audio input, and fattens things up nicely. It's not free, but cheap ($5), and no obnoxious DRM.

(sorry for the shameless plug)
You can find it at subtlesonic.com/super6

Jose Silva's icon

An old conversation but still very relevant, Im actually looking to protect my devices as well, and I thought I should weight in in the conversation, as the time goes more and more people will try to sell devices for a living.

We should consider seriously the way we do it.

the idea of give free devices should be out of he question, that imao just wont work, we have the music industry as experience, everybody gives free stuff noadays to try to sell, could be sound libraries, music whatever.

but the more free stuff you give the less people want to pay for what you do.

just look at what happened to music, today you are lucky if someone spend a buck on you track.

companies like apple said, is ok to sell your music for cents, just imagine with this platform millions of downloads will compensate.

well I dont know any indie that actually make profit from such model, only well stablished pop artist .

second to try to drag attention people will offer their devices cheaper and cheaper, again the wrong way to go since we are gonna hit that sell millions for cent promise, and I can guarantee, It may not happen for several reasons,
as the market continues to populate with indie developers, many will copy your devices and sell them cheaper, that al ready happened in music industry and is the reason why many of us turn into developing soft instead of trying to beg for few cents on music and sound creation.

so if we try to sell free editing devices many will just copy your abstractions and re sell your work, they didnt work hard to make those functions they will just copy, and maybe as an user is cool to manipulate but as some one trying to make a living, that will just hurt the market for everybody.

we should compete with well designed, innovative designs not making all cheap and free.
and many will say that ok then develope vst, well if we give a way the max for live bussiness model we are losing some money we can use to invest in giving the right step in that direction.

so DONT!
we really need to be a smart community and learn from the mistakes in the music course, music libraries, tracks model that is barely working for indies today

thats a reallity and frankly is not cool.

my 2 cents.

11OLSEN's icon

Where is the market you are talking about. It's like devs trying to sell to other devs. Do you think there's a high number of people that are real endusers (not interessted in Max at all but searching for new m4l devices regularly - I really don't know)
But I feel that default m4l is to much of a sandbox to create devices, innovative enough to be sold or to create enough attention from 'real end users'. Imo that changes with self made externals that do things you can't do with default objects or are doing things more effective than default objects.

btw: Can you name anyone who is making a living out of only selling m4l devices? I assume even a device list like this http://www.maxforlive.com/profile/user/hyakken is not enough if you offer the quality that you can reach with default m4l objects only. (Sorry hyakken, just an example, I never bought one of your devices). O.

S4racen's icon

"btw: Can you name anyone who is making a living out of only selling m4l devices? I assume even a device list like this http://www.maxforlive.com/profile/user/hyakken is not enough if you offer the quality that you can reach with default m4l objects only. (Sorry hyakken, just an example, I never bought one of your devices). O."

Yes.....

Cheers
D

11OLSEN's icon

@S4RACEN really that is nice. And are you protecting your devices in any way? And are you afraid of someone ripping parts of your device and sell it as their own?

cheers
O.

S4racen's icon

Not in the slightest, each device is open source for anyone to make their own adjustments, the vast bulk of customers 93% are not developers but people looking for an out of box solution...

Some of our devices have had elements reproduced but generally by people looking to learn and share a less feature complete version, customers also appreciate the levels of support and we constantly update our devices based on users feedback...

Giving stuff away for free can help grow a database, having a quality product that works and acknowledging quickly if it doesn't is an important part of the process. As is providing written manuals and walkthrough videos for peoples different learning styles...

My main concern is filesharing sites, i'm constantly issuing DMCA Violation takedowns, if anyone thinks that making a M4L device a VST is a solution they're sorely mistaken....

Cheers
D

Jose Silva's icon

yeah right now there are few people really digging the creation of devices but as more people start to do tutorials (there is already plenty of info)

and they start doing some basic programing the amount of people in the near future looking to make a living doing devices will grow exponentially, and that I can guarantee.

Im just saying that to be smart right now is the way to go, before we end up like the producers of today, if you guys have been long enough in the game, you will remember how the producers database growth to the point there are millions right now.

what happened well people saw the potential of selling tutorials, sound libraries, loops etc. now those lazy producers get all pre made put it together and you get overnight producers populating the market.

I dont want to start that discussion at all, im just saying it already happened, and those pseudo producers of today will be the same pseudo indie developers tomorrow.

same technique why to create your own music if you can get 2 packs put them together and that is?

same shit why to learn to code when i just need to learn the basics cut and paste someone else abstractions and get it done, put some marketing and re sell it cheaper.

part of programing does imply to re use code but there is a limit to just be a lazy mofo.

and the argument of the whole thing of max for live is to learn from the open devices is not totally true, if you are a trully open source kind of guy who hates close code, you would be using super collider and such.
or coding in linux for that matter.

and if people want to learn there is plenty of papers on synthesis and programing, there is a lot you can learn. if you understand the technique you want to add to your device, and you got the programming skills is just a matter of time to get it done.

i can see it coming!!!

11OLSEN's icon

@S4RACEN, thanks for the insight and respect for what you have going on there.
Please forget my first comment. So there obviously is a market. And of course, it is possible to create innovative devices without creating custom externals. That's just my view when things start to get interesting and maybe worth selling.
Back to the topic i would say leave devices open source, protect sensitive logic by compiling it in an external.
O,

S4racen's icon

"Back to the topic i would say leave devices open source, protect sensitive logic by compiling it in an external."

This i would utterly agree with, we've done exactly that with a few devices, in the main we'd go to JS and obserefucating the code prior to doing such a thing...

Cheers
D