I’ve been moving at a mile a minute, so I wouldn’t be surprised if there are some bugs. I still need to render some dummy data for the user library preview.
I’ll try to get this published in the next few days. The output range for each slider is currently from 0 to 10. I may make this more flexible in the future unless there’s a poly voltage range converter that could do the job?
btw, I’m not crazy about the results, but my Seq++ uses ctrl-c and ctr-v for copy paste. Just tried it in VCV 2.x and is seems to work fine. Ended up with this on the clipboard:
I’d expect Ctrl-C to copy all 24 scenes that I can paste into another DigitalProgrammer module in my rack. (And then changing the range, or snap value of that module for having some variation in my patch.)
I’m still working my way through your back catalogue, as you make some really interesting stuff. I’ve just fallen in love with Ghosts (great name for it by the way!) and I would really love to be able to play it as a voice… i was wondering if it would be possible to add a (preferably polyphonic) v/oct input? Just a thought - perhaps there’s already a way to do this which I haven’t thought of?
@Warth0g I’ve had that request a few times but just haven’t gotten around to it! I’ll try to shuffle in that feature, but it could be a little difficult. It’s difficult to wrap my head around how granular synthesis playback and pitch work together. Ha ha ha.
That’s not possible at the moment. The sliders’ natural range is 0.0 to 1.0. Right before being output, they’re re-scaled to 0 to 10 volts. In the future, I might add different “rescale” options, but the natural range internally will always be 0.0 to 1.0.
This makes it particularly tricky to allow for exact measurements to be specified.
Let’s pretend that I have an output range of -10 to 10v selected. I’d have to take the entered value (say “7”), then (taking the selected range into account), map it to 0 to 1. Then, right before output, I’d have to map it back into the -10 to 10v range. If any of the mappings resolve to non-terminating numbers (.3333333…), things might get wonky. Any ideas?
In your module constructor when you call configParam(), you can set a displayBase, displayMultiplier, and displayOffset. These parameters affect the value that’s shown when a user hovers or right-clicks on your parameter and they also are applied inversely to the values that a user enters into the context menu.
So, say your parameter’s range to 0.0 to 1.0 and set displayMultiplier = 20 and displayOffset = -10. If the parameter’s internal value is 0.5, the user will right-click and see 0. If the user then inputs 5 and hits enter, the parameter’s internal value will be set to 0.75.
A catch here for you is that configParam() can’t be called outside the module’s constructor, so you can’t just call it again when the user changes the parameter’s output range. To get around this, you can either save the pointer to the ParamQuantity returned by configParam() so that you can later modify its settings, or you could also subclass ParamQuantity in order to override its methods like getDisplayValue(), setDisplayValue(), etc.
That’s very interesting. I’ll have to dig into that. The other complexity is that my sliders are all custom widgets. They aren’t parameters. I’d have to learn how to override parameters (if that’s possible). I’m taking a little mental break from programming for a few days after a little coding marathon, but I’ll try and delve into this soon.
This module just produces control voltages. But it could be used to modulate the inputs of an Atelier Palette. I’ve gone ahead and made a demo for you.
I’m wondering that myself. It feels like I submitted it weeks ago. Ha ha ha. If it’s not available by tomorrow, I’ll ping VCV support. Maybe it got dequeued with all of my updates somehow.
It would be useful if there was a simple way to quantize the slider values. For example, a right-click menu option to set the quantize value (perhaps in number of steps). Then when entering values, it can be free-form or quantized (when holding a modifier key). It’d be a faster way to program various use-cases.
This could be used as a MSEG if there was a smoothed/slew output, perhaps with a selectable number of steps?
Could the 24-panel preview show what the programmed+additive values will output in real-time? This might be a lot of CPU but could be a useful way to visualize what’s happening