Only Inkscape is supported by this script and Rack’s SVG renderer.
Create a document with units in “mm”, height of 128.5 mm, and width of a multiple of 5.08 mm (1 HP in Eurorack).
Design the panel.
Create a layer named “widgets”.
For each component, create a shape on the widgets layer.
Use a circle to place a component by its center.
The size of the circle does not matter, only the center point.
A create*Centered() call is generated in C++.
Use a rectangle to to place a component by its top-left point.
This should only be used when the shape’s size is equal to the component’s size in C++.
A create*() call is generated in C++.
Set the color of each shape depending on the component’s type.
Param: red #ff0000
Input: green #00ff00
Output: blue #0000ff
Light: magenta #ff00ff
Custom widgets: yellow #ffff00
Hide the widgets layer and save to res/<module slug>.svg.
I’d be surprised if those don’t generate the same code. The vector pow has the signature f32_4 pow(f32_4, f32_4) and is in the simd namespace. If you want to use them both without namespaces, add using std::pow; in your function. This is useful when writing generic functions and classes.
I believe they can if -ffast-math is used. I think there is one more aggressive than fast math, it’s name escapes me right now.
I did some (unrelated to Rack) tests and when no optimization flags are in place, GCC would just call out to the standard library. Even if told that it was OK to generate AVX code it would still do so. Although once fast math is turned on, it will use the native math opcodes instead of the C functions (and then once it was willing to do that it was further willing to vectorize them.)
Events of the form event::MouseButton) have been renamed to MouseButtonEvent, etc. If you’ve started porting your code to the v1 API, you can rename them with
I think that even though the platform is open and everyone is free to design modules as they wish, we should collectively strive to have the best layouts and follow the best standards in our modules, such that it reflects positively on any random new user opening Rack for the first time.
A very inspiring example of this was yesterday in the FB group where two people contributed an improved svg for a new module created by someone else.
In the same vein, I can’t help but remember when I saw Deadmau5 streaming his first steps with VCV Rack a while back, and thinking that any un-polished modules that he opened would reflect negatively on his experience. And I am including myself in this, since if I recall correctly, he didn’t get a single note out of my PhraseSeq16, which was quite revealing to me…
I was thinking about clarity issues, such as colour, size, fonts, positioning (above/below), avoiding blurring etc.
plus any workflow normals: if you’ve got a lot of labels and want to change them, it’s quite hard if you’ve only got the path - you have to delete and recreate them, remembering position/font/exact size etc.
we’ve all got our own solutions, of course. just wondering if there were any official recommendations for the platform.