Dark Theme Rack (Legal Fundamental Module Fork possible?)

In this instance, I’ve more respect for the developers that give us so much great quality free stuff AND the option to change module appearance.

As I’ve stated in the dim & distant past, I have vision issues, I simply cannot tolerate bright backgrounds for any length of time, hence going to the effort of editing every single VCV svg so I can use them comfortably. Why VCV won’t provide this as an option I just don’t understand.

No … wait a second. Derivate work means I do something based on your design. Yes or no?

Yes. So if I were to slightly modify your design and distribute it as yours or mine or some else I’d infringe. Totally agree. So I don’t do that.

We cleared the graphics part and design part.

Now I fork the code of the modules and create a complete different design. That’s not derivative. We have two licenses. A license for graphics and design and one for the codebase. Like I

So I just don’t understand you guys, why you don’t like people helping you with professional work to create features for users who are asking for this. I event wouldn’t mind creating this signing an NDA and giving it away for free to the authors of the plugin. I just want to make it happen, that despite of Andrew not seeing potential in several features some others do.

So my thought was … hey it’s open source. I can contribute. And Andrew clearly stated out that he rejected dark theme in the proposal. Like mentioned in the beginning. I’m not interested in stealing. I’m interested in giving. This sometimes really hits me by surprise when I’m offering something and people think I want to steal or harm someones reputation by my work. I’m a professional Senior Fullstack Developer with a good sense for UI and Design with a paygrade probably beyond most of what people think is possible.

So all I’m asking is: Doing something good for the community with the proper devotion and quality. But if this is something that is going to start a war I stop wasting my energy and spend it on doing something usefull.

2 Likes

As I’ve stated in the dim & distant past, I have vision issues, I simply cannot tolerate bright backgrounds for any length of time, hence going to the effort of editing every single VCV svg so I can use them comfortably. Why VCV won’t provide this as an option I just don’t understand.

Vision issues are IMO a good argument for a universal “dark mode” standard. Many apps (desktop and mobile) and operating systems are doing this. Actually implementing it at the platform level in Rack, where there are 2,300 modules from about 175 different developers, is the challenge.

1 Like

That’s not what we’re asking for, just doing it for VCV modules is easy. Pick a volunteer developer, pick an already existing open source solution from whoever, choose a colour scheme, do the closed source stuff yourselves, publish when happy, end of problem.

Now I fork the code of the modules and create a complete different design. That’s not derivative. We have two licenses. A license for graphics and design and one for the codebase.

Right, that’s what I mentioned above. Two separate licenses. As of yet I have not seen a “completely different design” from you. I can only react to the images that you posted at the top of this thread, which is obviously derivative of the original work and uses the VCV Rack logo.

So I just don’t understand you guys, why you don’t like people helping you with professional work to create features for users who are asking for this.

It’s not that simple. With all respect, I don’t need your help – I have already created dark panel versions of all the Fundamental modules. The larger problem, as I just mentioned in my response above, is one of a technical nature which is up to Andrew to solve (or to ignore if he chooses, as this is just one of a huge number of feature requests for Rack).

So my thought was … hey it’s open source. I can contribute. And Andrew clearly stated out that he rejected dark theme in the proposal. Like mentioned in the beginning. I’m not interested in stealing. I’m interested in giving.

I am sorry that you spent so much time designing these dark panels, but if would have been better to ask permission first instead of presenting a fully-formed solution in a public forum without knowing that it was 1) a violation of the license, 2) something that we had already designed, and 3) something that has already been discussed extensively.

1 Like

Given the 2,300 modules and 175 developers, I’m not sure a platform level solution is a workable approach (from a practical standpoint) or even a desirable one if that means dark panels from all developers would be exactly the same colour. Even if it is, would a simple context menu dark theme option for core and fundamental panels (as implemented by the other developers mentioned) not be a good stop-gap for those with vision issues in the meantime - particularly as your dark panel designs already exist?

Agree with pretty much everything everything else you have said - just can’t wrap my head around why there needs to be platform-level implementation before a VCV dark theme can be released.

2 Likes

I have shown by a work of a day I could create the proper code in rack-v1 for having dark themes. And I have been patching all the svgs from core and fundamentals to have a nice look and fee like you see. I don’t say its perfect yet. But a start. So if you really would think the quality were bad, I’d be happy to improve on that until you thinks it is a high quality standard. Then, with your agreement publish it as your work or explicitly not your work. Whatever suits you best.

For it seems like. Whatever someone in the community is trying to do based on already existing work is a problem (non commercially). This is something I’ve never experienced before and I quite don’t understand why it is like this.

So why not apply those like other developers have? Sorry, it seems you have a solution which you refuse to deploy and I don’t understand why.

Again, like the design work involved in creating dark panels, it’s not that Andrew lacks the technical ability to implement this. It’s that when a VCV plugin is published it sets a standard for the platform. A good universal standard needs to be chosen with the consensus of the developer community. Implementing a temporary hack that might be superseded by a later standard is not a good use of our time nor is it the right way to maintain a huge open-source project (IMO).

1 Like

A standard that would look EXACTLY the same, just darker. Still don’t see what the problem is.

Not an issue for me now, but not everyone knows their way around svg etc.

2 Likes

Have a look again. That was just my first proof of concept, that I showed. I started to create my own panels. Screenshot in the discussion. and here is the work in progress.

I completely deleted the panels and started from 0 with the Panel Guid on the website.

As the code tells where I should put the controls, I just followed along, because I don’t really want to touch the codebase. It’s easier for maintaining it without much modifications. But if you say I still don’t like it I gonna rearrange the input ports, output ports and parameters. I’m probably also not going to change the code for the LED stuff. But if this is really the point and you like me to take the design upside down. Fine. Than this is the way to go.

All I ask is: What is the propper way for you guys, that I do it?

We are just a small community trying to help out each other by maintaining a fork for something that no one of you guys have to support. We don’t ask for take over the world nor do we want to disturb. We would just like to keep repositories others who like this clone and compile themselves without having to spend hours and hours again for doing the same patching someone else did.

I don’t want to steal I don’t want to get richt from it. I just want to make my and others life easier.

And I’m really sorry I didn’t ask in the first place. Because the OSS projects I know are happy getting contributions or maintaining a fork given the fact they respect the license. So all I asked when I presented my work was. Is this conforming to you guys or do I have to put more work into making it happen, so that you are fine with it

I would call this nitpicking if this is allowed. But okay. I’m open for everything

I’m just the designer, platform decisions like this are up to Andrew. But personally I don’t think swapping panels at the individual module level is the right approach from the user experience standpoint. You have to go through every patch swapping every module, that’s very tedious. Developers (such as Bogaudio) can allow others to maintain a “shadow repo” with dark panel graphics, but these repos are not integrated into the VCV Library so plugin updates are not automatic. Third parties can provide SVG graphics but most users don’t want to bother digging through folders and renaming files. These are all examples of Bad UX.

The right way to implement this IMO is at the platform level with a single “dark mode” toggle. But this introduces a ton of work, potentially hundreds of hours. So much stuff has to be updated: individual modules and plugins, Rack itself, the module browser, the Library web app, the build pipeline which generates module screenshots, and probably a lot more.

I don’t think there’s a “proper” way to do what you want. I’ve explained the terms of the license and stated my preferences. If I was OK with derivative works I would have chosen a different license.

That’s where we are circling around. I dont want to do derivative work. I just want to know where the line is. I just stop discussing here, because I am familiar with this mindset.

The license is clear. No derivative work. I’m not going to do so. I’m going to create a novel interface or maybe nothing at all. It’s sad to have a beautiful open source project like this and you can’t do anything with it but to use it or create something new. No room for changes, modifications or enhancements besides than the ones the creators envision

UPDATE: Here is a citation of the GNU Philosophy what free means, which is linked on the website.

“Free software” means software that respects users’ freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer”. We sometimes call it “libre software,” borrowing the French or Spanish word for “free” as in freedom, to show we do not mean the software is gratis.

The Ethical guidelinees are also clear

VCV Plugin Ethics Guidelines You may not clone the brand name, model name, logo, panel design, or layout of components (knobs, ports, switches, etc) of an existing hardware or software product without permission from its owner, regardless of whether these are covered under trademark/copyright law. It is recommended to follow these guidelines for all plugins, but you are not legally obligated to do so. However, it is a requirement for:

distributing your plugin on the VCV Library. obtaining a commercial plugin license.

So: I don’t want to make harm. I have stated that in the very beginning. For me, there are a couple of options right now based on the ethics and LICENSES.

  1. Wait until you guys decided to do dark theming(which won’t happen because Andrew rejected the proposal)
  2. Stop using light seemed modules like Fundamentals
  3. Create a complete unique Design of the Components without using anything from the Grayscale graphics
  4. Don’t do anything at all.
1 Like

For a fair amount of modules, a trivial search and replace on the SVG files is sufficient to create an alternate theme. Creating an utility that automates the patching, handles backups, and keeps track of updates, on the user’s machine, would be a simple way to satisfy the requirement not to distribute modified versions.

3 Likes

I think it’s the best first step to do. And obviously some users don’t mind doing this for free. Some even want to share the results with others.

And even this some users don’t mind to do on occasional updates. Thank’s to git we have some nice patch and merge manangement for forks.

Not ideal, true. I also consider a non existing dark-theme a bad UX (But that’s just my opinion). I know this might sound offensive to you, but really it’s not.

Rack itself is not an issue. I’ve been patching the dark values into codebase within a couple of hours without knowing the codebase at all. Kudos to Andrew: Very clean! I’ve rarely seen such a nice and good codebase! Let it ripe for another couple of days adding proper implementation. lets say 2 weeks of work or 4. Split that on volunteers … (You already have one). I don’t see the issue you are describing. But this is not the discussion. Andrew rejected the proposal. I respect this.

I think there is, but you probably not gonna like it. And that’s what I don’t want to have. I don’t want to steal your creation and make you guys feel miserable. I want your consent on how to do it.

Let me put it into my own words, what I think: You are afraid of someone else is doing something novel on the existing code and is using this to get leverage (financial or in whichever way). Or that someone else is stealing the code and making a profit from it. I thought this is why we have the LICENSE in place.

Now back to topic: As dark themes in Rack has been rejected, under which terms would you be fine to have some groundwork done to maintain a fork of YOUR designs, which no one wants to steal.

You very clearly said: “Do it in private, I don’t like this. I play my derivative work license card”. Which is totally fine.

I want to make you guys feel good about this. So you don’t want to have your design modified. Great. I’ll respect that. Now the only option for me is to create a new one and just use Andrews code. Which referring to the ethical guidelines is not ethical at all, so it won’t ever make it to the store.

Alternatives: The fork provides a custom store (Even worse from the UX). Usere download and compile the code themselves or use the releases on github.

All of this solutions are not something you agree with or like. Because I’m smart enough to know this I started the topic by presenting my vision and asking for the right way to do it.

All I’m getting as a response right now is: Don’t do it, whatever way, even it is legal. Just don’t do it. And I can’t help to ask myself why on earth? I can’t find the right reason from you stopping this

I don’t think that is a fair assessment at all. I see the main idea of VCV as being a platform upon which developers can build pretty much anything they want - including modules that can change the functionality of Rack itself (Stoermelder’s module browser being a good example of this)

The code is open source mainly so developers can study it and use it to help them build high quality modules of their own. The core and fundamental modules are made by the creators and if you are going to use their code, they clearly have a strong preference for you using the code to create something unique and original rather than just reskinning what they have made. These are their modules and they want to retain control of them. You are free to create any modules of your own and skin them however you like.

I understand and respect their take on this and support Wes’s position that if there is going to be a dark theme for core and fundamental modules then it should be his dark theme.

The only part I question is the necessity for a platform level dark theme option. The developers that have already implemented this allow the user to set a ‘dark as default’ option for their modules so there really aren’t a lot of clicks required - more a case of one set-and-forget click per developer. That UX seems fine to me.

Given the complexity and time involved in implementing a platform level dark theme, (not to mention all the other work ongoing at this time) having a ‘dark as default’ on a developer basis seems like a quick and effective solution.

2 Likes

It’s been a statement about my subjective feelings. Not an assessment at all.

You name it reskinning. I call it an important feature / UX enhancement.

Why having a GPL3 for the code if they don’t like modification and redistribution?

Me too, that’s why its probably not going to happen.

Totally agreed.

It is indeed. But not for the Core Modules because of the license. So no dark theme for the modules. But just for rack it self can be maintained in a fork

I was referring to the modules and the modules are effectively covered by two licenses - GPL3 for the code and a more restrictive license for the design.

I imagine they would prefer you didn’t modify and redistribute Rack as a whole (pretty sure they don’t want lots of different versions of Rack floating around). But they are happy for you to take and use parts of the code to create original modules of your own under the same license.