VCVRack / library

Database for the VCV Library
https://library.vcvrack.com/
378 stars 81 forks source link

"modules" property #243

Closed AndrewBelt closed 1 year ago

AndrewBelt commented 6 years ago

This is a design proposal for adding a "modules" property with information about each module contained in a plugin.

{
    ...,
    "modules": {
        "VCO-1": { // slug
            "name": "VCO-1",
            "tags": ["OSCILLATOR"], // matches tags.hpp without the _TAG suffix
            "screenshot": "https://..."
        },
        ...
    }
}

A lot of things I don't like here.

Web app for creating/editing manifests

Disclaimer: The existence of an issue by me doesn't imply it will be implemented.

fbeecher commented 6 years ago

I'm not a developer, so I can't comment on the technical stuff. But I am a UX designer, so I can help think through the flow a little bit.

I feel like there are a lot of similarities between the task of selecting modules in Rack and the task of selecting modules on Modulargrid. On MG, you have basically an infinite assortment to choose from and you can add any amount of a single module to your rack. In Rack, with enough module plugins installed, you pretty much have the same thing.

I guess what we're thinking of here is a data model (???) for modules? If so, here are my suggestions (integrating Andrew's as well)

In terms of how this would work, I'm imagining that the current plugin-focused navigation would go away and be replaced by module-focused searching/filtering/sorting like MG. It still makes sense, I think, to do this in a modal.

If this happens, we could potentially also make some of this info available from the right-click menu when you RC on a module. E.g., "website link" would be particularly useful, as would CV I/O ranges.

EDIT by Andrew: replaced pack -> plugin

gbrandt1 commented 6 years ago

screenshots could be in further subdirectories for each manufacturer in the repo itself

fbeecher commented 6 years ago

@AndrewBelt It looks like you're starting to implement this. I'm a UX designer, but not a visual designer. Would it be helpful if I put together a prototype? It'll be black, white, and gray, but the interactions will be solid.

AndrewBelt commented 6 years ago

I have a deadline to meet, so any changes will need to be wrapped up in ~4 hours of effort. But you're welcome to send some ideas. Keep in mind that I already have a graphic designer who would work on this if I asked, but I won't say no to opinions.

fbeecher commented 6 years ago

Alright. Probably can't be useful on this one then. Let me know if you need help working out interaction ideas in the future. Happy to collab with your graphic designer.

AndrewBelt commented 5 years ago

Okay, going with the following schema.

    "modules": {
        "MyModule": {
            "name": "MyModule",
            "description": "A simple sine oscillator for demonstrating the Rack API",
            "tags": ["vco"]
        }
    }

This will be in plugin.json and will actually be required for all modules.

AndrewBelt commented 5 years ago

Here's a full example from the Template plugin. https://github.com/VCVRack/Template/blob/7c28f8d276e51d9d2c8e8de639e6823648c97e8c/plugin.json

AndrewBelt commented 5 years ago

For screenshots, the following questions need to be answered:

dizzisound commented 5 years ago

A few freewheeling ideas, to feed the heuristic phase...

AndrewBelt commented 1 year ago

Closing since the "modules" property was added in Rack 1, and feature requests are now handled by VCV Support.