Cracking the Code on Complex Guitar Pedals

I fixed the clock this morning. Give it a shot and let me know if you find any problems:
Master Clock V1.4.audulus (212.9 KB)

I had to do days of work just to get some time free againā€¦

I am stuck with the reset out gate issue. Substituting the counter module seems to cause the loops to be out.

Sorry.:grimacing:

So the master clock packaged in the reface library can both take and receive a reset gate.

The guts look simple.


I was going to try to perform a dirty cut and paste modification but I thought I would mention it while I hack away.

I know the reset out gate may seem trivial. Itā€™s not. What is the issue that you see with adding it? (I should add here that you did explain the caveat about linear calculations in node logic causes digital timing issues). When I hit start on your master clock, I would like it to count in, then fire that reset pulse on the first beat, which would trigger the looper.

In order to complete tracks over the last while, I have taken the 64 bar gate, passed it through the gate to 10ms pulse, then at some point I would physically disconnect them so that it didnā€™t fire again.

I see the latch you suggested wired in there.

Hacking awayā€¦

*** might have it:

Master Clock V1.4 2.audulus (303.0 KB)

Multi-trigger module seems to be causing timing issues, cutting the loop off before the end of the measure.


Looper Tests.audulus (689.3 KB)

There is also the matter of arming via the latch. Arming should be very simple, itā€™s just that I have no idea about any of this so simple things drain hours and hours of goofing around. Again, the larger purpose here is just to quantize the record button so that it awaits the beginning of a measure. Obviously there are multiple approaches to that.

If I have a good reset output on the count-in clock, some way to set when loops start and for how long (presently trying the multi-trigger), and some way to stop the looper from automatically overdubbing on the second round (arming button suggestion), I see no need to put in the work for another looper.

These three challenges appear to be childā€™s play for any Audulus builder. The confusion with most diagnostics is that the mechanic sometimes doesnā€™t get in the car and drive it. I suspect that you havenā€™t tried working with it. If you did, I feel like communication would be cut by a significant amount. I keep having to try to augment.

I guess the bigger question in these situations is: How does one speak non-offensively without saying way too much or, not even attempting in the first place. This is tough doing everything on an iPhone.

Ahhhhā€¦ thin ice.

1 Like

Sometimes itā€™s the simple things that are the most difficult to implement. I havenā€™t really tackled the looper yet, just the clock. I could generate a reset at clock start but I donā€™t think it would be the best approach. I intend to make a clockable looper designed for an external clock which should help. I have actually used the looper quite a bit but I think the main difference is I generally have a hand free or Iā€™m using a Bluetooth pedal to trigger the looper. If youā€™re trying to use it playing a two handed instrument without a pedal I can understand the challenge. The next version will have the overdub separate from the record so it should be easier to manage. I feel your pain but we need to focus on one issue at a time. Is the current clock design bug free? If so, I can work on refining the looper. I do as much testing as is practical, but it is necessarily limited.
Iā€™m not offended in the least but bear in mind that the transport collection is really my main focus as far as timing systems is concerned. The master clock is too limited IMHO.

Let me just mention something quick. I am often leafing through eurorack module docs and specs because I find it interesting.

At the same time, the stuff happening here is absolutely amazing. Especially because the ES-8 breaks it out.

The potential for the looper is pretty big because the cpu hit is low. Also, I think it is the keystone for guitar pedal people. Itā€™s so fun to create some loops and then start goofing around with audulus effects.

You say you have used the looper with a Bluetooth footswitch. The thing is that, itā€™s not so much hands free as it is syncing thatā€™s the issue. As I have mentioned before, there arenā€™t that many loopers that have a sync. The sync is key if you are building tracks.

I mean, the idea that makes Audulus so unique here is that you bring the guitar into the synthesizer world. The tracks I make are very simple but the fun factor for me is big because I just do it in one take. No daw or editing or mix down. I get a bit of a rush when I can pull it off. It feels like playing a video game.
:space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader::space_invader:

Yes I had this in my head because screen space is important for interacting with a patch; so getting the parts back under a hood would help that.

1 Like

I think youā€™ll like what I have in mind. After playing with it using a clock, I think it makes sense to separate the overdub from the record. I plan to have a clock input, record arm, overdub arm, mute and stop. When record is armed it will start on the next clock and end on the following one, creating the loop. Once a loop is recorded, arming the overdub will start overdubbing on the next clock and end at the end of the loop. mute will mute the loop without erasing it and stop will reset the looper. I think this will lend itself to clocking much better than the current design.

1 Like

Hereā€™s the clocked looper I came up with:
Screen Shot 2020-04-16 at 3.36.55 PM
It works as follows:
Pressing the record switch will arm recording. Recording will start on the next clock and end on the following one. The looper will then switch to playback mode. Once there is an active loop the record switch is disabled.
Pressing the dub switch will start overdubbing the loop at the next loop start and end at the next loop end. The looper will then switch back to playback mode. The dub switch is disabled when there is no active loop.
The mute switch immediately mutes the loop. It does not mute the pass-thru from in to out.
Stop will reset the looper and delete the loop.
Loop gain controls the loop volume and loop decay when set to less than 100% will cause the loop to slowly fade out.
Note that this version of the looper requires a signal on the clock input in order to function.
Clocked Looper V1.1.audulus (434.6 KB)

2 Likes

Iā€™ll post this in the modules section when itā€™s properly tested and debugged.

1 Like

Yeah well itā€™s so damn good. Instant joy even without effects. Iā€™ll stack a few of them and run them through some effects, see if I can break something.

Thanks. Iā€™ve had a blast playing with it this afternoon.

1 Like

BTW watch the input level when doing a lot of overdubbing. Thereā€™s no gain limiting at this point so it is easy to drive into clipping. Turning the loop decay down reduces the feedback level so you can add more overdubs without saturating since the earlier stuff gets faded. I might try experimenting with a soft clip in the feedback loop if it seems necessary.

I knew you would. I am so happy I keep laughing out loud alone in my house :face_with_hand_over_mouth:

Hereā€™s a fun patch. 3 loopers, lots of effects tied to a mixer with sends, drums with fills and I added a light mono synth. Under 50% cpu.

Clocked Looper V1.1 Full Band.audulus (1.4 MB)

One issue with the relationship between the master clock and the mixer with gated mutes (I mentioned this above). It tends to clip the kick drum. Any ideas there. I like the pairing b/w the two so I can bring channels in and out.

1 Like

The kick issue is caused by a delay in the muting circuit in the mixer. The falling edge of the 32 bar signal occurs at the same time as the rising edge of one of the 1/4 note kicks. @biminiroad added an ADSR envelope to the mute circuit to prevent popping when muting or unmuting a channel. This introduces a slight delay in muting and unmuting a channel. When the falling edge of the 32 bar signal unmutes the channel the delay results in that kick being partially muted. Similarly when the rising edge of the 32 bar signal mutes the channel, a small portion of the kick makes it through before the channel is muted. You could remove the ADSR but you would get popping as a result.
A better approach is to mute the gate feeding the kick module. since this doesnā€™t require smoothing you can get a clean mute. Hereā€™s an example. I moved the mute line before the kick.
Clocked Looper V1.1 Full Band modified kick.audulus (1.4 MB)
The little mute module can be used to mute audio as well as gates but it has no smoothing so you might get popping under some circumstances.

I have added the mute module to my utility folder. Everything is running smoothly. I think that the Master Clock 1.4 and the Clocked Looper together are very easy to use and extremely versatile in the Audulus studio. Itā€™s a joy to be able to produce in a modular workflow with near unlimited resources. The speed at which modules can be revised, the lack of potentially confusing alternative design choices (Audulus has formatting standards that constrain module makers enough that users can intuit use cases at a glance), the wide open modulation of knobs ā€” the whole thing is pretty astonishing.

There is a sense in which the title of this thread is misleading. Physical guitar pedals are parametrically defined constellations of specific chips, analog parts and DSP logic. However, as Audulus grows it becomes more the case that the patching of module-tools already built will lead to many interesting effect ideas. Working more deeply with delays, making use of audio driven envelopes ā€” themselves modulating parameters, moves the bar closer to avant-guard music production.

Which is to say, it appears now as incumbent on users to research and make use of the library available so they might route objects into a system that allows the learning and exploration of standard patching practices in novel arrangements. While ā€œcracking the codeā€ does have to do with people like @stschoen, @stevo3985, @J031, @robertsyrett, @biminiroad, et. all doing some of the deeper work, it is now clearer than ever that we are well beyond thresholds and moving into leading territory in this golden area of music ā€œelectronicsā€ design.

4 Likes

Moving forwardā€¦

Thinking about Chase Bliss Dark World.


Clocked Looper V1.1 Softer.audulus (1.2 MB)

I sort of cobbled together the patch earlier in a hasty fashion ā€” just excited about the Clocked Looper.

This morning I slowed down and watched this video:

Just trying to get a sense of Dark World. So in the patch I have posted here, there is more attention on filtering. I think that to get into this type of experimentation one has to dig into the patches ā€” get to know the quirks of the Really Humungous Reverb module, for example.

Also, the surrounding mixing of the other voices should be complimentary. I softened the hats, lowered the kick. You can hit sweet spots with these chains l, but it takes time. This is why the looper is crucial - you can get something going and then just get lost in chasing tones.

A couple of points about Clocked Looper for @stschoen:

  1. I get a heavy click from the mute button.
  2. I added a dry gain knob on a version of the Simple Looper because when you start to stack multiple loopers, the dry signal gets stacked. So I think that having attenuation control over the dry signal is important.
  3. At some point a stereo version would be nice. Why? Because then one could put a looper at the absolute end of a complex chain, capture everything, then wipe the multiple loopers at the beginning. With this complex background captured loop now running, and with the multiple loopers now free early on, things could get super detailed.
2 Likes
  1. Yeah the click when muting/unmuting is the result of an unfiltered mute. Itā€™s a similar issue to the mute on the mixer. I can put some slew liming on it to reduce the click but only at the cost of introducing a delay in the mute/unmute. Not sure if it would be the best solution in all cases. I could have the slew adjustable but that adds another knob to the UI and makes the module footprint bigger. You could also put an external slew limiter in line with the mute signal. That way you could apply the slew limiting only when itā€™s needed. Thereā€™s one in the library.

  2. For a dry gain, there would be two potential places to locate it. You could attenuate the signal going into the looper which would reduce the gain of both the input to the loop and the dry output signal, or you could insert it into the dry path to attenuate the dry signal only. I can see some advantages to either location depending on how one is using the looper. If you are performing multiple overdubs, a front-end gain control would give you more headroom for the loop itself whereas putting it on the dry output only would still record at full level and reduce only the dry signal. Probably better if you are stacking loopers.

  3. You can of course always run two in parallel if you want stereo. Since you would be duplicating the mono version completely, there isnā€™t any real advantage to building a stereo version. A neat trick is to place a MonoToStereo node before the looper (or any other module) and a StereoToMono node afterwards. This will create two copies of the looper in the DSP engine hooked to the same UI. Voila, stereo looper:
    Screen Shot 2020-04-17 at 12.53.34 PM
    The controls will operate both copies of the looper but the left and right signal paths are separate.
    FYI the channels are swapped in the MonoToStereo node. Itā€™s an old bug that Taylor hasnā€™t fixed to avoid breaking existing patches.

2 Likes

After some experimentation I would say that having a dry gain attenuator on the output makes the most sense. Gain staging before the loopers seems like an external affair. Since the dry and the looper gain are being mixed internally, and there is already a loop gain knob, having a dry gain in the circuit seemes necessary when stacking loopers. Also, I am finding that with lots of effects and distortion modules in a patch, just subtle volume adjustments really sweeten the tones.

Why stack loopers? Chase Bliss Blooper has 7 layers. It is itā€™s own locked design and has specific undo/redo features which are interesting and specific to it but not exactly the whole point here. In this sense the Clocked Looper is actually the most feature rich looping option currently available that I am aware of anywhere. The ES-8 is the giant hammer here as well because it can also be broken out completely.

Again, Blooper is locked. So itā€™s like taking a patch and just settling on it. For people who are interested it is really up to them on how to design the patches. There is no need here for a fancy developer, or for some magic dsp algorithm. This, I would argue, is the point where modular synthesis techniques fully apply to Audulus userā€™s pedal designs. By pedal designs I donā€™t mean making new modules. There are enough modules here. Now itā€™s a game of patching. I really wish some people would step up and contribute here. Show me an interesting patch for performing with the Clocked Looper with effects and whatnot.

Again, this is not the idea of making a module. Itā€™s about using the ā€œgear.ā€

2 Likes

I added a dry gain on the output and also added a slew limiter to the mute. You may need to fine tune the limiter, itā€™s the uSlew at the bottom of the patch. I also removed the record disable. You can now re-arm record even when there is a loop present. When the next clock arrives the new recording will overwrite the previous one. I decided that having to stop the looper to re-record was a bit limiting.
Clocked Looper V1.2.audulus (442.7 KB)

2 Likes

I found this interesting in terms of the order of effects.

I want to now gather lots of scattered modules into a guitar pedal module collection. These two play well together.


Jfet and monoburner.audulus (89.5 KB)

1 Like

Hey man, I am just getting caught up with all that happened in this thread throughout the week, and I just want to say thanks for the recognition of my efforts. That really means a lot to me that you would include my name in a shout-out like that among the other names in that list, even though I look at the rest of the names and feel like I am not even close to being worthy of recognition like that, as my contributions pale in comparison to theirs.

I do feel really honored to be mentioned like that, even though I know I have a long way to go before I can truly be deserving of that type of recognition. I am super glad that you are getting a good amount of use from the modules I have contributed to the forum. I hope to be here to continue to provide more innovation that others can count on, as they have grown to expect from the other incredibly intelligent and talented regular contributors of this forum.

I really enjoy making these things and doing all that I can to replicate real world modules that I see and hear in the tangible realm, so I can bring them into this virtual space where those of us that donā€™t make money on the level of artists like deadmau5 or Alessandro Cortini can still utilize similar sounds in our artistic expression.

Nothing makes me happier than seeing a really great performative demonstration of a use case for the [insert module] I spent hours, days, or even weeks putting together in hopes it would be well liked and utilized by more users than just myself. As @stschoen mentioned recently, I have gotten so much knowledge about the modular art form from this forum, and I just want to put all that I can back in to match or exceed what I continue to get out of interacting with all of you guys every week. Thanks again, @futureaztec :blush:

2 Likes