A secondary cause though - at least for synths - is that designing a compelling instrument is a totally different workflow and user experience than designing a set of compelling modules. The current surge modules show this well; they feel like bad surge not good rack. (The new ones do not have this problem at all). The work to actually factor a synth into useful components is hard before you get to all the infrastructure (different and kinda idiosyncratic build systems, different but kinda awesome ui library, different parameter model which is just parameters so no value judgement there, etc)
For fx it’s even a tougher call. What possible value is there of using valhalla outside of the vcv host? What’s the roi if that small benefit is realized?
I have that same issue. I have some great module ideas. After all day spent on coding the thought of learning the DSP concepts I’d need along with designing UI elements overwhelms me. Are there any basic templates out there for speeding the process up?
If you make a basic UI, like the Fundamental modules, it’s is super easy and does not take a lot of time. Learning DSP does take time. If your DSP needs aren’t too specific you can just use the DSP from other modules.
@hemmer is correct. But clock multipliers still aren’t trivial. Hopefully you can make some unit tests to make sure your works. I have a clock multiplier in my now ancient “Chopper” tremolo plugin. I think that clock multiplier is flawed in that if the frequency changes a bit out won’t output exactly ‘n’ clocks for one input cycle. That seems to be the hard part of clock multiplier - making sure you always output exactly ‘n’.
Please make one that is BPM dependent from a clock(input), what I mean is most (all?) multipliers in VCV depend on the first 1, 2 or 3 clocks from a clock to calculate the BPM. They will never be able to ratchet the first step of a Sequencer.(when you start the clock).
With ZZC’s clock and its helpers Div, Div Expander and Divider, you’re not dependent on the BPM calculation at the start because it is based on phase instead of triggers. You can start, stop, change speed or even go backward and everything will stay in sync.
ShapeMaster Pro can be used to make 8 channels of whatever clock multiplications you want. Once synced you can ratchet right from the start (like Clocked it remembers the last BPM it ran at) and it’s running off a 48ppqn (or even faster) clock, so the time taken to initially calculate BPM from those first 2 or 3 pulses is extremely short.
I’ve been cheating and analyzing code for rgate & clokspid. I have a pretty good understanding of how it works. Unit testing is a great idea, hope you don’t mind me taking some inspiration from you on that (thanks for your in-depth docs, really helpful!)