strum / strums_mental_vcv_modules Goto Github PK
View Code? Open in Web Editor NEWStrum's Mental Modules for VCV Rack
License: BSD 3-Clause "New" or "Revised" License
Strum's Mental Modules for VCV Rack
License: BSD 3-Clause "New" or "Revised" License
MentalButtons won't compile...
change lines 33-35:
float button_leds[8] = {};
bool button_states[8] = {};
float moment_leds[7] = {};
Compiling errors out on MentalMuxes.cpp, MentalFold.cpp, and MentalClip.cpp due to use of abs() instead of std::abs(). Replacing the function allows the module to be built.
Is it possible to open an old patch that used pre-V1.0 Mental modules, and have it pull in the new versions? I used your Quad LFO and Mults modules quite frequently prior to the V1 update, and a good majority of my old patches now have significant holes in them. Was very excited to see your update posted in the plugin manager, but then realized that Rack didn't recognize the new modules as being the same as the old ones. Any help/pointers you can offer would be greatly appreciated
Sorry for what may be a very basic question, but I have no coding experience, and haven't had any luck finding an answer by searching around.
Many thanks.
The MentalMasterClock2.svg wasn't loading and the reason was it didn't exist!
Turns out MentalMasterClock.svg DOES exist so I copied it to MentalMasterClock2.svg and the jacks had labels again!
Hey there, I have been using your Patch Matrix a lot lately and I would like to do a feature request:
Would it be possible to add a right mouse button click option for the switches to make a 50% attenuated connection, like putting a green pin with double the resistance into the pin matrices found on the EMS Synthi range and clones thereof?
I have been trying to build a VCV clone of the EMS VCS3, and found your Patch Matrix to work the best for this purpose, but the one thing that I'm missing is this attenuated connection possibility.
My idea then was to change the lights on the buttons to reflect what pin is inserted, a raw MSPaint version can be seen below, the red ones being left click, the green ones right click.
I'm hoping to hear what you think of this idea,
Kind regards
Deev
rm -rf dist
mkdir -p dist/"Mental"
cp plugin.so dist/"Mental"/
strip -s dist/"Mental"/plugin.so
cp -r --parents LICENSE.txt res README.md Demo_Patches plugin.json dist/"Mental"/
cp: cannot stat 'Demo_Patches': No such file or directory
/home/cschol/src/Rack-SDK/Rack-SDK/plugin.mk:55: recipe for target 'dist' failed
make: *** [dist] Error 1
Hi! First, thanks for developing such a nice mixer. I'm an audio guy and find this mixer to have many of the capabilities I use in a mixer. I have some enhancement requests that I will submit separately.
The issue I'm finding is that if I use the CV-Map Midi mapper from Stoermelder and press the Mute button for a channel on my BCF2000 USB Midi control surface, the mutes occur correctly with a single press muting and another press to unmute.
If I bypass the mapper and send a poly connection to the Poly Mute input, then one press mutes, but the second press does not unmute. It takes a 3rd press to unmute and now my control surface is showing the channel as muted. So the Poly Mute input is not behaving the same as when it is controlled by the Midi Map module.
It may be that I need to edit the midi on my control surface to send different information, but it seems like it should behave the same way. I'm assuming the input to Poly Mute is looking for a high voltage to mute and low or 0 to unmute. I believe my control surface is sending a 127 to mute and a 0 to umute. I may need to put a flipflop in between the Midi module and ten merge for the Poly Mute input, but if I need to do that, I may as well use the Midi Map module and just map the mute button since that works as expected.
I am attaching images for the 2 configurations.
oops. doing it again.
Building from fresh git pull on Fedora 21, GCC 4.9.2, pretty old system :
g++ -fPIC -I../../include -I../../dep/include -MMD -O3 -march=nocona -ffast-math -Wall -Wextra -Wno-unused-parameter -g -DARCH_LIN -std=c++11 -c -o build/src/MentalCartesian.cpp.o src/MentalCartesian.cpp
src/MentalCartesian.cpp:52:44: error: too many initializers for ‘float [4][4]’
0.0,0.0,0.0,0.0};
^
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:52:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: too many initializers for ‘float [4][4]’
0.0,0.0,0.0,0.0};
^
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
src/MentalCartesian.cpp:57:44: error: array must be initialized with a brace-enclosed initializer
../../compile.mk:51: recipe for target 'build/src/MentalCartesian.cpp.o' failed
make: *** [build/src/MentalCartesian.cpp.o] Error 1
Dropped RAR in plugins folder, unzipped, opened VCV, modules not in plugin list, tried update still no go, any suggestions please (havent had this problem before)
I seem to have gotten things confused. I submitted issues and requests to the wrong developer. I honestly don't know how this happened. I don't know how to access your email to inform you of my mistake so I'm just submitting another issue.
Sorry, Mike
Only Linux and Windows listed
thank you
The gSampleRate API change brings up the wider issue of how module developers handle API changes.
Having thought a bit about it I've decided my approach will be 1. Code API changes in to the code but comment them out until they are applied in the release version of rack. 2. Try and keep the binary releases so they work against the current Rack release. This will mean people who want to use the dev version of rack will need to build the plugin from source and comment out and in the appropriate lines to suite any API changes from the release version.
At some point in the future I will learn how to do versioning of the code and releases in a better way but hopefully this will work for now.
Hopefully I can keep the Linux and Mac Build current with the latest Rack release and the latest update to the plugins so non coders can just use it, coders shouldn't have too much trouble coping with the commenting in and out bits until i get proper versioning sorted.
The binary decoder is basically a 3 to 8 decoder.
Without an enable pin (input) these cannot be chained to form larger decoders
for handling binary values greater than 7.
It is possible to include an enable input on the decoder (as well as to do the
same for the other devices: muxers and splitters so they can be chained as well) ?
Hi,
Building on osx, I had to remove the 'std::' prefix from two lines (like this error message suggested).
Thanks for nice modules! :)
make
c++ -fPIC -I../../include -I../../dep/include -DSLUG=mental -DVERSION=0.5.b -MMD -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.7 -std=c++11 -stdlib=libc++ -c -o build/src/MentalCartesian.cpp.o src/MentalCartesian.cpp
src/MentalCartesian.cpp:156:5: error: no type named 'div_t' in namespace 'std';
did you mean simply 'div_t'?
std::div_t division_x;
^~~~~~~~~~
div_t
/usr/include/stdlib.h:85:3: note: 'div_t' declared here
} div_t;
^
src/MentalCartesian.cpp:166:16: error: use of undeclared identifier
'division_y'; did you mean 'division_x'?
std::div_t division_y;
^~~~~~~~~~
division_x
src/MentalCartesian.cpp:156:16: note: 'division_x' declared here
std::div_t division_x;
^
src/MentalCartesian.cpp:166:15: error: expected ';' after expression
std::div_t division_y;
^
;
src/MentalCartesian.cpp:166:10: error: no member named 'div_t' in namespace
'std'
std::div_t division_y;
~~~~~^
src/MentalCartesian.cpp:167:5: error: use of undeclared identifier 'division_y';
did you mean 'division_x'?
division_y = div(y_position + y_cv,4);
^~~~~~~~~~
division_x
src/MentalCartesian.cpp:156:16: note: 'division_x' declared here
std::div_t division_x;
^
src/MentalCartesian.cpp:170:18: error: use of undeclared identifier 'division_y'
y_position = division_y.rem;
^
6 errors generated.
make: *** [build/src/MentalCartesian.cpp.o] Error 1
On the Mac (10.12 Sierra):
I checked out 0.4.0 of Rack and trying to complete the source. I
am getting these type of errors:
src/MentalPatchMatrix.cpp:30:5: error: type 'double' cannot be narrowed to
'bool' in initializer list [-Wc++11-narrowing]
{{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},
^~~
src/MentalPatchMatrix.cpp:30:5: note: insert an explicit cast to silence this
issue
{{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0},
^~~
..........
I could change the "0.0" values to "0". Maybe an explicit cast is better?
I had seen an Youtube video "Modular curiosity" https://www.youtube.com/watch?v=CZIqGavz-Qk that features the Mental Mixer. In the video I noticed you had direct PAN controls on the right side of the mixer. I notice that at some point PAN had been removed - (I presume that part has been moved into MIX bus?). After some experimenting I can see that pan can still be achieved by patching the same signal to multiple rows... but there is no documentation on this. Maybe a bit of an explanation of how to pan within this module might make it more clear (or at least how to use in conjunction with SubMix module?
Module creators can create a .json file in order to show metadata and link to file downloads.
Info and instructions here: https://github.com/VCVRack/community
The validation script found the following issues during integration:
[Strums_Mental_VCV_Modules] Issues found in `plugin.json`:
MentalMixer: invalid module tags: Stereo
MentalSubMixer: invalid module tags: Stereo
MentalFold: invalid module tags: Fold
MentalClip: invalid module tags: Clip
MentalGates: invalid module tags: Gate, Mute
MentalQuantiser: invalid module tags: Quantiser
MentalChord: invalid module tags: Chord, Harmony
MentalButtons: invalid module tags: Control, Button
MentalSums: invalid module tags: Sum
MentalPitchShift: invalid module tags: Pitch Shift
MentalMux8: invalid module tags: Multiplexer
MentalCounters: invalid module tags: Counters
MentalKnobs: invalid module tags: Control
MentalRadioButtons: invalid module tags: Button
-- Valid tags are defined in https://github.com/VCVRack/Rack/blob/v1/src/plugin.cpp#L534
I get this when trying to compile the source on a Mac:
Strums_Mental_VCV_Modules paul$ make
c++ -fPIC -I../../include -I../../dep/include -MMD -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_MAC -mmacosx-version-min=10.7 -std=c++11 -stdlib=libc++ -c -o build/src/MentalClockDivider.cpp.o src/MentalClockDivider.cpp
src/MentalClockDivider.cpp:180:43: error: use of undeclared identifier
'gSampleRate'
lights[0] -= lights[0] / lightLambda / gSampleRate;
(along with 4 or 5 more gSampleRate related errors)...
Also, the binary library posted on the plugin list is not working with 0.4.0
Ideas on either of the above issues?
There is no mental folder inside the zip for 0.5b. Modules do not show in VCV when you unzip.
Easy fix create new folder copy from zip paste in new folder rename folder to "mental"
g++ -fPIC -I../../include -I../../dep/include -MMD -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_LIN -Wsuggest-override -std=c++11 -c -o build/src/MentalClockDivider.cpp.o src/MentalClockDivider.cpp
src/MentalClockDivider.cpp:67:7: warning: ‘virtual void MentalClockDivider::step()’ can be marked override [-Wsuggest-override]
void step();
^~~~
src/MentalClockDivider.cpp: In member function ‘virtual void MentalClockDivider::step()’:
src/MentalClockDivider.cpp:180:43: error: ‘gSampleRate’ was not declared in this scope
lights[0] -= lights[0] / lightLambda / gSampleRate;
^~~~~~~~~~~
src/MentalClockDivider.cpp:180:43: note: suggested alternative: ‘glSampleMaski’
lights[0] -= lights[0] / lightLambda / gSampleRate;
^~~~~~~~~~~
glSampleMaski
src/MentalClockDivider.cpp:198:43: error: ‘gSampleRate’ was not declared in this scope
lights[1] -= lights[1] / lightLambda / gSampleRate;
^~~~~~~~~~~
src/MentalClockDivider.cpp:198:43: note: suggested alternative: ‘glSampleMaski’
lights[1] -= lights[1] / lightLambda / gSampleRate;
^~~~~~~~~~~
glSampleMaski
src/MentalClockDivider.cpp:216:43: error: ‘gSampleRate’ was not declared in this scope
lights[2] -= lights[2] / lightLambda / gSampleRate;
^~~~~~~~~~~
src/MentalClockDivider.cpp:216:43: note: suggested alternative: ‘glSampleMaski’
lights[2] -= lights[2] / lightLambda / gSampleRate;
^~~~~~~~~~~
glSampleMaski
src/MentalClockDivider.cpp:234:43: error: ‘gSampleRate’ was not declared in this scope
lights[3] -= lights[3] / lightLambda / gSampleRate;
^~~~~~~~~~~
src/MentalClockDivider.cpp:234:43: note: suggested alternative: ‘glSampleMaski’
lights[3] -= lights[3] / lightLambda / gSampleRate;
^~~~~~~~~~~
glSampleMaski
src/MentalClockDivider.cpp:252:43: error: ‘gSampleRate’ was not declared in this scope
lights[4] -= lights[4] / lightLambda / gSampleRate;
^~~~~~~~~~~
src/MentalClockDivider.cpp:252:43: note: suggested alternative: ‘glSampleMaski’
lights[4] -= lights[4] / lightLambda / gSampleRate;
^~~~~~~~~~~
glSampleMaski
make: *** [../../compile.mk:55: build/src/MentalClockDivider.cpp.o] Error 1
i'm on win 8.1 and rack doesn't wanna load the plugin anymore? what's happened?
I have been thinking about splitting up the modules into more than one plugin.
Maybe one plugin for utilities and another for pitch related modules.
What do people think?, it's not really a big issue but Id be interested to know what people think about the idea.
Unzipped.. created a folder and put the plugin.dylib file in it. Nothing. Anyone get this working yet on Mac?
Hello, I really like your modules and now I a m using patchmatrix in every patch I am doing, so thanks a lot.
But just now I am a bit limited by the size (10x10) and I was thinking in 2 solutions:
1- to make a 13*13 module (see photo1) but it is still limited
2- to make in the right click menu the possibility to glue few modules together (see photo) and in this case to disable the unnecessary ins and outs.
I know it is really a lot of time to do these modules but if you can think about it, it would be really nice.
Have a nice weekend
Matthieu.
Hello! ;)
Just checking in to see if there was already an effort underway to migrate your suite of modules to Rack v1? If not perhaps the VCV community can take on the task of migrating?
Thanks & take care
Hi!
First of all sry that you didnt get any svg files from me for your modules. I was totally busy and forgot about it... but I saw that someone else took on the job and helped you.
I m writting you also because of the plugin manager. you didnt provide any download links for your current version in the community repo..
before you can send a PR with the downloadlinks, please make sure that your makefile includes the correct SLUG and VERSION number of your latest build. You can have a look at the tutorial makefile if you want to know how to do that ;)
the json file also got a VERSION number which needs to be edit aswell if the version you will send is newer than the current in the json file.
I presume you have updated modules? They show the version on the VCVRack plugins page as 6.1. But there are no links to download and no way to run update. Are they in an undisclosed location? If they are still under development, you might want to make an announcement on the VCVRack Facebook page.
Cheers
Hi!
I see you have a Fade CV and I thought this would be a Fade CV input, but it seems to be an output. I can see some possibilities for there being a CV out for faders, but I really would like an input just like there is for the Mute and Solo. Maybe you have this and I'm missing it.
Sorry for all the submissions. I'm done, I think. :) Thanks again for making this module!
Mike
These instances of font handling need update per the v2
API. They currently cause the VST to crash.
References to fonts cannot be stored across frames in v2
.
src/MentalCounters.cpp
132-
133- NumberDisplayWidget3()
134- {
135: font = APP->window->loadFont(asset::plugin(pluginInstance, "res/Segment7Standard.ttf"));
136- };
137-
138- void draw(const DrawArgs& args) override
src/MentalMasterClock.cpp
229-
230- NumberDisplayWidget2()
231- {
232: font = APP->window->loadFont(asset::plugin(pluginInstance, "res/Segment7Standard.ttf"));
233- };
234-
235- void draw(const DrawArgs& args) override
src/MentalKnobs.cpp
161- std::shared_ptr<Font> font;
162-
163- NumberDisplayWidget4() {
164: font = APP->window->loadFont(asset::plugin(pluginInstance, "res/Segment7Standard.ttf"));
165- };
166-
167- void draw(const DrawArgs& args) override
src/MentalGateMaker.cpp
160- std::shared_ptr<Font> font;
161-
162- NumberDisplayWidget() {
163: font = APP->window->loadFont(asset::plugin(pluginInstance, "res/Segment7Standard.ttf"));
164- };
165-
166- void draw(const DrawArgs& args) override
Hi!
Why are the direct outputs that are polyphonic split into 2 groups? I'm not sure what the advantage is here and I can be missing a feature you intended. If I use the Nysthi Polyphonic Recorder, it has a single 16 channel input and so I need to split the first 8 out, the second 8 out and then merge both to 16 go to the recorder.
Just wondering. :)
Mike
Strum: I just tried re-making this from your source but running into new issues. I'll include the make dump below in case you have ides on how to tweak the source:
$ make
c++ -fPIC -I../../include -I../../dep/include -DVERSION=dev -DVERSION_dev -MMD -O3 -march=nocona -ffast-math -Wall -g -DARCH_MAC -mmacosx-version-min=10.7 -std=c++11 -stdlib=libc++ -c -o build/src/MentalABSwitches.cpp.o src/MentalABSwitches.cpp
src/MentalABSwitches.cpp:45:23: error: no matching constructor for
initialization of 'rack::Module'
...: Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {}
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../include/engine.hpp:43:2: note: candidate constructor not viable: requires
3 arguments, but 4 were provided
Module(int numParams, int numInputs, int numOutputs) {
^
../../include/engine.hpp:33:8: note: candidate constructor (the implicit copy
constructor) not viable: requires 1 argument, but 4 were provided
struct Module {
^
../../include/engine.hpp:41:2: note: candidate constructor not viable: requires
0 arguments, but 4 were provided
Module() {}
^
src/MentalABSwitches.cpp:99:7: error: unknown type name 'lights'; did you mean
'Light'?
lights[B_LEDS + i].value = 1.0;
^~~~~~
Light
../../include/app.hpp:162:8: note: 'Light' declared here
struct Light : TransparentWidget {
^
src/MentalABSwitches.cpp:99:25: error: cannot use dot operator on a type
lights[B_LEDS + i].value = 1.0;
^
src/MentalABSwitches.cpp:100:7: error: unknown type name 'lights'; did you mean
'Light'?
lights[A_LEDS + i].value = 0.0;
^~~~~~
Light
../../include/app.hpp:162:8: note: 'Light' declared here
struct Light : TransparentWidget {
^
src/MentalABSwitches.cpp:100:25: error: cannot use dot operator on a type
lights[A_LEDS + i].value = 0.0;
^
src/MentalABSwitches.cpp:108:7: error: unknown type name 'lights'; did you mean
'Light'?
lights[B_LEDS + i].value = 0.0;
^~~~~~
Light
../../include/app.hpp:162:8: note: 'Light' declared here
struct Light : TransparentWidget {
^
src/MentalABSwitches.cpp:108:25: error: cannot use dot operator on a type
lights[B_LEDS + i].value = 0.0;
^
src/MentalABSwitches.cpp:109:7: error: unknown type name 'lights'; did you mean
'Light'?
lights[A_LEDS + i].value = 1.0;
^~~~~~
Light
../../include/app.hpp:162:8: note: 'Light' declared here
struct Light : TransparentWidget {
^
src/MentalABSwitches.cpp:109:25: error: cannot use dot operator on a type
lights[A_LEDS + i].value = 1.0;
^
src/MentalABSwitches.cpp:138:14: error: use of undeclared identifier
'createLight'
addChild(createLight<MediumLight>(Vec(62, group_spacing ...
^
src/MentalABSwitches.cpp:138:38: error: use of undeclared identifier
'GreenLight'
addChild(createLight<MediumLight>(Vec(62, group_spacing ...
^
src/MentalABSwitches.cpp:144:2: error: expected '}'
}
^
src/MentalABSwitches.cpp:115:50: note: to match this '{'
MentalABSwitchesWidget::MentalABSwitchesWidget() {
^
12 errors generated.
make: *** [build/src/MentalABSwitches.cpp.o] Error 1
Latest build for Mac:
Not sure if the Cartesian sequencer is supposed to be yellow or not, or have any text legends:
Some warnings during compilation:
src/MentalClip.cpp:50:7: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
if (abs(signal_in) > threshold)
^
src/MentalClip.cpp:50:7: note: use function 'std::abs' instead
if (abs(signal_in) > threshold)
^~~
std::abs
src/MentalClip.cpp:50:7: note: include the header or explicitly
provide a declaration for 'std::abs'
1 warning generated.
...
src/MentalFold.cpp:42:7: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
if (abs(signal_in_1) > threshold_fold )
^
src/MentalFold.cpp:42:7: note: use function 'std::abs' instead
if (abs(signal_in_1) > threshold_fold )
^~~
std::abs
src/MentalFold.cpp:42:7: note: include the header or explicitly
provide a declaration for 'std::abs'
1 warning generated.
...
src/MentalMuxes.cpp:59:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_a2 = abs((signal_in_a2 / 3));
^
src/MentalMuxes.cpp:59:20: note: use function 'std::abs' instead
level_led_a2 = abs((signal_in_a2 / 3));
^~~
std::abs
src/MentalMuxes.cpp:59:20: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:65:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_a1 = abs((signal_in_a1 / 3));
^
src/MentalMuxes.cpp:65:20: note: use function 'std::abs' instead
level_led_a1 = abs((signal_in_a1 / 3));
^~~
std::abs
src/MentalMuxes.cpp:65:20: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:75:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_b2 = abs((signal_in_b2 / 3));
^
src/MentalMuxes.cpp:75:20: note: use function 'std::abs' instead
level_led_b2 = abs((signal_in_b2 / 3));
^~~
std::abs
src/MentalMuxes.cpp:75:20: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:81:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_b1 = abs((signal_in_b1 / 3));
^
src/MentalMuxes.cpp:81:20: note: use function 'std::abs' instead
level_led_b1 = abs((signal_in_b1 / 3));
^~~
std::abs
src/MentalMuxes.cpp:81:20: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:90:24: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
int selector = round(abs(select_c));
^
src/MentalMuxes.cpp:90:24: note: use function 'std::abs' instead
int selector = round(abs(select_c));
^~~
std::abs
src/MentalMuxes.cpp:90:24: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:96:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_c1 = abs((signal_in_c1 / 3));
^
src/MentalMuxes.cpp:96:20: note: use function 'std::abs' instead
level_led_c1 = abs((signal_in_c1 / 3));
^~~
std::abs
src/MentalMuxes.cpp:96:20: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:104:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_c2 = abs((signal_in_c2 / 3));
^
src/MentalMuxes.cpp:104:20: note: use function 'std::abs' instead
level_led_c2 = abs((signal_in_c2 / 3));
^~~
std::abs
src/MentalMuxes.cpp:104:20: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:112:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_c3 = abs((signal_in_c3 / 3));
^
src/MentalMuxes.cpp:112:20: note: use function 'std::abs' instead
level_led_c3 = abs((signal_in_c3 / 3));
^~~
std::abs
src/MentalMuxes.cpp:112:20: note: include the header or explicitly
provide a declaration for 'std::abs'
src/MentalMuxes.cpp:120:20: warning: using integer absolute value function
'abs' when argument is of floating point type [-Wabsolute-value]
level_led_c4 = abs((signal_in_c4 / 3));
^
src/MentalMuxes.cpp:120:20: note: use function 'std::abs' instead
level_led_c4 = abs((signal_in_c4 / 3));
^~~
std::abs
src/MentalMuxes.cpp:120:20: note: include the header or explicitly
provide a declaration for 'std::abs'
9 warnings generated.
Hi,
The final .04 build is up in the windows releases.
I'll also upload the complete project as it was at that build for anyone who still needs to build it against 04 for MAC and Linux users who can't build themselves against the dev code or need 3rd party plugins that aren't fixed for the dev version yet.
Strums_Mental_VCV_Modules]$ make
g++ -fPIC -I../../include -I../../dep/include -MMD -g -O3 -march=nocona -ffast-math -fno-finite-math-only -Wall -Wextra -Wno-unused-parameter -DARCH_LIN -Wsuggest-override -std=c++11 -c -o build/src/MentalKnobs.cpp.o src/MentalKnobs.cpp
src/MentalKnobs.cpp:50:7: warning: ‘virtual void MentalKnobs::step()’ can be marked override [-Wsuggest-override]
void step();
^~~~
src/MentalKnobs.cpp:112:8: warning: ‘virtual void NumberDisplayWidget::draw(NVGcontext*)’ can be marked override [-Wsuggest-override]
void draw(NVGcontext vg)
^~~~
src/MentalKnobs.cpp: In constructor ‘MentalKnobsWidget::MentalKnobsWidget()’:
src/MentalKnobs.cpp:153:26: error: ‘Davies1900hSmallBlackKnob’ was not declared in this scope
addParam(createParam(Vec(2, 20+group_offseti), module, MentalKnobs::KNOB_PARAM + i, -1.0, 1.0, 0.0));
^~~~~~~~~~~~~~~~~~~~~~~~~
src/MentalKnobs.cpp:153:26: note: suggested alternative: ‘_ZTIN4rack19RoundSmallBlackKnobE’
addParam(createParam(Vec(2, 20+group_offseti), module, MentalKnobs::KNOB_PARAM + i, -1.0, 1.0, 0.0));
^~~~~~~~~~~~~~~~~~~~~~~~~
_ZTIN4rack19RoundSmallBlackKnobE
src/MentalKnobs.cpp:153:131: error: no matching function for call to ‘createParam< >(rack::Vec, MentalKnobs&, int, double, double, double)’
c(2, 20+group_offseti), module, MentalKnobs::KNOB_PARAM + i, -1.0, 1.0, 0.0));
^
In file included from src/mental.hpp:1:0,
from src/MentalKnobs.cpp:10:
../../include/rack.hpp:46:14: note: candidate: template rack::ParamWidget rack::createParam(rack::Vec, rack::Module*, int, float, float, float)
ParamWidget createParam(Vec pos, Module module, int paramId, float minValue, float maxValue, float defaultValue) {
^~~~~~~~~~~
../../include/rack.hpp:46:14: note: template argument deduction/substitution failed:
src/MentalKnobs.cpp:153:131: error: template argument 1 is invalid
c(2, 20+group_offseti), module, MentalKnobs::KNOB_PARAM + i, -1.0, 1.0, 0.0));
^
src/MentalKnobs.cpp:154:132: error: no matching function for call to ‘createParam(rack::Vec, MentalKnobs&, int, double, double, double)’
32, 20+group_offseti), module, MentalKnobs::SCALE_PARAM + i,0.0, 10.0, 1.0));
^
In file included from src/mental.hpp:1:0,
from src/MentalKnobs.cpp:10:
../../include/rack.hpp:46:14: note: candidate: template rack::ParamWidget rack::createParam(rack::Vec, rack::Module*, int, float, float, float)
ParamWidget createParam(Vec pos, Module module, int paramId, float minValue, float maxValue, float defaultValue) {
^~~~~~~~~~~
../../include/rack.hpp:46:14: note: template argument deduction/substitution failed:
src/MentalKnobs.cpp:157:14: error: ‘createValueLight’ was not declared in this scope
addChild(createValueLight<SmallLight>(Vec(10, 55+group_offseti), &module->button_leds[0][i]));
^~~~~~~~~~~~~~~~
src/MentalKnobs.cpp:157:42: error: ‘GreenValueLight’ was not declared in this scope
addChild(createValueLight<SmallLight>(Vec(10, 55+group_offseti), &module->button_leds[0][i]));
^~~~~~~~~~~~~~~
src/MentalKnobs.cpp:157:42: error: template argument 1 is invalid
src/MentalKnobs.cpp:159:42: error: type/value mismatch at argument 1 in template parameter list for ‘template struct rack::SmallLight’
addChild(createValueLight<SmallLight>(Vec(10, 80+group_offseti), &module->button_leds[2][i]));
^~~~~~~~~~~~~~~
src/MentalKnobs.cpp:159:42: note: expected a type, got ‘GreenValueLight’
src/MentalKnobs.cpp:161:42: error: type/value mismatch at argument 1 in template parameter list for ‘template struct rack::SmallLight’
addChild(createValueLight<SmallLight>(Vec(40, 55+group_offseti), &module->button_leds[1][i]));
^~~~~~~~~~~~~~~
src/MentalKnobs.cpp:161:42: note: expected a type, got ‘GreenValueLight’
make: *** [../../compile.mk:54: build/src/MentalKnobs.cpp.o] Error 1
Is there anyone out that enjoys designing GUIs that wants to help redesign the look of the modules?
I find it tedious myself and would rather focus on functionality.
Hi and again, thanks for developing this mixer. I'm including a list of features I would like to see. Not in any priority and none are issues and mostly to think about and consider.
Layout
Functionality
How do I send you money? I want to contribute this effort since you are on to making an amazing module that I already have included in my template patch for all new patches.
Just saw the feature where I can copy the settings of one channel to another. Love it! I sometimes need to move the inputs to another channel and this will make it a breeze!
Hi,
Fixed the api changes last night and now it builds in the dev version
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.