Clockable Delay + Multi tap delay?
  • How hard is it to make the multi tap delay, division based instead of free form -- or switchable between the two? Someone must have done this already...
  • I think there is one. Check out Module Library->effect->delay->clockable tuned delay line, that should fit the bill. I have also attached the module along with a simplified patch so you can use the technique to fit your needs.
    How to clock a delay length.audulus
  • Okay. I should have been more clear. First, I do not see "clockable _tuned_ delay" in the module library where you pointed. Second, I thought it would be key to have the multi-tap delay in that module library capable if dividing the delays by clock divisions rather than just free time parameters -- as you see on many effects nowadays. ie. being able to switch the tempo sync on and off. There is an example in the picture below. The "clockable delay line" has this function, and I was surprised that the multitap didn't...

    But I think that you have provided me with some tools to try to accomplish this so I will sit down and see what I can do.
    Screen Shot 2018-04-23 at 11.02.22 AM.png
    521 x 336 - 103K
  • The wiser part of me, who has attempted things like this in the past, realizes that there will be a whole bunch of details that I will miss trying to implement this, I'll get stuck, ask questions and maybe a week later figure it all out. I haven't gone through the appropriate steps of making basic modules yet -- so I think I will back off for now. If I find some time I will tinker, but I have too many things going right now to sit around for several afternoons on end.
  • >First, I do not see "clockable _tuned_ delay" in the module library where you pointed.

    Hmmm. Maybe check for an update? I'm not sure how that happens.

    >you have provided me with some tools to try to accomplish this so I will sit down and see what I can do.

    Yay! Looking forward to see what you come up with.
  • Tempo sync in general is an area where Audulus is in need of improvement. Hopefully the upcoming MIDI improvements and Ableton link will provide us with a convenient “master clock” that can be used to sync all kinds of effects. I would like to have a user settable BPM clock node that would automatically provide sync to other devices or receive sync if it were available depending on how it was configured. Maybe the delay and phasor nodes could have a sync toggle to auto sync with the clock
  • @stschoen I'm a little surprised to hear you say that. I actually have used Audulus as a master clock for my modular many times as well as tempo syncing everything in an Audulus patch from my modular. I'm not saying there isn't room for improvement, but don't we have BPM clocks?
  • I have been messing around for a couple of hours -- okay maybe an hour -- seeing if I can understand how to take any time knob and get it to snap to fractions. Obviously easy if you know what you are doing....

    But this is good because I am coming to understand math better -- very basic math. I understand your example somewhat. I was trying to see how I could use a knob to change the fraction that sets the value that multiplies by seconds...

    If you think about what it would take to have that multi tap delay module be able to preform synced fractional divisions the way the clockable tuned delay line -- then you understand what mountain I might be pointing at.

    Having fun though -- very humbling -- especially when I think about it in terms of analog circuit design. I have a compressor pedal I built for my bass, and I thought about adding a cv input before I mount it in a 1590B enclosure, so that I could implement sidechain ducking from a click track out of a DAW and into the pedal input. This helps me understand the gravity of that sort of idea.

    Back to the point though. I wonder if it is possible to have a fractional time knob, that snaps?
  • @futureaztec - you don't need to get the knob to snap to fractions. You can use the mux node to set the fractions directly.

    Use the zero cross to analyze the Hz value, then multiply that Hz value by a fraction. You can set multiple fractions using the mux node. The knob just scans through what input is selected.
    Tap Tempo Delay.audulus
  • Well I suppose this was approached in the clockable delay line module by displaying the divisions beside the knob.

    I was imagining a situation where instead of someone saying "no, stupid, you do it like this," and then writing down a long hand equation; they rather saying "no, here, take this," and handing the person a calculator. The metaphor being that a calculator would do the fast work like a snapping knob might.

    What if there was a scannable fraction module -- what is that modulation quantizer, for example?
    Fools Delay.audulus
  • @futureaztec If you want to have displays for the numerator and denominator, you have to split them up and then combine them afterwards, like this (attached).

    If this isn't what you're looking for, can you explain it a different way? I'm not sure I get the calculator analogy.
    Fools Delay with Comments.audulus
  • I'm just in over my head. I am a hack. I know what I want to do, I know I have a long way to go to sit there and do it. It's fun, but I am not going to be able to do it right now.

    I have already learned a lot just messing about. Personally, delays with out divisions annoy me because I like to make complex techno and when everything isn't tight it sounds awful when you have a dense project with multiple tracks etc. I noticed that a few of your better delay modules in the library didn't have a sync mode but one did. So I am just looking into how I would implement this function in those modules. But it is clearly quite a task for someone who does not speak Audulus, let alone who also does not possess the basic math concepts that define logical expressions for digital circuit routing.

    The short is I don't think you can help, but in some ways you already have.

    Regarding the calculator reference. Nevermind.
  • @futureaztec I think we've all been there, don't worry. You'll be chopping onions or taking the bus when the solution you are looking for will pop into your head. That's how it is for me, anyways.

    Also, coincidentally, the next tutorial I'm working on covers some pretty similar ground as the topics in this thread. Maybe it will help clarify what @biminiroad is talking about, and allow you to turn any delay into a tempo-synced techno tool.
  • You are too kind.
  • @RobertSyrett, I was referring more to syncing to an external tempo than syncing within a patch. You can of course input an external clock into Audulus as well as output one, but in addition to a frequency, ideally tempo should include a time signature and your position in the measure with a fine enough resolution to support short duration note lengths. Other than directly gating a module from an external clock, Audulus doesn’t really have a reliable way to lock to an external signal or divide a clock. For example the BPM clock outputs one clock cycle per beat, but what if you want to sync to a 32nd? The zero crossing node is useful, but because of quantization errors it’s not really accurate enough to use as a frequency multiplier. Particularly in the context of a plug-in, some form of external tempo sync would be very useful if not essential. If MIDI sync and Ableton link are included in a future release of Audulus, it would be nice if we could use the same capabilities internally. I’ve been thinking recently about how MIDI sync and Ableton link could potentially integrate with Audulus and what a sync node might look like. Other than some kind of clock output, the ability to sync the delay node and phasor node are what comes to mind. If you can sync the phasor and delay to some multiple of the beat, then constructing tempo synced LFOs and effects of various types becomes straightforward.
  • >time signature and your position in the measure with a fine enough resolution to support short duration note lengths.

    Well that is definitely true, if you want to play a specific sequence from a certain point, audulus is not currently well-equipped.
  • Ok, I made sketch of a patch that can divide tempo and scale delays to help create a multi-tap delay.
    switch bpm sketch with delay.audulus
  • I think Ableton Link has about the right degree of granularity. Sync in Ableton consists of tempo sync, beat sync, and what they refer to as the quantum which is the unit number of beats to align to, so that if you have a 4 beat quantum you would align with beat 1 or 4 of a system with an 8 beat quantum. I'm not sure of the fine details of MIDI sync other than I know there is more than one type of MIDI clock.
  • @RobertSyrett Since I am new it is hard for me to know what modules you have whipped up from scratch here and what you are dropping in from the library or modules others have made. Is this bpm divider something you just made, along with the sec divider?

    It is what I have been picturing, but it needs a trigger sync input -- IMO.

    Intuitively the first thing I would do in this patch -- what I want to do when working with a patch like this (especially when I am running it as inter-app audio inside a DAW on iOS) is have a master clock. So the BPM clock in the library looks to me like the best way to start. Why? Because it has a trigger input, which means that it can be synced to a midi input, which means I can use midi notes in a daw to regulate the tempo. I find this useful because if there is any drift in the timing, it generally won't be perceivable if EVERYTHING is drifting together. But if there is even the slightest drift between instruments inside the track, it is very perceivable (I think this is how Ableton Link must sort of work -- allowing absolute drift, in order to regulate any relative drift). By having a master clock in a patch receive midi triggers from a daw, it slaves nicely to the tempo of the DAW, which is probably drifting slightly.

    So straight off I want to isolate the kick drum from the division modules you have hooked up and trigger it with the master (if we stick to four on the floor house/techno to make it simple -- skipping electro/breaks for now). Then I want to feed all other time divisions that signal. This is the approach I took when you guys helped me build the Gate Creeper patch, triggering splines. That is such a fast gating technique that everything needs to be tight and the spline needs to get a reset every measure.

    I have to do some house painting right now and I will get back to this, but I would prefer to see a trigger node on those fractional divider modules.

    I must say, I am very excited this morning and dying to get some things done so I can work with Audulus today. Thanks for that! Again -- I would like to tap tempo that BPM divider, rather than set it with a BPM value node.
  • @futureaztec - if your BPM on your delay is set to the exact BPM of your DAW, they will be in sync. You don't need to use the clock from your DAW to sync the delay. It's actually preferrable not to for two reasons: it's slightly lower CPU to get rid of the ZeroCross node, and everything is perfectly in sync from the start, whereas the ZeroCross needs two clock ticks to sync up.

    Both BPM and clockable delays will be percieved as perfectly in sync with no drift because the BPM way is the correct way to sync a delay, and the error in the clockable version is only in the 0.00001 place usually.

    I think what might be tripping you up is you think this error is cumulative (the more "song" time passes, the more the delay becomes out of sync - that doesn't happen), and/or that the delay needs to be "started" in sync with the master DAW. It does not, though.

    If you had a delay that had infinite feedback, over the course of a few minutes you might start to hear the drift as the repeats return over and over again, but we're talking about infinite feedback held over several minutes - a real edge case.

    The reason I made my module is so that you could send the clock input varying clock speeds using stuff like logic gates and gate sequencers. It's not superior to a BPM input for keeping your delays tight like you want them to be.
  • @biminiroad How do you resolve the transport start/stop issue so that all events have an absolute beginning, without some sort of trigger to audulus?
  • @futureaztec - what transport? The DAW’s transport?

    Syncing a sequencer in Audulus with a sequencer in a DAW is a separate issue that I can explain. But it doesn’t have to do with syncing delay time.

    I suppose if you were rendering the song you’d want to wait a few seconds at the start of the render to make sure any decaying delays fade out completely, but that’s the same case with any delay or reverb plugin.

    If I have a BPM synced delay on a track and I stop the song in the middle of a measure on an off beat and immediately start the song from the beginning, the delay will remain perfectly in sync. For a moment you might hear the decaying delay tails conflicting with the new audio coming in, but it quickly goes away.

    So anyway yes you need a trigger (only one) from your DAW to restart events in Audulus, but you do not need to “restart” or “resync” a delay.