Voxglitch Grooveboox broken on M1 Mac

Totally agreed. I don’t know why I didn’t, but it’s usually my standard practice to initialize arrays.

2 Likes

OK, built for Mac using master branch. Code is very clean. Two same warnings are only thing compiler was complaining about (clang):

src/Common/common.hpp:37:13: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
      DEBUG(std::to_string(value).c_str());
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The build fixes the delay being broken for me. However the scolling samples I can still not get to work, no combo of modifier keys works, either nothging happens or Rack stats to scroll around.

grmbl, no way to attach it here, so plopped it onto drive:

https://drive.google.com/drive/folders/1Z8DTrerXwPRfpWVvZHGEU1QqWVEt1D3b?usp=sharing

Oh yes - floating point math and uninitialized memory most definitely do not play well together.

Back in the late 1980’s (MSDOS days), early in my C programming career, I had a small math loop that worked with pointers to doubles. There was one double computation that was not needed in the first loop iteration, and one of the arguments was a pointer to a double that would not be set properly until later in the loop. But rather than conditionally execute the line, I simply let the unneeded computation be carried out - “what harm could it do?” I thought - the result was simply thrown away anyway. I blithely overlooked the fact that the value was uninitialized.

For over 1 year our customers could not use a project name (file name) with length 7, else the program crashed, and we had no idea why (or where the problem was).

I finally realized that for no obvious reason, the length 7 file name just so happened to configure the memory such that the uninitialized pointer value was a NaN - and the program crashed. Simply solved by initializing the value prior to entering the loop.

That was an important lesson for me.

3 Likes

@fractalgee Thank you SO much for all of the sleuth work! :1st_place_medal: :beers: I really appreciate it!

I’m probably going to have to completely rewrite how sample selection is done to give me more options. Stealing keystrokes from VCV Rack has always been problematic, and I need to find another way to achieve the same type of fluid sample selection.

I’m probably going to write a custom file browser that appears over the track area. In the meantime, I’ll post to the development forums and see if anyone has solved the SHIFT+CTRL issue for macs.

Also, quick note for you and @lawnland , I’ve submitted this update to the library. It could take a while (up to 2 weeks, and it’s out of my control) to finally reach you.

1 Like

meh, until then this build will work fine, so I have no hurry for VCV to build it. Whoever has the issue can grab my build above and be done with it until official release, red dot notwithstanding. I turned auto-check for library off in settings.json for Rack so I am not bothered until I check and a quit and restart will make it disappear again, so livable

1 Like

OH man. That’s a crazy one. Although I learned C++ in college, my first job was using Perl - which I had to learn two days before the interview! Luckily, I was young and my brain soaked up things quickly back then. I never programmed c++ professionally.

I have found issues that were in the software for over 10 years that I was supporting a long time back. Also one dev released a build on AIX that wiped out the Volume Control Block. If machine power-cycles for any reason, that disk disappeared as AIX was not able to identify it anymore. I have rarely seen that much panic in an engineer’s face than when I reported this one to him :wink: So many things can happen that slip through any test suite or check of things…

2 Likes