Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request: MTS-ESP #1137

Closed
Andreya-Autumn opened this issue Dec 28, 2022 · 21 comments
Closed

Request: MTS-ESP #1137

Andreya-Autumn opened this issue Dec 28, 2022 · 21 comments
Labels
new feature Feature additions and requests

Comments

@Andreya-Autumn
Copy link

MTS-ESP is a new method of re-tuning software instruments. It has two advantages over older workflows.
1: All (compatible) software instruments are retuned simultaneously by one master plugin. This saves a lot of repetitive work loading scale files into each instance.
2: Tuning can change dynamically during playback. This is truly wonderful for working in Just Intonation especially, where we oftentimes want to subtly tune individual notes up or down depending on the chord being played. It also enables many other cool things, like gradually gliding from one tuning to another.

It is my perception that the microtuning-community nowadays feels that fully adequate tuning support means enabling both of the methods, scl/kbm files, and MTS-ESP. The latter is superior in the aforementioned ways, but many folks have years of experience with the former. Hence the request for both.

I understand there are some challenges to implementing this in a sampler. They would be the same ones as mentioned in issue #329, where I also just commented. If the issues of key ranges can be resolved, then it'd be wonderful to have MTS-ESP support as well. :)

Implementation is very similar to the Surge Tuning Library, instructions are found here: https://github.com/ODDSound/MTS-ESP

All the best!

@falkTX
Copy link
Contributor

falkTX commented Dec 28, 2022

Please note the core lib for MTS-ESP is not opensource.
This is an issue when building things together with GPL components.

@baconpaul
Copy link

Hi!

You keep saying that and as you know I am sure you are wrong. But that's a tedious argument.

So rather than argue that you are wrong, I decided to just make your statement false.

https://github.com/baconpaul/mts-dylib-reference

there is a fully open source implementation of the MTS intermediating dynamic library. Using it, I was able to make Surge XT tune using MTS ESP when using

https://github.com/baconpaul/simple-mts-main

which is a fully open source implementation of the MTS "Master" (namely a tuning provider).

Best

@falkTX
Copy link
Contributor

falkTX commented Dec 29, 2022

Well that is a new development that you made.
According to MTS authors in ODDSound/MTS-ESP#6 the official library is closed-source.

@baconpaul
Copy link

Yeah but that is dynamically loaded and can be subbed out with another. So after chatting with them I just made an open reference implementation.

it’s not as good as the closed source one, but surge isn’t as good as diva and we load diva in open source vst hosts.

I think practically most folks will use the closed source one but nothing stopping an enterprising developer competing around the open api if they want to improve it!

best

@baconpaul
Copy link

But most importantly it is now entirely possible to get a retuned synth using MTS esp with only GPL or mit software in both your compiled and dynamically loaded path. That’s really the point.

@falkTX
Copy link
Contributor

falkTX commented Dec 29, 2022

That is a grey are still at best. making a dummy/stub DLL and linking a GPL program to it, then replacing the DLL with a proprietary one.
In Germany we would say this goes "against the spirit of the law", as to say it is clearly made as a way to avoid what GPL requires, basically a loophole.
It isn't pretty and not everyone agrees this is a good approach.

@baconpaul
Copy link

That is a grey are still at best. making a dummy/stub DLL and linking a GPL program to it, then replacing the DLL with a proprietary one.
In Germany we would say this goes "against the spirit of the law", as to say it is clearly made as a way to avoid what GPL requires, basically a loophole.
It isn't pretty and not everyone agrees this is a good approach.

So if I load diva into Carla is that a GPL problem?

@falkTX
Copy link
Contributor

falkTX commented Dec 29, 2022

if you create a copycat of Diva that does no sound, integrate it in carla as official feature, and then replace the early dummy copycat with a proprietary version - yes.

@baconpaul
Copy link

Anyway the argument is tedious. You can get an entire MTS esp experience with fully open source software today and the software is all linked here. If you don’t like it that’s fine, but if you think it is false then you are just not reading the code in front of your face!

@baconpaul
Copy link

if you create a copycat of Diva that does no sound, integrate it in carla as official feature, and then replace the early dummy copycat with a proprietary version - yes.

I mean you are just making up stuff now. Which section of the license says that?

@falkTX
Copy link
Contributor

falkTX commented Dec 29, 2022

I dont see any implementation details in https://github.com/baconpaul/mts-dylib-reference/blob/main/src/mts-dylib-reference.cpp, it is all stubs.
am I missing something?

@baconpaul
Copy link

It’s not all stubs. It implements tuning!

@baconpaul
Copy link

MTS just shares a bool, an int and either one or 16 128 double arrays between plugins. That’s it.

@falkTX
Copy link
Contributor

falkTX commented Dec 29, 2022

I see, so that part is nice. Still won't work in bitwig and a few other scenarios because of plugin bridging.
IPC is not particularly hard, but it is tedious, synchronization is the tricky bit..

if you create a copycat of Diva that does no sound, integrate it in carla as official feature, and then replace the early dummy copycat with a proprietary version - yes.

I mean you are just making up stuff now. Which section of the license says that?

I mean if we just mimic proprietary APIs as open with the intention of replacing such bits again with proprietary things... that is running circles around the GPL no? It is all just a dance to not have to deal with opensourcing a little bit of code.

As I said, not everyone agrees this is a good approach. It is clearly made as a way to get around GPL, is it not?

The MTS stuff should have been open in the first place.
We cant package it on Linux distributions at the moment, for those running mostly opensource software it makes such integrations unwanted until the situation improves.

@baconpaul
Copy link

baconpaul commented Dec 29, 2022

It’s an open api. The client and master api are fully open source which is why I could implement a client a master and an intermediate.

Should isn’t that useful a comment I don’t think here. Although I think I would probably have Mae the intermediate lib open also if I was running the project, which I wasn’t. I was just trying to once and for all close the salient question about whether you have a GPL problem when you can get a fully functioning system with all the code available under a GPL or more permissive license. And gave a worked solution of that to put that particular matter to rest

@falkTX
Copy link
Contributor

falkTX commented Dec 29, 2022

It’s an open api.

APIs are not copyrightable, we can reimplement them, so calling it "open api" is meaningless.

The client and master api are fully open source which is why I could implement a client a master and an intermediate.

this is a bit misleading. the end points that connect to the middleware are "open" yes, but the middleware (was) not.

Should isn’t that useful a comment I don’t think here. Although I think I would probably have Mae the intermediate lib open also if I was running the project, which I wasn’t. I was just trying to once and for all close the salient question about whether you have a GPL problem when you can get a fully functioning system with all the code available under a GPL or more permissive license. And gave a worked solution of that to put that particular matter to rest

your efforts are appreciated of course.
sorry for being harsh here, but it really pains me seeing opensource projects trying to quickly jump into integrations for things that were not as clearly opensource. there is a question of ethics here.

sfizz being an opensource project should target the opensource variant (you made) for MTS, disregarding the proprietary one. though of course it is not my call to make.

@baconpaul
Copy link

For sfizz there is zero difference. The plugins don’t compile in the library.

@tank-trax
Copy link

MTS-ESP uses a BSD Zero Clause License

I asked ChatGPT "are GPL licenses compatible with a BSD Zero Clause License"

The answer:


Yes, the GPL licenses and the BSD Zero Clause License are generally considered compatible.

The BSD Zero Clause License (also known as the "0BSD" or "FreeBSD License") is a very permissive open-source license that allows for free use, modification, and redistribution of the software without any restriction. The license essentially puts the software in the public domain.

The GPL licenses, on the other hand, are a family of copyleft licenses that require derivative works to be licensed under the same terms as the original work. This means that if you use or modify software that is licensed under the GPL, you must also license your derivative work under the GPL.

Because the BSD Zero Clause License is so permissive, it does not impose any additional restrictions on the software, which means it is compatible with the GPL licenses. This means that you can include BSD Zero Clause licensed code in a larger project that is licensed under the GPL, without violating either license. However, it's important to note that if you modify the BSD Zero Clause licensed code, you must still comply with the GPL requirements for any derivative works you create.


@falkTX
Copy link
Contributor

falkTX commented Feb 26, 2023

err since when is ChatGPT a lawyer or expert on any specific field? ChatGPT tends to give quite some B-tier replies, if not worse sometimes

@tank-trax
Copy link

AI apparently doesn't use logical fallacies

your response however contains an Appeal to Authority and an Ad Hominem

is the reply to the question asked of ChatGPT accurate or not?

@paulfd
Copy link
Member

paulfd commented Aug 3, 2023

Recentering the thread a bit: thanks for the info, I remember we talked about this before and I'll look into it if I find some time! I'll evaluate the licensing situation since I definitely don't want to taint the library, but I haven't looked deeply into it yet.

Thanks all for your arguments!

@redtide redtide added the new feature Feature additions and requests label Nov 2, 2023
@sfztools sfztools locked and limited conversation to collaborators Nov 10, 2023
@redtide redtide converted this issue into discussion #1205 Nov 10, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
new feature Feature additions and requests
Projects
None yet
Development

No branches or pull requests

6 participants