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
Search found 13 matches
- Sat Aug 26, 2023 2:46 pm
- Forum: Module Designer
- Topic: Weird debugger behaviour on statics
- Replies: 11
- Views: 12564
- 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...
- 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...
- 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...
- 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.
- 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 ...
- 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.
- 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...
- 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...
- 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...