Shop OBEX P1 Docs P2 Docs Learn Events
Software licensing — Parallax Forums

Software licensing

Jack BuffingtonJack Buffington Posts: 115
edited 2011-07-08 11:24 in Propeller 1
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.

Comments

  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-07-07 11:46
    If you're going to release the software at all -- especially if it's a derivative work -- I would recommend releasing it with an MIT license and deriving your income from hardware sales. Trying to police a non-commercial license will be a real pain, IMO -- that is, if it's even possible to do so without an on-staff attorney.

    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
  • idbruceidbruce Posts: 6,197
    edited 2011-07-07 17:23
    @Jack

    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.
  • potatoheadpotatohead Posts: 10,261
    edited 2011-07-07 20:13
    Boy, tough forum question. I've a coupla comments:

    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.
  • Kevin WoodKevin Wood Posts: 1,266
    edited 2011-07-07 23:05
    If this is something that you hope/want/need/etc. to make money on, I suggest not opening the source up to the general public, and creating your own license, as Bruce mentioned.

    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.
  • Jack BuffingtonJack Buffington Posts: 115
    edited 2011-07-08 10:10
    Thanks for all of the replies guys! You have given me some things to think about. I'm pretty much set on making my code open in some manner so that the users of the device that I am designing can make it do new and interesting things. Probably the reality of the situation is that this speech synthesizer will really only be used in my device but you never know. I will reap the benefit of development with every unit that I sell so I will profit from this code in that manner even if I release it completely freely. I'll be posting my code in a few days.
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2011-07-08 10:23
    Jack,

    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
  • Ahle2Ahle2 Posts: 1,179
    edited 2011-07-08 10:29
    Jack, this sounds very interesting!!
    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
  • Jack BuffingtonJack Buffington Posts: 115
    edited 2011-07-08 11:19
    I'm currently using Chip's vocal tract object in unmodified form. The part that I'm interested in protecting by the way is the code that drives the vocal tract. Chip's vocal tract is about as good as it can get with the current propeller. Right now my synthesizer is completely monotone. In the future I'll probably start to rework Chip's code to ditch the vibrato and put in its place functionality to add inflection. I have also noticed that I'm not really using the nasal anti formant and am not terribly happy with the frication. I attempted to change the frication but found that there just weren't enough spare cycles to do what I was looking to do. If I get time to work on it, I might see if taking out the nasal anti formant allows for enough extra cycles that I could improve the frication. As of now, I am working around the frications' limits by setting the formants to frequencies much higher than they would normally go (they can go up to 5000 Hz) and cranking up the aspiration. This effectively gives me four frication frequencies plus the actual frication frequency. That sounds a lot better than frication by itself. The propeller II will have enough cycles that a total rewrite of the vocal tract could make sense. I have a plan for that but like I said before, this is good enough for now and Chip's vocal tract is doing a pretty close impersonation of what really is happening in a real vocal tract as far as the glotus and formants are concerned.
  • Ahle2Ahle2 Posts: 1,179
    edited 2011-07-08 11:24
    Cool !
    I will follow the progress on this.
Sign In or Register to comment.