Search found 13 matches

by AllanH
Sat Aug 26, 2023 2:46 pm
Forum: Module Designer
Topic: Weird debugger behaviour on statics
Replies: 11
Views: 12564

Re: Weird debugger behaviour on statics

EDITED: My response was technical nonsense, so I thought it best to remove it to avoid confusing anyone else.

I believe this is the order of initialization in Java:
* static variables and static initializers
* instance variables and instance initializers
* constructors
by AllanH
Sun Aug 20, 2023 2:49 pm
Forum: Module Designer
Topic: In praise of Java
Replies: 14
Views: 13497

Re: In praise of Java

Let me a few additional notes, in case it’s of help Voltage Modular does not provide “sample accurate” timing in the sense you cannot expect ProcessSample() to be called consistently at 48k. Rather, it appears that VM buffers e.g. 256 samples and processes the buffer in one run. This is a general ch...
by AllanH
Sat Aug 19, 2023 1:54 pm
Forum: Module Designer
Topic: In praise of Java
Replies: 14
Views: 13497

Re: In praise of Java

I’ve used Java, C and C++ professionally for a long time and I still have the shortest path from idea to working code in Java. I was a bit surprised how efficient the VM environment is and it's absolutely fantastic for development and prototyping. On a related note, I also think Cherry Audio has don...
by AllanH
Sun Aug 06, 2023 2:10 pm
Forum: Module Designer
Topic: Shared variables and volatile
Replies: 22
Views: 16472

Re: Shared variables and volatile

In my experience, any variable that is accessed from two threads needs to be declared volatile even if it's a primitive data type. As I have the main audio thread and a GUI thread, anything I set/get on the UI thread I mark as volatile. I have tried removing the volatile to see if it made any differ...
by AllanH
Fri May 05, 2023 2:24 am
Forum: Voltage Modular
Topic: Internal Clock Freezing?
Replies: 5
Views: 1984

Re: Internal Clock Freezing?

On my system, the UI of VM modules pauses while downloading and installing updates. If I have a midi-keyboard connected I can still play but the UI is frozen for several seconds.
by AllanH
Sun Apr 30, 2023 6:01 pm
Forum: Module Designer
Topic: Timing accuracy in VM.
Replies: 12
Views: 4954

Re: Timing accuracy in VM.

I did a little profiling on this when I initially ported my code from JUCE to voltage modular. My computer runs natively at 48k with a 256 sample buffer on a Motu interface. I profiled every call to ProcessSample() and looked over 1 second. In other words, I measured the amount of time between each ...
by AllanH
Fri Apr 14, 2023 4:22 pm
Forum: Module Designer
Topic: Publish vs Debug build
Replies: 2
Views: 1337

Re: Publish vs Debug build

Thanks for the comments. I do have a logging framework that I manage with a few 'final boolean' variables to include or exclude at build time. I had hoped to automatically remove my verbose logging when building a release as the overhead shouldn't be in a published module. Thanks again.
by AllanH
Thu Apr 13, 2023 4:29 pm
Forum: Module Designer
Topic: Publish vs Debug build
Replies: 2
Views: 1337

Publish vs Debug build

Q: Is there a way to determine if I am compiling a debug build vs publishing? I would like to automatically disable verbose logging when I publish but leave it on when developing/debugging. In Visual studio for C++, the compiler defines _DEBUG and NDEBUG respectively to support such compile-time con...
by AllanH
Sun Mar 12, 2023 3:25 pm
Forum: Module Designer
Topic: Creating VSTs from VM Designer
Replies: 1
Views: 970

Creating VSTs from VM Designer

The VM Module Designer is a really great prototyping and development tool. I’ve found that I’m more productive than in JUCE and the ability to connect “things up” in real-time is great for development and debugging. VM is also very efficient (imo) and doesn’t seem to impose a lot of costs at executi...
by AllanH
Thu Feb 23, 2023 1:53 pm
Forum: Module Designer
Topic: Truncating Doubles
Replies: 11
Views: 4302

Re: Truncating Doubles

The core java math class also provides implementations that properly rounds, truncates, performs ceiling, and similar. For instance, one of the round methods are: static long round(double a) -- Returns the closest long to the argument, with ties rounding to positive infinity. https://docs.oracle.com...

Go to advanced search