Software licensing
I have been working for the past couple of months on a better speech synthesizer for the propeller and am just about to be done with my first revision. It is for a product that is for people with total blindness. I'll post it on these forums as soon as I am done (a few days) and I have the appropriate license figured out.
One of the things that I definitely want to do is to allow the users to be able to modify and write new modules for this device since it will be capable of a lot more than I will be shipping it with. In any case, I would like to release this speech synthesizer into the wild with some sort of license that allows users to freely copy it and use it as long as it is for non-commercial purposes. If it or a derivative work is used in a commercial product then I would like to be able to negotiate a royalty, I'm not a lawyer so I don't know about contract law. I think that what what I want to use is a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Does anyone have any thoughts?
As a side note, it would be cool to see parallaxsemiconductor.com have a gold standard obex that is something like opencores.org's collection of 'software' where you can define what license is attributed to your code instead of requiring that everything use the MIT license.
One of the things that I definitely want to do is to allow the users to be able to modify and write new modules for this device since it will be capable of a lot more than I will be shipping it with. In any case, I would like to release this speech synthesizer into the wild with some sort of license that allows users to freely copy it and use it as long as it is for non-commercial purposes. If it or a derivative work is used in a commercial product then I would like to be able to negotiate a royalty, I'm not a lawyer so I don't know about contract law. I think that what what I want to use is a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Does anyone have any thoughts?
As a side note, it would be cool to see parallaxsemiconductor.com have a gold standard obex that is something like opencores.org's collection of 'software' where you can define what license is attributed to your code instead of requiring that everything use the MIT license.
Comments
BTW, Parallax's main interest in making software available in the OBEX is to promote the Propeller to both commercial and non-commercial users. Software that's encumbered by restrictive licensing does not further that objective, and that's why they settled on the MIT License.
-Phil
While it is nice to offer some of our creative work to the public domain and while it is nice to receive some recognition for our creative work, it is not always in our best interest. Only you can determine what is important to you.
If you truly feel that your efforts have monetary commercial value, but still want to offer it to the public domain, then here is what I suggest. I would suggest that you create a license that YOU can live with and post your source with your license attached to a portal that will allow such things to be posted. You can then just link to it or have someone else link to it. That way many people can receive the benefit of your efforts, and you can also enforce commercial licensing.
Bruce
EDIT: But I also agree, there should be licensing options. I think we would see more code if there was options.
The license you are targeting does work in the way you believe, but it's not well aligned with software. Use of Creative Commons licenses for software is increasing. PropGFX was just released here with a similar license, allowing personal use, but not commercial use.
In thinking about derivatives, are you anticipating that people will directly modify the code, or will they be creating content for it? And, have you allowed for those cases, as in potentially licensing each piece appropriately?
eg: Software could be GPL, allowing derivatives that are open, with changes being contributed back where you can see them, and potentially integrate them. GPL does allow commercial use, so long as they contribute code changes, and or do not threaten the project with patents. (Software / Business patents allowed in the US)
If you've assembled some content, such as a speech library, that could be Creative Commons, allowing personal hobby use of the full solution, but not commercial use of it without the appropriate license.
The MIT license would allow *any* use of the program, commercial, non-commercial. Adding value with hardware might be dubious to you, depending on where you currently add your value! Again, a split solution, where the "engine" or core program is licensed one way, and the content it needs to do speech licensed another, might get you where you want to be.
Bear in mind, with something like the GPL, you are completely free to issue commercial licenses, but where additional code is contributed by others, you may find that complex as they would retain ownership.
Because of that, I think I would seriously consider not allowing derivatives at all, if your model is to promote commercial use of the software. You could be in a position where somebody using it commercially could see a better version out there, open because of the GPL, or completely available because of the MIT, where your license becomes a liability rather than a benefit to them.
Consider those things carefully.
I'm a big proponent of open code, but I also am a proponent of doing things in a viable way business wise, and that varies for people.
One interesting thing about your post is encouraging derivatives, yet requiring a royalty, which may significantly diminish the incentive to build derivatives, as those builders would not see the ability to leverage their work in the same light. It seems to me, the ideal royalty scenario is one where you are adding value to the product on a regular basis to warrant the royalty.
or...
One where you compartmentalize the problem, as I mentioned above, drawing a boundary between the core code, which you license one way to get the royalty on the table, and content, or other code which may be licensed in ways that encourage people to make investments in the core code.
Creating a license carries some risks, largely because it would be untested and or may operate in ways not intended. I would be careful with that, just for those reasons. One nice thing about the established BSD, GPL, MIT licenses is they do have some history, and organization that maintain them and they generally are understood. In the case of the Free Software Foundation, you can pay for membership and get some limited access to their council, and or their help with license infringement issues.
I personally have done that with GPL code being infringed and found the experience favorable.
It is difficult to manage being open enough to encourage independent innovations, and closed enough to license them for profit. Again, some careful thought as to how those things might be accomplished, compartmentalizing your work to be licensed, and packaging things in ways that would allow others to build on it for non-commercial use is a tall order license wise. Some consideration is warranted beyond which license to use for what you have right now.
Finally, as Phil mentioned, there is and or can be value in the complete solution. Have you given thought to the hardware? Partnering with somebody to create a "package" might actually improve things. One is "the package" could contain the license for use, you could release demo / limited versions of the software for personal hobby use, and or potentially build a business adding on the work you've done so far.
What you could do is follow a tiered licensing approach - ie, a non-commercial binary distribution, maybe with some limited features (or not), a fully functional commercially licensed binary, and a binary + source cose commercial license, with restrictions on source code distribution.
Keep in mind, also, that some (many?) developers will avoid reading source code under certain licenses, to avoid any future allegations of infringement.
One other point to consider: how you license your software depends a lot upon how any software it derives from -- if any -- is licensed. If it's all MIT licensed, you're free to do almost anything, bearing in mind the attribution requirement. If any of it was GPL licensed, that comes with the additional burden of releasing your source code for free under the GPL, even with hardware-only distributions of your product.
-Phil
What kind of sound generation technique do you use?
A resonant filter(or two) would be the way to go if you asks me.
/Johannes
I will follow the progress on this.