elieserdejesus / JamTaba

Jamtaba is a software to play online music jam sessions.
http://www.jamtaba.com
244 stars 50 forks source link

Add a LICENSE file and copyright headers #1210

Open strk opened 4 years ago

strk commented 4 years ago

Otherwise it's hard to tell what license accompanies the software (can I distribute ? Modify ? Distribute modified versions ? Use in commercial software?)

elieserdejesus commented 4 years ago

@strk , I will be very honest with you: I don't care. Im just a musician with some dev skills. If you want dristibute modifity, sell, hack, etc just do it, be happy and please do a god job. I dont care how people will use this code, For me it`s just a lot of text. I copied and adapted code from other projects. The knowledge I learned for free I'm keeping here for free too. For me this is not about licence.

Choose a licence is not simple because JamTaba is using the VST2 SDK.

wjbuys commented 4 years ago

@elieserdejesus thank you for being generous! Especially in these uncertain times with COVID, many of us have been looking for something exactly like Jamtaba to continue making music while isolated. I've tried a number of NINJAM-like projects in the past week, and none of them are nearly as good as Jamtaba!

That said, from a practical and legal perspective, for those of us who would love to help out and contribute, not having a license is a potential barrier. This page gives a good overview. In particular:

You're under no obligation to choose a license. However, without a license, the default copyright laws apply, meaning that you retain all rights to your source code and no one may reproduce, distribute, or create derivative works from your work. If you're creating an open source project, we strongly encourage you to include an open source license.

From your comment above, it seems like this is not your intention.

So, where do we go from here? I had a couple of free hours today, so I had a quick look through the libraries that you depend on (from the archive of static libs):

VST2 does put you in a bit of a bind (see this article for some existing research), but there are open-source projects that build VST2 plugins and support hosting VST2 plugins; this is a pretty comprehensive list. It seems that these are mostly GPLv3 licensed. It also seems like Steinberg has finally decided to license the VST3 SDK as GPLv3, so updating to that version of the SDK would make things less tricky, potentially.

Taking all of the above into consideration, the most compatible license for the project would seem to be GPLv3.

If you do decide to go through the relicensing process, keep in mind that you will probably need to get the okay from all your contributors. There's some good advice on how to do this here.

That means the actual work to add a license here would be:

This is a bit of work; is there anyone else in the community willing to help out? @strk?

elieserdejesus commented 4 years ago

@wjbuys , thanks for your work, this is very helpfull.

This is a bit of work; is there anyone else in the community willing to help out?

This is a lot of work, and this is the big problem. Just change from VST2 to VST3 is a lot of work.

jonjamcam commented 4 years ago

If you do decide to go through the relicensing process, keep in mind that you will probably need to get the okay from all your contributors.

Hey just following the conversation here. In case you ask. I'm ok with any opensource license.👍👍

I'm a happy Jamtaba user and contributor. I've learned so much these last years, so again thank you @elieserdejesus for the energy, the knowledge and overall the good times.

strk commented 4 years ago

@wjbuys you did a great job, thank you ! I'm ok to help some (for what I can) but don't have very much time. How about splitting the VST plugin from the desktop app, as a start ? It would further simplify things ? (I'm talking as a desktop app user, never tried the VST plugin yet...)

elieserdejesus commented 4 years ago

I'm a happy Jamtaba user and contributor. I've learned so much these last years, so again thank you @elieserdejesus for the energy, the knowledge and overall the good times.

Thank you too @jonjamcam, always a great contributor.

How about splitting the VST plugin from the desktop app, as a start ?

@strk , the plugins (VST and AU) share 97% of Standalone (desktop) code.

@wjbuys , seems to me migrate to VST3 is the best option, but I`m not shure if the last VST3 SDK version is making possible host VST2 plugins. To compile the last JamTaba I used a old SDK version, Steinberg just deleted some VST2 headers. They are forcing the VST3 usage. If we just remove VST2 compatibility from JamTaba desktop many users will be affected in a very negative way.

JamTaba has 2 binds with VST, we need: 1 - Host Vst plugins in Standalone (desktop version) 2 - Compile Jamtaba as a VST plugin (windows only, in Mac is compiled as an AU plugin)

wjbuys commented 4 years ago

@elieserdejesus agreed, moving to VST3 seems the best course of action if we can't get more information. I'm trying to get a Jamtaba development environment set up right now to poke at things. Not making any promises, I have way too many side projects going already, but I'd be keen to help out if where I can.

All of that said, the one project that seems to have negotiated this successfully is JUCE. The framework supports both building VST2/VST3 plugins, and building standalone apps that can themselves host VST2/VST3 plugins.

We could probably dig into how they've done that, and try and take a similar approach in Jamtaba. But, that raises an interesting possibility: what if we ported JamTaba to JUCE? It seems like that might solve all our VST woes. Is JUCE something you've looked at in the past? I've used it for some experimental things before, and it seems pretty straightforward.

Granted, this might be an even bigger project than just converting to a VST3 plugin, but it means it's pretty unlikely that this would be a problem again.

elieserdejesus commented 4 years ago

Is JUCE something you've looked at in the past?

Yes, JUCE is a great tool, the best one actually. Port JamTaba to JUCE is a complete rewrite, not just a "port", unfortunally.

I think the JUCE guys rewrited the VST2 headers from scratch to avoid licence issues. They are not using Steinberg SDK to VST2 things.

wjbuys commented 4 years ago

Oh wait, I spoke too soon:

So it would seem that JUCE is in exactly the same bind.

Yes, JUCE is a great tool, the best one actually. Porst JamTaba to JUCE is a complete rewrite, not just a "port", unfortunally.

Indeed. So we're back to figuring out VST3. Is there any place (forums, discord, etc) where we can poll the Jamtaba userbase to see how big of an impact dropping VST2 support would have?

elieserdejesus commented 4 years ago

Indeed. So we're back to figuring out VST3. Is there any place (forums, discord, etc) where we can poll the Jamtaba userbase to see how big of an impact dropping VST2 support would have?

Ninbot forums, but just few jamtaba users are reading these forums.

pljones commented 4 years ago

I'd say dropping VST2 is a show-stopper currently.

Meanwhile, GPLv3 is fine. Or CC BY-SA 4.0 would do me, too.

elieserdejesus commented 4 years ago

WahJam is using VEstige (a reverg engineered VST header) to avoid the Steinberg SDK. https://github.com/wahjam/wahjam/commit/420a7e61d6c02d2da908cae4b1036ff401fa2800

I think one solution is: 1 - use VEstige to keep hosting VST2 plugins in Standalone (without the VST2 SDK) 2 - Migrate JamTaba VST plugin to VST3 3- Finally adopt GPLv3

fpesari commented 3 years ago

Hello,

I am not a lawyer but I've seen many projects so here are my two cents: the relicensing needs to be done as soon as possible for the sake of your own program! Right now, aside from you, other 19 people have contributed, each under their own proprietary (non-)license. This means that you are not legally in control of the whole project already - to do so, you should have made them sign a Contributor License Agreement (CLA), which is seen as a bad practice by some developers and users - and you should get their written permission for the re-licensing.

Not having a license also impacts negatively JamTaba's distribution in distros. Proof: I was making an openSUSE package for it and had to stop because the openSUSE guidelines require programs to be released under a license which fits the Open Source Definition (source).

Also, it doesn't matter that the VST2 SDK is proprietary: your program can be released under the GPL as you are basically linking against the SDK and not making a derivative work. This is the reason other VST2 plugins released under the GPLv3 exist (like oxefm).

We'd all like to just code away and ignore the boring legal stuff but as you can see it's always better to start our projects with a FSF or OSI approved license! :smile_cat:

cbix commented 2 years ago

I'd say dropping VST2 is a show-stopper currently.

@pljones since Steinberg dropped VST 2 earlier this year, would you still consider that a show-stopper?

It would be really cool if we could eventually package and redistribute Jamtaba, but it will need a proper license for that.

pljones commented 2 years ago

Maybe now is the time to move to CLAP?