-
Notifications
You must be signed in to change notification settings - Fork 0
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
TODO: Roadmap to baseline #69
Comments
Some notes:
Tough call here. The rack structs
There's a fine line here: we only need to test things which are specific to that module, such as
This will need a feature branch. The eventual intention is to offer an open-sourced design system/component library that can be shared with others, separately from the plugin modules. Some aspects of this might end up in the StoneyDSP library, while rack-specific stuff would be in StoneyVCV. I intend to use the contents of One thought I'm having is to use some custom data type to hold either RGB or hex color values (possibly in the StoneyDSP lib/namespace); then, in the StoneyVCV namespace, provide a function which accepts this data type as the input argument, and returns an auto black = {43, 43, 43, 255}; // RGBA
const NVGcolor bgBlack = createNVGcolor(black);
I'll likely use CMakeRC or some hack on it to create char pointer arrays containing resource data encoded as bytes. This will enable me to re-use the tonnes of existing image resources I already have which are in other formats besides SVG. It isn't inconceivable to use this for other things too, like audio files... |
Ok.... I think this remote repo is finally up to date with my local, for the first time. All branched and versioned now. I think it's time to figure out this GUI stuff. |
ProblemI don't like having so many different value ranges in the codebase. Specifically, voltages from 0 to 10, audio from -1 to 1, and parameters doing whatever ranges they like. It tends for some very messy DSP with much more allocation and logic than necessary. IdeaUse abstract classes to seperate DSP-based processing from VCV Rack SDK stuff
I propose everything on the panel should be viewed as analogous, as in, represents a real-world electrical voltage value. So, knobs as well as ports have a scale from 0 to 10, or from -10 to +10. A lot of params will require scaling internally to behave as desired: all part of the plan, and a chance to do things like insert test points, clippers, scalars, and smoothers. In terms of "safety" and headroom: clipping at 12v (including -12v) is an idea I like. It allows for "+12 above 0dBfs", with a "nominal" voltage of 10v (0dBfs)... The actual limits may be hard-coded as a set of static, namespaced global variables which can be referenced in class methods. This saves some allocations. We may think of these as our plugin's "power supply". |
It's far too expensive to do these comparisons on every audio tick. In the case of the VCA module, which is probably the most minimal audio processor I have planned, that's 4 calls to There are certain things I do wish to clamp: unipolar inputs, particularly. Those are within reason. Vetoing the previous idea of clipping and clamping on the audio thread in any case which is not necessary. |
If knew then what I know now... this is what I would do differentlySub-class basically all of the factory component library namespace into my own component library, and sub-class those to create my modules and module widgets. Also wrap some of the factory functions in my own... EDIT: ...and use more managed pointers-to-members with getter/setter functions... |
Chore
Describe the chore
Outstanding tasks before we can commit to incrementing the plugin version number to indicate an official baseline release version.
rack-sdk::dep::openssl
, and so forth, each with their own FILESET and correct dep linkages #329REQUIRE_THAT(box.size.x, WithinRel(::rack::mm2px(5.08F)))
, etc... #327box.size.y == ...
as above #328STONEYVCV_VERSION <= 20001000....
instead of*_VERSION_MAJOR/MINOR/etc
#385git rev-parse HEAD
to generateSTONEYVCV_BUILDNUMBER
and/orSTONEYVCV_VERSION_TWEAK
#315onThemeChanged
" events, if possible, to mark framebuffer widgets asdirty()
#263The text was updated successfully, but these errors were encountered: