Delay Sync to MIDI Clock


#1

Hi Everyone.

I've been trying to create a delay that can sync to an incoming MIDI clock. I'd like to be able to choose 1/16, 1/8, 1/4, 16 Triplet, 1/8 Triplet, etc. timing. I'm having a hard time figuring out how to set it up. I've thought to use a sequencer to trigger delay playback on selected triggers to match the timing i'd like, but I can seem to get things talking correctly or I may be using the wrong delay object.

If anyone has any hints on a way to go about this it would be much appreciated.

Thanks!


#2

I don't know if this helps but: https://sebiik.github.io/community.axoloti.com.backup/t/does-anybody-have-delay-patch/492/12


#3

I haven't thought about delays for a while but now I started thinking that maybe you could use a counter that counts to however many pulses one beat (or 16th note or whatever) is and some kind of object that measures how long it takes for this counter to become full, and then use this as a controller for the "base" delay time?

I'm not sure if this is possible but maybe?


#4

Syncing delay implies the ability to change delay time on-the-fly, it is not so easy to avoid glitches while changing the delay time.

Perhaps table/record and table/play, both start recording into a table at the start of the delay interval (from division of the midi clock) as well as start playing the table. But if the tempo slows, it will play beyond the end of the last recording.

So perhaps cycling between two tables? This approach avoids transpositions (pitching up/down) when the tempo changes.


#5

I am not a programmer, so much of the more complicated stuff is lost on me in reference, but I am mathematically and logically capable of doing much of this... Just takes time!

I have not used tables, but looking into them will be on my list.

When changing delay time on many delay devices, pitch shifting is typical behavior... And sometimes really fun. I'm hoping to create a multi-delay where I can add multiple delays together, all set to different clock intervals, so a rapidly changing MIDI clock won't be a common occurrence. Counting the incoming MIDI clock and using math to convert that to a delay time setting could be a viable solution. Does anyone have thoughts on how that could be done? How is the best way to constantly analyze the rate of of the incoming MIDI clock and produce a number from that? If the clock changes, it could then react to that change and shift the math, so ideally it would look at the space between pulses and produce a number from that.

Thanks everyone for the help!


#6

I'm currently looking into using a timer to measure the length of a beat and using it to control modsource which then controls delay time. No great success yet :smile:


#7

Maybe some sort of ability to immediately analyze the clock gets it right up to speed, but also the ability to take in to account the last few pulses helps smooth out small inconsistencies. This kind of analysis could be useful for some sort of tap tempo feature as well. Maybe could be used to watch a MIDI note or CC which could be tapped by an external device via button, trigger, pad, key, etc!


#8

Here's v2, the first one had crackle so I deleted it. But: https://www.youtube.com/watch?v=-yVQqf9MPpA


#9

Cool. I'll have to watch at home tonight on a larger screen so I can see the details of what you did. It looks like you have some custom objects in there. Any chance you can post some files?

Thanks!


#10

They are subpacthes, but this should get you started:

synxdelaytestsimple.axp (12.8 KB)


[Help the noob!] - Convert Midi ppq to LFO frequency
#11

Thank you so much for this. I'll try it tonight. When I get something working I'll report back!


#12

There's a lot of possibilities. You can make it into a subpatch and load multiple instances for stereo stuff like on the video. I imagine it would also be easy to put an envelope follower on the input and use it to "duck" the delayed signal. Or put a soft clipper into the feedback loop, or whatever.

The delay time doesn't sound like it's 100% accurate even with the smoothed control so there's a little "twang" to it but that can be nice too :smile:

You could put a latch object in there to lock the delay time, and only unlatch when you want to detect a new tempo if you don't like the twang.


#13


I've made this to provide my delay readers and LFO's the host tempo, while also having it midi-controlled by specific notes.
Tempo-synced, frequency controlled, note triggered audio-retriggers/mods anyone? :stuck_out_tongue:
ps, I have this thing for 3 days now, but I have 14 years of experience with synthedit, so this is gonna be fun guys!
Got a problem? Tell me and I'll kill it! moehahahaha!


#14

Thanks so much for posting this. Some questions:

1) What is Note 40 doing? From what I can tell it is a manual trigger of the LFO wave. I suppose this would allow you to sequence the note from an external control to have more complex control over the LFO timing?

2) What is Note 39 doing? Again, similar to the LFO, does this allow for manual triggering / sequencing of the delay?

3) How are you controlling clock divisions to control the LFO and delay in relationship to the tempo... for 1/4 notes, 1/8 notes, 1/16 notes, 1/8 triplets, 1/16 triplets, etc?

4) Any chance you might share the file to get someone started?

Thanks!


#15
  1. note 40 controls the rate of the LFO as an integer multiple of the host rate. The gate retriggers the LFO
  2. note 39 controls the division of the base timing based on the host rate.
  3. see point 1. Also, to get other divisions use an integer-control, followed by a "reciprocal" (math, float) followed by a div64 (divide by 64) and multiply this with the frequency to divide it by a given division.
    You could also very well use a multiplexer to select between standard divisions using the velocity.
  4. When I got a nice "total" subpatch that you can use to sync multiple LFO's and delay easily, I'll upload it

#16

Thanks so much!

I have seen some posts around here talking about how to make the Axoloti more accessible to many more people. The generosity of the community members is very helpful. "Total" subpatches like you are mentioning will go a long way towards getting more people comfortable with using the Axoloti for their musical adventures. I suppose being able to easily navigate objects and sub patches within the software will be important as well.

I am very happy to have jumped in to the Axoloti after it sitting by my computer unused for a while as I didn't really know where to start. I'm grateful for everyone's help.


Clock tapping patch
#17

for me it just looks so much like synthedit that it is very easy to go around and think of solutions if a function is "missing".
I guess I'll need to build a whole bunch of subpatches myself to regain all the functions I used in synthedit.


#18

SirSickSik, I remember your name from Synthedit forums. Great to know that you're around and getting in to Axoloti!


#19

@SirSickSik your sync engine looks nice, would you mind posting the patch?


Cpwitz Contributions
#20

hmm, trying to, but I can't seem to locate the subpatch with windows explorer.. it just doesn't show up in the map somehow.. not even if I save as a normal patch..

wow, seriously... trying everything here.. it just won't show up..?!? I'm afraid you'll have to do with the picture...
Though, you'll need to extra divide the delaytime with 3 and multiply with 4 when the clock is coming in at 24 frame rate

oh... FINALLY!
Though then again.. first tried it with a new post, then thought, let's just add it to the former one and closed the loading screen. When I opened the former post and tried to add the file... it was gone again?!? Though, luckily, it was able to re-save the file and show up again (no mention of any overwriting existing files...?!?)
midi clock sync example2.axp (19.1 KB)