Coder Social home page Coder Social logo

strums_mental_vcv_modules's People

Contributors

kant avatar phdsg avatar strum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

strums_mental_vcv_modules's Issues

can't compile for latest version

MentalButtons won't compile...
change lines 33-35:

  float button_leds[8] = {};  
  bool button_states[8] = {};
  float moment_leds[7] = {};

Back compatibility with pre-V1.0 patches?

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.

Feature Request Patch Matrix: Attenuated connections with right mouse button?

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?

Synthi Patch Matrix

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.

Strum Mental Patch Matrix Feature Request

I'm hoping to hear what you think of this idea,

Kind regards
Deev

make dist fails

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

Poly Mute doesn't toggle correctly

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.

Using Midi Mapping

Poly Mute

build fail with new module

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

Rendering issues in 1.0.x?

The LFO looks different in 1.0 than it did in 0.6. For example, the backgrounds of the faders are missing in 1.0.

v0.6.x:
image

v1.0.x:
image

Is this a plugin rendering issue or did the module design change?

Strategy on API changes

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.

Binary Decoder does not have an enabler input.

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) ?

std::div_t

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

Compiling 0.4.0 Errors (Bool casting)

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?

Mixer - Needs a bit of an explanation?

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?

v1: plugin.json issues

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

Cannot compile latest plugin or use the existing dylib binary

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?

0.5b Windows Not showing up

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"

Linux compilation error error: ‘gSampleRate’ was not declared in this scope

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

Keep as one plugin or break into separate plugins?

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.

Mac Binary not working?

Unzipped.. created a folder and put the plugin.dylib file in it. Nothing. Anyone get this working yet on Mac?

patchmatrix bigger or with extension...

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
patchmatrix13
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.
patchmatrix_extention20

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.

Migrate to Rack v1?

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

Plugin Manager

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.

https://github.com/VCVRack/Tutorial/blob/master/Makefile

Mental Modules 6.1? can't find them on VCVrack plugins page

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

Fade CV?

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

v2 needs font handling update

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

Poly Direct Outputs are split 1-8, 9-16 Should be 1-16?

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

Compile problems on Mac on 0.4.0 source tree

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

Compiled for Mac

Latest build for Mac:

plugin.dylib.zip

Not sure if the Cartesian sequencer is supposed to be yellow or not, or have any text legends:

strum_cartesian

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.

Notice to Users, Final .04 build is up in windows releases

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.

make errors in arch linux

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_offset
i), 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_offset
i), 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_offset
i), &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_offset
i), &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_offset
i), &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

Enhancement Requests for Mixer

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

  1. I noticed you are asking the question if the bus module should be separate or not. I like the separate module and think there are many out there that would use the mixer and never use buses. But, I would like to see the Aux module be full width instead of 2 rows and then I would put it above the mixer rather than to the side and the channels would line up in a complete row just like a real mixer would look.
  2. Have an 8-channel version. I like the 16!, but I think there maybe more who might use use an 8 channel version and you can chain the mixers it looks like.
  3. Would like the channel labeling to handle a few more characters. Maybe 2 lines of text. Don't know. Personally, I don't have problems with large modules in VCV since it's not a physical rack and you can scroll and zoom.

Functionality

  1. I would like to be able to map the gain inputs for each channel so that I can use the knob on my control surface to adjust the gain. I love that your mixer even has gain adjustments available! No other mixer I've used in VCV has this.
  2. Would love to see some built in processing like limiting and/or compression for each channel. You already have some of this with the HPF and HPF cutoffs which are typical on all mixers. Although, you are the first to do this in VCV. Thanks! I'm sure I could do this with some inserts, but it would make for a bulky patch. By the way, the layout is not clear how I would use the Poly Inserts. A true insert includes both send and return often on the same cable. I'm not sure how to use the Poly Inserts feature. I can't tell how to handle the send versus return on the this. Wait! Just saw this! Maybe some labeling that the top 3 inserts are the send and the bottom are the returns would help. However adding limiter/compression per channel would be really nice!
  3. I love that you have buses available for the the groups so I can send them to effects as a group and not individually. What would be also awesome would be a way to chain some of the effects. I'm not sure how to accomplish this. What I mean by this is if I send a channel to a delay module, I would like a way to send the return of the delay on to the reverb send so that the delayed effects also have reverb. I see a way of doing that by sending the return of the effects bus to another channel and sending that channel to the reverb effect. This is a common method on most analog mixers. Most digital mixers would allow me to chain the delay effect to the reverb effect. I can't think of way for you to handle this elegantly though. The only way to accomplish this is to restructure the whole mixer as a digital mixer rather than analog. So this is mostly food for thought. Keeping it in an analog style is easier for most users that are unfamiliar with mixers in general and probably the best fit for the VCV philosophy in general. I'm just rambling now.

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!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.