GNU GPL and audio plugins II. – License compatibility I.

In my mini series about GPL and audio plugins it is time to focus on GPL and compatibility with other license. It can be divided into two parts – open source licenses and SDK licenses.  Lets focus on open source licenses this time. I will divide the post into 2 section – source code and graphics. And do not forget that IANAL! Use case for this part is my synth Paraphrasis. Note that Paraphrasis is released under GPL v2.

Source Code

Fortunately, this part is quite easy using GNU’s license comparation which is quite extensive. But important to mention that the compatibility is based on Free Software Foundation view which is not so relevant – only court opinion matters. And eg. CC BY 4.0 state was changed from incompatible to compatible during May 2015 (check archive.org/web captures) Very useful is choosealicense.com as well.

Lets check Paraphrasis 3rd party code for example. All used licenses are GNU GPL compatible according to GNU’s License list. Click on library name to see library’s license and clicking on license name shows GNU’s comment about this license. All license were found compatible in June 2015.

Library License
JUCE GPLv2, GPLv3, AGPLv3ISC
Loris GPLv2
Teragon GUI Components GPLv2
TinyThread++ zlib
sse_mathfun zlib
Teragon PP FreeBSD
readwriterqueue FreeBSD
arduino-base64 MIT/Expat
dbRowAudio MIT/Expat
dbRowAudio dependency: SoundTouch LGPL v2.1
dbRowAudio FFTReal WTFPL

So from this point of view no problem. Always check the license compatibility within your project! Make a list of used libraries and their licenses and licenses’ versions.

Note: I would highly recommend these libraries. Especially Teragon’s code help audio plugins developer a lot. I will write about this (and others) maybe later. Teragon GUI Components were distributed under BSD license up to version 1.4.0. So this version is possible to use within commercial application/plugin.

LGPL

It is out of the scope of this series to provide detailed info. LGPL is basically same as GPL with exception for closed-source software. It is suitable for libraries. Basically you either dynamically link LGPLed library or provide your software in object form.

AGPL

AGPL is basically the same as GPL with addressing a issue of providing software services over network – user who access the software has to have access to source code as well.

GPL 3

Let speak wikipedia:

According to Stallman, the most important changes are in relation to software patentsfree software license compatibility, the definition of “source code”, and hardware restrictions on software modification (“tivoization“).[21][22] Other changes relate to internationalization, how license violations are handled, and how additional permissions can be granted by the copyright holder.

GPLv3 improves compatibility with several open source software licenses such as Apache License, version 2.0, and the GNU Affero General Public License which GPLv2 could not be combined with.[41] But on the downside, GPLv3 software can only be combined and share code with GPLv2 software if the used GPLv2 license has the optional “or later” clause and the software is upgraded to GPLv3.

Note: Loris and Teragon GUI components (released under GPL v2) have “any later version” note.

ICS

Copyright © 2004-2013 by Internet Systems Consortium, Inc. (“ISC”)
Copyright © 1995-2003 by Internet Software Consortium

Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED “AS IS” AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

A very simple license. JUCE core module is released under this license. You can use it for commercial usage as well. For more info check choosealicense.com.

zlib

/* zlib.h — interface of the ‘zlib’ general purpose compression library
version 1.2.2, October 3rd, 2004

Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler

This software is provided ‘as-is’, without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.

Jean-loup Gailly jloup@gzip.org
Mark Adler madler@alumni.caltech.edu

*/

Nice and clear license. In normal case you do not have to do anything unless you modify a software. You can use the software for commercial usage even without mentioning software and license.

FreeBSD license

Copyright 1992-2015 The FreeBSD Project. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project.

This license is in case of mentioned libraries used without the last paragraph. It is also known as BSD 2-clause license. It is also possible to use this to develop a commercial software. When we redistribute our binary app we need to present this license somewhere. More info at choosealicense.com.

MIT/Expat

The MIT License (MIT)

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

As we can read at choosealicense.com software licensed under these terms is also possible to use within commercial application.

WTFPL

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.

Well… WTFPL.

Multimedia content

Not only source code makes application whole. When speaking about multimedia applications – sound processing software particularly – and audio plugins especially – graphics or other multimedia content matters! When speaking about sampler it is important to consider license compatibility of sampler binary and audio content (when distributing all in one package). In this case I consider Paraphrasis synth as a use case.

Graphic content – CC-BY

If you are an audio plugin developer you probably know KnobMan (web app, Windows or Java) and if you do not, you should check it out. It is an app which helps build knobs and other controls graphic. There is a database (also there is a KVRAudio thread) which contains dozens of ready to be used controls graphic either public domain or licensed under Creative Commons.

Speaking about Paraphrasis I used these, which I used to build my own elements upon:

Element License
 144 CC-BY
47 CC-BY
53 CC-BY

So what is CC about? Let’s check wikipedia:

Creative Commons (CClicense is one of several public copyright licenses that enable the free distribution of an otherwise copyrighted work. A CC license is used when an author wants to give people the right to share, use, and build upon a work that they have created. CC provides an author flexibility (for example, they might choose to allow only non-commercial uses of their own work) and protects the people who use or redistribute an author’s work from concerns of copyright infringement as long as they abide by the conditions that are specified in the license by which the author distributes the work.

Flexible licensing is really cool and you can choose what rights you want to reserve – that’s the letters after CC. CC licenses are known for dual-versioning of their license: one version is human-readable the other is for lawyers. The graphics I used is licensed under CC-BY 3.0. BY means:

This license lets others distribute, remix, tweak, and build upon your work, even commercially, as long as they credit you for the original creation. This is the most accommodating of licenses offered. Recommended for maximum dissemination and use of licensed materials.

Lets mention BY-SA:

This license lets others remix, tweak, and build upon your work even for commercial purposes, as long as they credit you and license their new creations under the identical terms. This license is often compared to “copyleft” free and open source software licenses. All new works based on yours will carry the same license, so any derivatives will also allow commercial use. This is the license used by Wikipedia, and is recommended for materials that would benefit from incorporating content from Wikipedia and similarly licensed projects.

So with BY we do not have to share modified worked under same license! We only need to give appropriate credit – Creative Commons has a nice examples how to (not) do that. According to them the ideal case is this one:

This work, “90fied”, is a derivative of “Creative Commons 10th Birthday Celebration San Francisco” by tvol, used under CC BY. “90fied” is licensed under CC BY by [Your name here].

Because:

Original Title, Author, Source, and License are all noted
Derivative? “This work, “90fied”, is a derivative of…”
New author of the derivative work is also noted

So what does it mean for KnobMan files? When we modify them we can distribute them under GPL – but we do not have to. I think (IANAL) it is enough to distribute your knob graphics (png, jpg) which you can license GPL-compatible.

But can we use original files which are used under CC-BY? Well, CC-BY 3.0 seems to me to be OK (IANAL!). I recall that CC BY 4.0 state was changed from incompatible to compatible during May 2015 (archive.org/web captures) and CC 2.0 (even BY) were incompatible with GPL. Anyway, serious developer/graphics designer probably modify the original file to match application unique style and this will avoid this problem.

Fonts – CC BY-SA

The other parts of design is a font. Before mentioned GNU’s license list address font issue this way:

The licenses below apply to an instantiation of a design in a computer file, not the artistic design. As far as we know, an implementation of a design is always copyrightable. The legal status of the artistic design is complex, and varies by jurisdiction.

That is true. I did not find much relevant info. One of this is a post Font Squirrel Forum which somehow simplifies the issues and to me it makes sense:

Hi guys, the licenses are talking about the font file. Not the outlines created
by your software with the font.

For Paraphrasis I used Anita semi square Font which is licensed under CC BY-SA 3.0. (Basically SA means that modified work has to be published under CC BY-SA license. Technically BY 3.0 and BY-SA 3.0 basically differs in two added points to section 4 in BY-SA (check b and c). For more detail, you can check diff 🙂 )

GNU compatibility list currently know only these CC licenses:

License Status
 Creative Commons Attribution 4.0 license (a.k.a. CC BY)  Compatible
 Creative Commons Attribution-Sharealike 4.0 license  Incompatible
 Creative Commons Attribution-NoDerivs 3.0 license (a.k.a. CC BY-ND)  Recommended for Works stating a Viewpoint

NOTE: Incompatibility of CC BY-SA 4.0 is being kinda discussed on Creative Commons’ wiki.

But what does it all means for my synth? JUCE support font embedding but this all means that I cannot include this Anita font into my plug directly. Distribution this with GPLed violates the GPL. But it seem that it is however possible to be used the font in bitmap design.

Other information about font licensing can be found at Open Font Library’s FAQ or some user friendly list is provided by FontSpace. And here is some in-depth CC licensing reading for procrastinators.

Conclusion

Source code

  • You can use ICS even for commercial usage.
  • With zlib license In normal case you do not have to do anything unless you modify the software. You can use the software for commercial usage even without mentioning software and license.
  • When using FreeBSD license, when we redistribute our binary app we need to present this license somewhere.
  • Software licensed under terms of MIT is possible to use within commercial application.
  • LGPL basically the same as GPL.
  • WTFPL…

Graphic content

So with BY we do not have to share modified worked under same license! We only need to give appropriate credit – Creative Commons has nice examples how to (not) do that.

We can’t mix CC BY-SA licensed content with GPL. (Teragon GUI Copoments is licensed starting version 1.4.1 under GPL and unfortunately accompanied graphics is distributed under CC BY-SA. Accompanied fonts are distributed under Apache License 2 – GPL compatible. TGUIC was however under BSD up to 1.4.0).

 

Share

Comments are closed.