I’m working on an emulation of 4ms Ensemble Oscillator, which has 16 free voltages quantized (by variable attenuation) to 16 pitches of a chord (or a scale, depending on how you want to think of it).
I’ve built 4 free voltages quantized to an 8 note chord/scale, and I’m already at about 78% CPU usage, and I’m using the longest in/out buffer possible. I’m hearing static and beating, when the tones should be steady, and I don’t know if I’ve made a mistake in the patch, or if I’m just hitting CPU limits. Is anyone with a more powerful system able to try it out and verify?
The most relevant controls are in the top row. Use the “Offset” knobs of 2 BogAudio Offset/Scale modules to set the base voltage, and voltage spread of the “free” voltages being quantized to the 8 note chord.
Set each note of the chord using the ‘Offset’ knobs of the Offset modules next to a VCV quantizer. Your chord must be set in ascending pitch order or the patch will fail. The patch builds its intervals to check for free voltage locations based on input order; it has no way of sorting a mixed chord into ascending order.
I’m not sure how much sense the rest of the patch will make, but you can locate the polyphonic voice in the upper right, along with the VCF and VCA if you want to perform basic voice modulations.
I have implemented a version of the Ensemble Osc’s Cross-Voice FM, which has the potential to sound lovely if your chord is only made up of octaves and, say, fifths relative to the root. Dial in a nice sus2m7 chord or something like that, and the FM will quickly get cacophonous.
I’m sorry, I forgot to mention, in addition to BogAudio modules, which I imagine many of you have, it uses alef’s bits Maths module to do some very important algebraic calculations. There is also an Instruo ochd attempting to modulate panning, but if you don’t have it installed, it won’t affect anything essential in the patch. Thanks.
I will try to take a look today. I have been interested in some of their modules, and thought briefly of trying to emulate some of them myself. But then I read how almost all of their modules will become freely available through the VCV library later this month. So I thought better of it.
Well, I tried out the patch, and it is definitely a CPU pig. I could not run it on my machine unless I cut the VCV sample rate down to 24kHz. I don’t think my machine is particularly powerful, but it is not a slouch either. It is very rare for me to run into a patch that I cannot run at 48kHz.
I wasn’t able to figure out how you intended to get sound out - I resorted to removing the CV from the VCA to get a constant drone.
When I finally got sound, it was pretty smooth.
I think you would have much better luck with something like docB Formula One (a few of them) to do your computations instead of the mess you have now. It will be much easier to follow, and I am pretty sure much more performant.
I am also wondering if the math you currently have is correct. The Bogaudio modules are clipping at +/- 12V, while the Alef’s Bits Math is clipping at +/- 10V. Even more concerning is A.B. Math is computing positive / zero as +10, and negative / zero as -10, and 0/0 as 0. I suppose the non zero results are the result of + or - infinity clipped at +/- 10V. Maybe that is OK, but it seems unlikely.
Using the Bogaudio AM/RM to compute the absolute value is an interesting solution (I’m assuming that is what you wanted - it definitely is what you are getting).
That is all the time I can spend on this. I am eagerly awaiting the official release of the 4ms collection to VCV at the end of August. Hopefully the Ensemble Oscillator will be included.
I couldn’t help myself - Here is a modified version that I am able to comfortably run at 48kHz on my machine (<60% max CPU).
Besides substituting 8 Formula One modules for a bunch of modules, I eliminated a number of redundant constructs. I’m sure it could be optimized further, but it at least it works now at 48kHz.
I have no idea if it works the way it should, but as far as I can tell, it works the way it did before. I couldn’t tell a difference with the old patch at 24kHz vs the new one at 24kHz. I did not bother clipping every computation at 12 or 10 volts the way the old modules worked, but I don’t think it is making a significant difference.