Benjolin patch (new version 4) for VCV - Show me what you can do with it!

It took me a while to figure out the huge difference between our Benjolins - your resonance is restricted to between 85-99% (actually maxes out at 98%?) Whereas mine goes from 0-97%. Also your drive is significantly lower, and your default cutoff significantly higher. It took me a long time to figure out how to get comparable sounds But I finally got there.

I find I am able to discover interesting sounds more readily with mine, but I don’t know if that is because I am more familiar with it, or if the filter settings really make that much difference.

I see you have a non-linear oscillator frequency response curve via shape master. I simply scale my oscillator frequency CV by 92%, and set the frequency knob to max out at ~8060 with 10V CV (before scaling). My CV range is +/- 10V. That seems to give an oscillator range that adheres closely to the After Later Audio spec, and is definitely not 1V/Oct.

I have reworked my Benjolin to use the linear feedback mechanism - I love it!

I have also created a version where I can switch between which oscillators are used.

  1. VCV LFO
  2. Befaco Pony in LFO mode (all x8 oversample)
  3. Befaco Pony in VCO mode (triangle x2, pulse x8 oversample)

I use the Count Modula Startup Delay to automatically send a sync pulse to the VCOs one second after the patch loads. I also added a manual sync button, but as you say, the Ponies do a great job remaining in sync, so I don’t think the manual button is really needed.

I think the Pony VCO mode includes a BLEP treatment (or whatever, I’m not fluent in DSP), whereas the LFO does not. But both are oversampled,

I was able to configure them so their frequencies nearly match perfectly, so comparisons can be made, and I am shocked how little difference there is in the final Benjolin output.

If I listen to the raw pulse output at high frequencies, then of course I hear tremendous aliasing out of VCV, much better (less) out of Pony LFO, and hardly any aliasing out of Pony VCO unless I go extremely high. (I’m running Rack at 48 kHz)

But typically with the Benjolin you are listening to some amount of the PWM and/or XOR signals, and they are not anti-aliased. So the differences between the oscillators largely disappear, even at high frequencies. Both Pony configurations generally are smoother in the high register, and the VCV is a bit grittier (which I happen to like). If/when I create my own Benjolin module, I will look into having an option to oversample pretty much everything, including the shift register, comparators, and logic gates. It will be interesting to see what effect that has.

Here is the patch to compare the oscillators. It is configured the same as my prior resonance CV swell video, except I raised the frequency to highlight the oscillator differences better. I’ve included the delay and reverb (not too much), but it is easy to hit the bypass button on the delay to kill both if you want to hear the raw Benjolin.

Benjolin V4 Resonance CV Demo Osc Compare.vcv (9.2 KB)

And here is the same patch with some different settings that produce some absolutely gorgeous drones.

Benjolin V4 Beautiful Drones.vcv (9.2 KB)

I was thinking my next “official” Benjolin patch release would use the Pony, but after these results, I think I may just stick with the VCV LFO - no worries about triangle/pulse sync, and less CPU.

It would be wonderful if there were a anti-aliasing comparator in VCV! Many times I reach the (digital) limit of VCV, having to run my patches in higher sample rates with big CPU. I will check your patches out! And I think you are right concerning the small difference when not running in extreme modes.

I totally forgot to “tune” the filter! Thanks for the reminder.

As for the non-linear frequency response: I started with listening to the oscillators of the Blippoo Box and their 0V frequency is around 20-32Hz. The range of the Blippoo oscillators are not specified, only that they go up to 12 kHz. With a range of -9V to +9V you get the 18 octaves Rob mentions in his articles/interviews. But this was just too much to handle for the comparators etc in VCV, so I compressed the upper range, but retaining the division of LFO/VCO range on the knob: Pure cosmetics :sweat_smile: I just copied this oscillator to the Benjolin patch.

You are right there is hardly any difference between the VCV LFO and the Ponies in the low range. But as I do a lot of sound design and use all kinds of chaos/noise etc, I am also very interested in the high register. Hence my choice for the Ponies: they really make a difference (especially at 96kHz) there. I am lucky with having a powerful MacBook M1 which can handle the CPU very well…

Thank you again for checking out my patch!

The next release of my Venom plugin adds anti-aliasing to my WINCOMP module for all the outputs, including gates! I think the update is ready to go - I just need to package everything up and submit to the library.

1 Like

adds anti-aliasing to my WINCOMP module for all the outputs, including gates

Very much looking forward to this!!

The last thing in comparison of our two patches:

I don 't know why I restricted my filter resonance so much actually. It makes perfect sense to have it at 0% resonance as well, so I will adjust this. You use attenuverters for modulation control, which is hard to hear at first ear, but makes a big difference with my attenuators. It is a deviation from the original, but it is a nice option to use maybe. One question out of interest: Why did you use bit 1,3 and 6 for the R2R DAC? and not 6,7,8? I don’t think it makes a difference, but maybe I missed something.

Anyway thanks again for your comparison! Enjoyed the drones a lot!!

Absolutely - The original sound is still available if you restrict yourself to positive values, but I really like what I can come up with with the inversion. One technique I like is to apply say positive rungler to OSC 1, and negative rungler to a highly resonant VCF Cutoff, with a moderately slow OSC 2 clock rate. With a mix of OSC 1 triangle and PWM, I can get some nice opposing melodies with the innate pitch of say OSC 1, and resonant pings from the PWM.

To get more variability in the rungler sequence. For any given current rungler value with the original design, there can only be two possible next values - bit 8 drops off, fixed bits 6 and 7 shift to 7 and 8, and the only variability is bit 5 shifting to 6. With my arrangement, none of the current “sounding” bits are used in the next value, so it is always possible for any of the 8 values to occur. Of course the original bit values will reappear later, so there are still limits to the sequence variability. I vary the gap between the taps so that bits reappear at different times, thus maximizing the sequence variability.

1 Like

Oh My! I just tried using my oversampled WinComp for the PWM comparator, and what a HUGE difference in the upper register! Much bigger than the difference between the VCV LFO vs Pony VCO.

2 Likes

So here is my final version 4 of the Benjolin, after incorporating Koen’s suggestion of a linear feedback shift register, as well as the oversampling from my new version 2.1.4 of the Venom WinComp module to improve the quality of the PWM output at high frequencies.

The zip file on PatchStorage includes two different versions of the patch:

  1. Benjolin V4 Pony - Uses 4 Befaco Pony oscillators, which have anti-aliasing to give improved sound at high frequencies. Since each logical oscillator takes two Pony oscillators, the oscillators must be synced to establish a consistent phase relationship between the square and triangle. A Count Modula Startup Delay module performs the sync once every time the patch is loaded (1 second after the patch is loaded). I have not witnessed any phase drift after that initial sync, but I can’t promise they will always remain in sync.

  2. Benjolin V4 VCV - Uses the 2 Fundamental VCV LFO oscillators as the prior version. These do not have any anti-aliasing, but the square and triangle are guaranteed to remain in sync.

And here is a video demonstrating just a fraction of the myriad sounds that can be produced by the Benjolin. All sounds and modulation are coming from the Benjolin, except for a bit of delay and reverb at the end of the chain. I’m using Bogaudio Switch1616 to control which outputs are patched to which inputs in the patch bay, and Stoermelder Transit to quickly transition between different preset sounds.

8 Likes

Thanks Dave. The matrix demo’s use of the Switch1616 reminds me of the EMS Synthi’s pin matrix (I have the Arturia emulation). Great way to simplify/visualize the patching.

All this talk of Benjolins made me want to share my Patchmaster-ed Benjolin2. Here’s a nice and clean “front” plate:

Here’s a sound demo of some typical Benjolin-y stuff:

And here’s the mess of a patch that Patchmaster does such a good job hiding:

I’m using Regen Const voltage generators as “dummy mappers” feeding into a bunch of Blinds for VCA/attenuation/mixing of parameters, which I did to set up parameter ranges before making the Patchmaster panel. I used direct mapping for the FX parameters.

I used Bog oscillators for their wide ranges (which it seems like everyone else did too), the Hetrick rungler, a stock comparator, and the Unstabile filter for a grittier sound. There’s a bit of reverb and delay on the master, as well as a limiter, softclipper, and a high-pass for removing DC offsets.

2 Likes

I’m glad you posted the image of your PM interface - at first I was puzzled how you spaced out your controls vertically. It took a while for me to find the “Show blank tiles” context menu option - I was not aware of that feature before.

As for your Benjolin 2 implementation, for sure it can produce some interesting sounds and patterns. But I think it suffers many of the same shortcomings as the OhWell version

Your version is not nearly as chaotic as even the original Benjolin, let alone the Benjolin version 2. And I think it has a more limited pallet of available sounds.

I do not use the Bogaudio oscillators precisely because they do not continuously cover the intended frequency range - they require to switch between LFO and VCO mode.

But most importantly, the Hetrick Rungler does not perform an XOR between the 8th bit and the external input when feeding back into bit 1. Every version of the Rungler all the way back to the first build had the XOR operation, which is critical to the Benjolin’s chaos. The Hetrick Rungler only allows a static loop, or else it feeds in an external source (the comparator output) directly. The “chaos” is limited to the patterns established by the relationship of Osc 1 with Osc 2, which can very quickly fall into a static pattern.

The Count Modula Gated Comparator now supports the XOR operation feedback option, so it can function as a true Rungler.

You could use the Hetrick Rungler and do your own XOR with the 8th bit, but it is so easy to build your own Rungler with an 8 bit shift register, a DAC, and an XOR gate. You can even easily build your own DAC as I have done in my Benjolin patch.

The Benjolin version 2 adds two important concepts to the Rungler:

  • A comparator tests if OSC 1 triangle is less than a change threshold value ranging from 0 to 10 (for unipolar Osc, or -5 to 5 for bipolar), and uses that as the external data source that is XORed with bit 8. At the extremes this provides constant 8 or 16 step patterns. In the middle it provides a wide range of options, from just a bit of chaos, to total chaos.
  • Even with the XOR and improved external input, the 8 step Rungler shift register can still develop a never ending short pattern. A 127 step option is available that uses linear feedback (Instead of using bit 8 it uses the XOR of bits 6 and 7 - thanks @koen.kaptijn for the info about this). This makes it possible to always break out of patterns when desired.

Lastly there is the version 2 patch bay. Even if you restrict yourself to only using Benjolin self cross modulation, the patch bay greatly expands the sonic possibilities.

I hope you have tried (or will try) my implementation of the version 2 Benjolin. I’ve really tried hard to implement all the features as faithfully as possible. Nothing is missing, and there are only a few extensions:

  • Use of attenuverters instead of attenuators
  • A couple more patch bay options, but nothing crazy. I still wanted to maintain the spirit of the Benjolin
    • Resonance CV input
    • Notch filter output
  • Slightly reconfigured Rungler DAC to give a bit more variety in the available sequences.

In all my previous Benjolin demo videos, I tended to concentrate on the Benjolin’s autogenerative chaos. The following two videos demonstrate the pattern possibilities available to the Benjolin v2 Rungler.

3 Likes

I had no idea about the XOR in the feedback loop, that makes sense and I’ll try to implement it in my V2 patch.

Thanks for the heads up. This should be fixed on this commit: Update changelog. Fix Rungler feedback · mhetrick/hetrickcv@831802a · GitHub

EDIT: Builds are ready for testing here: Release Nightly · mhetrick/hetrickcv · GitHub

7 Likes

I just wanted to follow this up real quick, as I went back to my original research for the design (or at least what I could find since this goes way back to my Euro Reakt research :laughing:)

https://electro-music.com/forum/topic-38081.html If you scroll to Rob’s post “What the #%$ is a rungler?”, the XOR feedback is explained as part of the first design of the Benjolin, but not the original design of the rungler itself.

The first rungler experiments I did were back in 1980 I think, and there are quite a lot of variations possible on the rungler idea. In the Benjolin design the data input for the shiftregister is not just the pulse from the second oscillator but the XOR of this pulse and the last bit of the shift register (inspired on the pseudorandom generator). The XOR is the transistor/opamp combination that actually forms a controllable unity gain/minus unity gain amplifier, a very simple ringmodulator, so to speak.

So, two quick planned changes to my Rungler module:

  1. In the patch I posted this week, I only added the XOR function to the locked feedback loop, but not the write loop. It sounds like I was also supposed to add this to the write loop, so I’ll correct that, but…
  2. I think what I really should do is add a dedicated XOR Feedback toggle. That way, users will still have access to the first design and behavior, while also being able to toggle the more accurate Benjolin behavior.
6 Likes

Thanks for that clarification / correction. Yeah, I read that thread, but did not pick up on some of the subtleties, and some of the info did not stick. I was thinking the Rungler was originally created for the Benjolin, which included the XOR. But now I see that the Rungler preceded the Benjolin. I wonder if he called it a Rungler back then?

1 Like

The Rungler is implemented in the Blippoo Box as well and this preceeds the Benjolin. In the Blippoo Box there is no XOR between the lastbit of the shift register and the data input. It is actually two rungler systems that are cross-patched:

Rungler 1 takes osc A as data and B as clock.

Rungler 2 takes osc B as data and A as clock.

This gives a whole different effect then on the Benjolin!

4 Likes

@trickyflemming I love your vcv modules and I am a big fan of the Benjolin (also have one in my Eurorack) and thus i am very exited about your latest extension(s) of the Rungler module … I am also a long time Reaktor user who bought your commercial Euro Reakt blocks and wonder if there is any chance that you backport these latest additions to the Rungler Oscillator (and standalone Rungler) Block in your Euro Reakt blocks?

1 Like

If you have a Eurorack hardware Benjolin, then I would be grateful if you could take my latest VCV Benjolin patch for a spin and compare it to the real thing. To my ears, it sounds authentic when I compare it to some Benjolin videos I’ve seen. But I’d love to hear about someone’s experience who can do a direct comparison.

At the moment my Eurorack Benjolin is with a friend. In the meantime I am jamming with your Benjolin patch and this little moster I’ve patched up in Reaktor :wink:

I’ll give it a try as soon as I have my hardware module back! Although as far as I know there are also slight differences in the several hardware versions available, especially when it comes to the output levels and the sound of the filter.

By the way, I noticed that Ciat Lonbarde just released a Benjolin! Sorry for railing off :sweat_smile:

1 Like

That’s why I’m here right now :slight_smile:

1 Like