Page 3 of 3
Re: VCV Rack goes Pro ...
Posted: Tue Dec 07, 2021 3:13 pm
by ColinP
jkeller51 wrote: ↑Tue Dec 07, 2021 2:59 pm
A switch would make everybody happy... except the developers
ColinP wrote:As a developer my main problem with VCV Rack it is that it uses C++ rather than Java.
Ohhh now you're selling me on VCV rack.
If things like memory leaks and dangling pointers turn you on then products written in C++ are right up your street.
Re: VCV Rack goes Pro ...
Posted: Tue Dec 07, 2021 4:11 pm
by jkeller51
ColinP wrote: ↑Tue Dec 07, 2021 3:13 pm
If things like memory leaks and dangling pointers turn you on then products written in C++ are right up your street.
I hate to be the bearer of bad news...
https://cherryaudio.kayako.com/article/ ... en-in-java
I'm being a bit cheeky here, but in all seriousness one of the biggest barriers to me writing my own modules for VM is Java. I would probably try coming up with a Java wrapper to talk to the VM API and then write the DSP in C++, but I'm not sure if that's possible/allowed.
While I'm being serious, and more on topic, I don't see what VCV Rack offers at this point that is better than VM, to the average user. It does have a nice visual design, but I would be surprised if they didn't have the same problems with varying sound quality of different modules that VM does. They even seem to be moving away from the open-source model ($99 for the privilege of using it as a VST2 plugin). It seems like VCV Rack 2 just added a bunch of features that VM 2 already had for a long time.
Re: VCV Rack goes Pro ...
Posted: Tue Dec 07, 2021 5:28 pm
by ColinP
I realise that VM's core is written in C++ (probably because it uses third party elements that are written in C++). This is possibly why mysterious problems sometimes arise.
I see the Java / C++ division as similar to the C / Assembler division I worked with for a long time. Sometimes realtime coding does benefit from dropping into a low-level language but typically it really is only that tiny proportion of code that profiling reveals. Or when it's the only route available to bridge a systems level gap. I used to drop from Eiffel to C in order to access some elements of UNIX for example.
But my point was that the modules that run on the VM core are written in Java.
So my VM development is done in Java. This enables me to focus on the really hard stuff - design and not have to worry too much about programming as Java is a hell of a lot easier to work with than C++ when the scale gets above about a thousand lines. My programming experience goes back into the mists of time so coding is almost automatic, but Java helps it become even more automatic as I don't need to worry about all manner of vulnerabilities exposed by old-fashioned languages like C++.
If you are familiar with C++ you should be able to easily move to Java. Java is essentially C++ with all the archaic baggage removed and all the rough edges cleaned up and polished. The syntax is so similar that most DSP code will port one-to-one. Also porting from C++ to Java is much easier than going in the opposite direction.
The fiddly stuff in programming modules isn't really in the clever maths, it's in all the complexity that surrounds it, especially when dealing with multi-threading and complex GUIs.
I'd agree that VCV Rack is in many ways only just beginning to catch up with VM although I do hope that CA push VM a lot further. I get the impression that they don't fully appreciate its potential and are enthralled with nostalgia for antique synths.
VCV Rack has benefited from the fact that there's a lot of open-source C++ code and from the IMHO misconception that Java is less suitable a platform than C++ for realtime work. I believe this will change as a new generation of developers emerge.
Re: VCV Rack goes Pro ...
Posted: Wed Dec 08, 2021 1:46 am
by MRBarton
As you can see by that Cherry article, Java is not slower than C++ in this implementation, and at times faster. As far as ease of module development goes, I am a C and assembler programmer having never written in Java or C++ before (I looked at C++ a few times and thought it a mess). Just by coincidence, I learned a little basic Java while my son was in a Java class in college. I decided to learn along with him so I could help him with his homework. I was a complete newb to object-oriented programming. A very short time later, I ran into the Cherry Audio guys at the Synthplex convention in L.A. and I was off and running. The development environment is so hand-holding, all the hard work is done for you (unlike in VCV) and is a breeze to use. Every Java program I have ever written is for sale in the store. What fun.
Re: VCV Rack goes Pro ...
Posted: Wed Dec 08, 2021 4:24 am
by xuoham
Great to read a bit more about you and how you got into developing for Cherry Audio.
Synthplex convention !
For most of us, non programming musicians, it's still a big mystery, the details of what you guys are doing,
how to emulate non linearity, drift, grit, growl, punch, etc ... what equations, algorithms, ...
Re: VCV Rack goes Pro ...
Posted: Wed Dec 08, 2021 5:56 am
by MRBarton
xuoham wrote: ↑Wed Dec 08, 2021 4:24 am
For most of us, non programming musicians, it's still a big mystery, the details of what you guys are doing,
how to emulate non linearity, drift, grit, growl, punch, etc ... what equations, algorithms, ...
Believe me, I envy all you non-programming musicians. I'm a classically trained musician since age 4 1/2, won some national piano competitions when I was a kid, been in multiple rock bands, put out a couple of albums, but these days the only way I express myself musically is through authoring modules. I'm not complaining because I love doing it, but I wish there were 100 hours in every day. Hmm..maybe if I move to the South Pole?
Re: VCV Rack goes Pro ...
Posted: Wed Dec 08, 2021 11:20 am
by rsover
MRBarton wrote: ↑Wed Dec 08, 2021 5:56 am
Believe me, I envy all you non-programming musicians. I'm a classically trained musician since age 4 1/2, won some national piano competitions when I was a kid, been in multiple rock bands, put out a couple of albums, but these days the only way I express myself musically is through authoring modules. I'm not complaining because I love doing it, but I wish there were 100 hours in every day. Hmm..maybe if I move to the South Pole?
I am a full time software engineer and wanted to build some modules, but as you said, the day does not have 100 hours... So I am just having fun with VM and sometimes with VCV.
Both are great platforms with a great ecosystem.
Love the classic/vintage stuff, being able to go back in time and use what great artists from the past used. Love the modern modules as well that yield new sounds and techniques.
I would only wish CA to implement a demo reset timer (every 6-9 months or something) as some demos are only a few days or don't know how to use modules.