Rungler ideas
  • Has anyone played with modules that use the rungler circuit? The Benjolin has a rungler circuit, but I actually got into the idea using (the excellent) Euroreakt collection for Reaktor.

    I'd like to build/port one for Audulus but I'm not sure where to start. Thoughts?

    More info:

    Sent from my iPhone using Tapatalk Pro
  • looks interesting :)
  • Hey! This is Michael, creator of Euro Reakt. I only recently got into Audulus. If Audulus has a Turing Machine or Noisering emulation, that would be the best place to start.

    The Turing Machine and Noisering both use an 8-bit analog shift register. The first bit of the shift register is filled with a noise sample whenever a clock is received. The last bit can be fed back to the first to create a looping melody. The 8 bits of the ASR run through a DAC-type algorithm (kind of a misnomer, since we're still digital).

    With the Rungler algorithm, only 3 of the bits are used. With the Rungler, you typically have one oscillator as the clock source, while the other oscillator fills the current data bit. Then, the Rungler's output typically modulates one (or both) oscillators... in the Benjolin topology, the Rungler also modulates a filter.

    There are at least two Runglers in Euro Reakt: the Rungler Oscillator and the Rungler (under sequencing I believe). The Rungler would be the best place to pull apart the algorithm, as it's pretty much just the ASR and 3-bit DAC.
  • here is a turing machine posted by another forum member... just sharing it ;)
  • @trickyflemming Does this shift register look right to you? I made it a while back after watching a video of Mark Verbos describing the shift register in the Random Sampling module. But I admit I don't know if this is specifically how it's supposed to be setup to work as a Rungler.
    RHS Shift Register.audulus
    Screen Shot 2017-07-10 at 1.34.56 PM.png
    543 x 458 - 41K
  • @RobertSyrett Yep! That looks correct. Each clock passes the current stage's voltage to the next stage while Stage 1 acquires a new sample. That solves the ASR part of the equation, although you need 8 stages for the Rungler, Turing Machine, and Noisering. Furthermore, that ASR needs to only store 0 or 1 and not any value in between (the quickest way to do this is to just put a comparator or rounding algorithm on the input).

    Now, you need the DAC part of the equation. The easiest way to do this is to multiply each bit (ASR Stage) by powers of two. So, the first bit is multiplied by 1, the second bit is multiplied by 2, the third bit is multiplied by 4, and so on. After all of the bits are multiplied and summed, you divide the final integer by its maximum value to reduce the output range to 0.0-1.0.

    For my version of the Rungler, you only take the last three most significant bits (if you're 1-indexing, those are bits 6, 7, and 8, which are respectively multiplied by 32, 64, and 128, summed, and divided by 255... but it doesn't actually matter which powers of two you use for those three since you divide at the end...). The 0-1.0 output of the division stage is your basic Rungler.

    The fun part is taking that and use two oscillators as clock/data inputs. Connect the Rungler back into various oscillator parameters, and listen as chaos ensues.
  • Side note on efficiency: You could multiply the ASR stage outputs by pre-divided factors, i.e. 32/255, 64/255, 128/255... that way you could skip a whole division step per sample.
  • Ok, I think I followed what you were describing. I made an 8-bit register and a 3-bit register and a DAC as well as a DAC which is only the 32, 64, and 128. Perhaps you could improve the demo patch to make it sound crazier?
    Screen Shot 2017-07-10 at 8.25.28 PM.png
    1802 x 693 - 146K
    Rungler Demo.audulus
  • You guys are the flyest!
    Glad to see you here, Michael

    I'm excited about Audulus, and with the release of Os's es-8, I think portable device integration is really gonna come into its own.

    I mean, I'm walking around with an A10 processor in my pocket, so of course I want to immediately turn it into a modular synthesizer. I don't know about y'all...

    Sent from my iPhone using Tapatalk Pro
  • Well I'm definitely starting to see the fun of this design. I added a resonant filter and some fluctuating random signals to mix and it makes for a fun krell-type of patch with more bits of repeating phrases.

    edit: Adding this video because it explains the inspiration for the Rungler.
    Not Quite a Benjolin.audulus
  • Sorry for the slow response! This patch is great. If you want more traditional Rungler behavior, you should disconnect the first five bits from the DAC and only keep the last three bits. You'll notice it becomes much more likely to get trapped in loops.
  • @trickyflemming Thanks! I cleaned it up a bit and made it into a proper module. I also added knobs for variability between all 8 bits to just the last three and a feedback knob (fully CW creates a loop) for creating chaotic sequences.
    Screen Shot 2017-07-14 at 6.05.08 PM.png
    1847 x 1038 - 246K
    RHS RUNGLER.audulus
  • Wow, this is great! The interface is excellent.
  • Badass loving your SVG designs robert

  • Just sharing this very interesting presentation on the topic of the rungler by it's creator.
  • Nice work with the graphics, can’t wait to take it for a spin.
  • I should probably make a uRungler, huh?
  • this is so much fun! first patch I've downloaded so far and I played with it for hours. I threw a SEM filter in there too which sounded great as well. I had the Epoch Benjolin module for a bit and this is equally as fun to play with. Do the outputs for the Rungler work in LFO range? That was something that made the Benjolin stand apart in my eyes.

  • @shred wow, that's high praise! Truly @trickyflemming really knows his runglers. The patch will work at LFO rates, especially is oscillator 2's frequency is turned down. If you need it slower, you may have to hack it apart and make it your own :)
  • @shred Get ready to be hooked on Audulus. It's like crack.
  • Here is the rungler separated from the two oscillators. So now you have to set up the feedback route yourself, but that's part of the fun :)
    Screen Shot 2017-10-11 at 8.17.14 PM.png
    723 x 747 - 136K
  • @Zenji, I couldn’t agree more. Good thing I’m retired, don’t think I have time for a real job.
  • @Zjenji I'm already there. ES-8 on the way too! :D
  • @shred - nice! If you need any help building any ES-8-ready modules, just let us know and we'll help you :)
  • I thought it would be fun to go back to the beginning and make a patch of the VCS3 Revox setup (described here: ) that initially got Rob Hordijk going with his Blippoo/Benjolin/Rungler circuits.

    I remembered that Robert Syrett had put together a VCS3 inspired oscillator (the Octopous) a while back and thought that I'd use that as a point of departure. Here modified (and microfied) a little.

    My first tryout is the basic setup with two oscillators and two delays. It's fascinating how much one can get out of such a simple setup, especially when bringing the waveshaping into play.

    I made a second version with a square wave on the second oscillator so as to get a little closer to the differences between the two VCS3 oscillators. (A next step could be to try and recreate them more accurately.)

    But then I noticed Robert Syrett's recent uWaveShaper and thought I'd tryout a quick version with oscillator node oscillators and the uWaveShaper.
    RH Putney Revox RM.audulus
    RH Putney Revox RM V.2.audulus
    RH Putney Revox Modernised RM.audulus
  • You know I had kinda forgotten about the octopus osc, and it's actually the same design as the new gristleizer generator lfo/vco. How weird is that? Anyways, I like those patches. They are all have the possibility to make bizarre complex oscillator type sounds.
  • Here’s a next step in my learning my way though the Blippoo schematic. This is basically a set of oscillators with two uRunglers (thanks Robert!) and some cross-modulation controls. The S&H and comparator still need to be added, but I’ve been finding it fun to see what’s possible even with only a few elements each step of the way.
    800 x 566 - 73K
    RH Blippoo Tryout RM.audulus
  • That's a good start! I especially like it with the modulating oscillator set to square wave. It really brings out the blips.
  • Here’s the next stage of my Blippoo patch with a pulse-width signal generated from a comparator between the two oscillators and, perhaps more importantly, a form of Twinpeak filter.

    It turns out the twinpeak design is a lot of fun to play with, and I can imagine it being well worthwhile putting together a standalone version. For the moment I’ve simply kept everything loosely connected since I’m still in a process of learning and discovering how the different parts affect the whole.

    The next step is to implement the sample and hold.
    2224 x 1668 - 1M
    RH Blippoo RM.audulus
  • @RoberSyrett, I was looking at your uRungler today and I was wondering if there would be any downside to replacing your shift register with one similar to the one in the uTuring module. I modified my original design because it wouldn't clock at audio rates and came up with one that will and is also more efficient. Here's an 8-bit version.
    Fast 8-bit analog shift register.audulus
  • @stschoen I would love if you gave it a shot. When I tried I found it would lock up for some reason (like all the bits would be on) and I eventually erred on the side of "it ain't broke, don't fix it."
  • @Rudiger I like how that patch sounds like a car zipping down the road and then suddenly switches into some zippery water burbling type sound. I really like the technique of making a bandpass out of two low pass filters with a phase inversion.
  • OK guys, here's my take on the Rungler circuit. @RobertSyrett, I experimented with your version and noticed that, unlike the original, your shift register is analog rather than purely digital. My shift register is also analog and I think that and our usual feedback stuff is why the inconsistent results. In any case I thought I would have a go at modeling the original circuit. Since we don't have any normalized inputs at this point, I didn't provide for any external clocking or modulation. The density knob is my attempt to model something like the mode switch on the original. Everything will run at audio rates.

    10-19 4:09 PM replaced file step output not connected
    Screen Shot 2017-10-19 at 1.51.35 PM.png
    3658 x 2532 - 512K
    STS rungler.audulus
  • Wow, the full modular system version of the Rungler! Looking forward to trying it out.

    By the way, re. the Fluct controls did you see my comment a while back in connection with Robert Syrett’s Bermuda oscillator?

    And also my first shot at recreating the fluctuation waveform?
  • I've modified my design slightly. Originally I had the smoothed pulse modulation fed back to the B oscillator frequency. The Rungler block diagram isn't very clear on just what is being modulated in the B oscillator. I've changed it so that the B Mod now affects the pulse width of the B oscillator square wave that is fed into the shift register. Not sure if this is correct, but you can get some interesting sounds.
    STS rungler V2.audulus
  • Great! I’m looking forward to diving into this and also trying out your new Rungler core in the Blippoo patch. I had noticed that it sometimes seemed to get stuck and I guess that that was the audio rate problem again.
  • Here’s what I manged today with adding the S&H to the Blippoo patch (I haven’t gotten round to implementing the new version of the shift register yet) .

    The addition of the S&H is interesting since the Rungler modulations can already have something of a S&H character. I take it that including it perhaps had something to do with Rob Hordijk’s observation that frequncy modulation has a stronger effect when the modulating signal is lower in frequency than the carrier. In the Blippoo context the S&H definitely seems to add to the chaotic character of the patch rather than simply adding an extra FM modulation band (when the modulating oscillator is higher in frequency).
    RH Blippoo SH RM.audulus
  • I'm not certain, but I think I had it right the first time. After doing some more digging, I think Osc B Modulation is frequency not PW.
  • @Rudiger, That's pretty cool.
  • Last one I promise. I replaced the feedback delay with a z-1 node some improvements especially when both oscillators are at audio rates
    STS rungler V3.audulus
  • Nice! I think the STS Rungler is much easier to create the patterns that you hear in the Rob Hordijk's demo. I like the design very much. I think both versions 1 and 2 are fun, but I like v2 a little more. I also found it fun to mess around with the LPF node controlling the slew on the smooth output.
  • I'm still not sure about the modulation input on OSC 2. The block diagram shows it as a separate input from the rate & rungler feedback, and it shows as normally connected to the smoothed step output. I believe that this is a filtered version of the step output but I have not be able to confirm this. If so, then it would closely resemble the rungler signal and it would seem to be redundant. Can anyone shed some light. Firstly is the smoothed output a filtered version of the step, and if so is the B oscillator modulation modulating frequency?
  • @RobertSyrett, you can replace the z-1 node in the V2 unit with a feedback delay without too much change if you need to reduce the CPU load, but in some cases it changes the output quite a bit. I should probably bring the filter control out to the front panel.
  • A rungler + 2 oscillators + a filter = A BENJOLIN
  • Brought the filter control out and changed the filter control ramp. I left the B modulation changing the frequency. With the filter you can get some neat slides on B.
    STS Rungler V4.audulus
  • @stschoen. Thanks so much for this. I’ve made a small change which I think brings the the fluctuation closer to Hordijk’s design: I’ve added (as I did with Robert Syrett’s Bermuda) a tanh expression to round off the triangle wave. Along with the inverted amplitude that seems to approximate Rob Hordijk’s fluctuation waveform quite closely (16m10s):

    The soft sync effects described at around 8mins in the Mallorca Rungler video seem to work (8mins into the video):

    Also from around 10m27s in the video he covers the waveforms of oscillator A – expalining how he creates the ‘sine’ wave – or rather his ‘parabol’ waveform:

    At the end of that same video he explains that Rate A still affects the smoothed signal, even when the rungler is externally clocked. Perhaps that could be a clue as to what is going on with the smoothing? (12m16s)
    STS Rungler V4 RM.audulus
  • @Rudiger, thanks for the info. Glad you've found the module useful. I had watched the second video a couple of times, but hadn't seen the first. The oscillator and fluctuation discussion was quite interesting. I had looked at his oscillator circuit for the Benjolin and wondered about the use of integrators. I don't see an easy way to exactly replicate this in Audulus, however it should be possible to adjust the amplitude modulation to frequency modulation ratio to match the original's behavior. I haven't been able to find a circuit diagram for the Rungler unit he is using in these videos, only the later version in the Benjolin and Blippoo. He does say that the smoothed output is a smoothed version of the step, but as you point out, he demonstrates that the Rate A knob affects the smoothed output even when the unit is externally clocked. Perhaps he has a second shift register for the smoothed output?
  • @stschoen I think that with the tanh rounding and inverse amplitude one gets close to Hordijk’s waveform, at least as far as I can tell from scope waveforms in the video.

    Here’s a short video of the fluctuation waveforms from your Audulus Rungler – the bottom one is with my addition of the tanh rounding. (The amount of AM in relation to the FM could still be adjusted slightly – but it seems more or less right.)

  • The circuit Hordijk uses generates a ramp with a constant slope. He creates the fluctuations by changing the threshold at which the ramp changes direction. Lowering the threshold raises the frequency and lowers the amplitude. This implies that the amplitude and frequency are inversely proportional, i.e. if the frequency increases 10%, the amplitude decreases 10%. Also he's generating the square wave based on whether the ramp is increasing or decreasing which puts his 90 degrees out of phase with my implementation. Both are easy mods. I'll make the changes as soon as I get a chance. I think I came up with a method to generate the "parabola" waveform, but it involves a unit delay feedback loop on a S&H, and I doubt the small difference in sound would be worth the extra CPU load. The tanh() function is a good way to "round " the corners of the triangle which should reduce the aliasing if it's not overdone. I thought about replacing the phasor based oscillator with the standard antialiased one, but by the time you modulate with the Rungler wave, etc you'll still have some aliasing artifacts, so I decided not to bother.
  • @Rudiger, I made the edits. The frequency/amplitude ratio was already correct (not by design). I aligned the triangle, square and sine waves as I believe they are aligned in the Rungler. Since you are working on the Blippoo, I thought I would have a shot at the Benjolin. I've built a digital SVF, although at this point I can't say I'm too impressed. Still, we'll have to see what turns out. At least for this one I have a set of schematics.
    STS Rungler V4.1.audulus