How to slow down a pulse train?

Hi, I’ve been experimenting with running audio into a comparator to generate interesting pulse trains. They are, of course, at audio rates. Is it possible to slow this signal down? Clock dividers don’t maintain the interesting patterns of pulses.

Hi, I’ve recently been working on this same idea too. Try running the comparator output through a bernoulli gate and set the probability to suit.

As an aside, I’m interested to know if/how clock dividers are designed to respond to random triggers patterns.

Will do for sure. And that’s a great question, it looked to me like the clock divider was averaging the input signal.

I’ve got a little something going, it’s inelegant though. Imagine we have a repeating pattern like 1010001001, so four true values. That signal goes in to a demultiplexer, that same signal is the control for the demultiplexer, and we take our slowed down signal from output 1 of the demultiplexer. The number of outputs of the demultiplexer is the divisor.

I think this works, but would be easier to implement in an application like MAX/MSP where you could specify a large number of outputs for the demultiplexer patch and not have to worry about an awkward GUI. The Sequencer Switch in Rack does this but we’d need it to have hundreds of outputs.

I’m more curious than helpful here, but still figured I’d ask. You have some audio signal you mask it so now you get 110110100110 or whatever. And now you want to output that as a series of gates with each bit taking 12.17ms instead of 1 sample (or whatever)? Out of curiosity

  1. Do I have the right idea?
  2. If you had a module that did this, how would you want choose the start and end points for your audio pattern capture?
  3. More interestingly, but less relevantly, how would you use that gated signal?

I don’t know how to do that with current modules, so like I said, I’m not very useful right now.


could you record it and play it back at a fraction of the speed?

If your pulses originally come from oscillators, couldn’t you just slow down the oscillators if you want slower pulses?


  1. Yup, that’s pretty much it. Maybe I just want the space between the on values to stretch though, unsure.
  2. Ideally you wouldn’t, the module would just spit put whatever you put into it only slower.
  3. Normal gate stuff. Triggering EG’s, making evolving modulation sources.

see the response to Andrew’s reply

Yes, but that’s not the point. This is at the moment a conceptual exercise, that stemmed from thinking about the way that the term “generative” is used across many synth/music making communities. In short, I think we’re using the word wrong, the term is borrowed from cybernetics, in cybernetics a critical element of a generative system is that some part of the output feeds back into the system itself so that the output continually evolves.

Most pieces that I’ve seen that are presented as generative I would call something like “probabilistic”. I’m not making a value judgement as to one methodology being superior, I’ve just been thinking about ways to make actually generative music. One idea is that if the audio output of a patch could be turned into a pulse train that in turn controlled aspects of the patch making the audio that could be considered a truly generative system.

1 Like

Quick/stupid answer: Sample and hold (timed by a “clock” with some level of RNG push/pull or jitter to add some level of indeterminacy? Or maybe with the Final Trig out of NYSTHI::MetaAardvark? )

I’ve been thinking about how to use a sample and hold to achieve the slowed down pulse train. What does RNG mean?

Sorry, that’s my gaming side showing.

RNG = Random Number Generator

It excites me that you are thinking about this problem in relation to generative music. I’ve found myself in the same boat! First, I’m interested to know what types of audio you are processing? Field recordings? Oscillators from VCV Rack?

Anyway, I recently listened to a public talk given by Keith Fullerton Whitman who briefly discussed this exact problem with his “Redactions” eurorack system

He had previously been using comparators to extract gates from field recordings to influence all aspects of his real-time compositions. The trouble is the comparator output can just get too chaotic (as you have discovered!). His solution is a Max/MSP patch that combines transient detectors, bandpass filtering and logic to generate gate signals which are then sent to his eurorack system. Rather than go into details myself you can listen for yourself from 46.20 (though probably best to listen from the start for some context)

If nothing else it is nice to listen to someone speak so openly and eloquently about modular.

Oh dang! I love KFW, looking forward to listening to this. Currently I’m not processing much of anything. I’ve made a few Rack patches using the comparator technique, it started with a fairly normal textural drone type of thing and I wanted to mess around and look at the output of a comparator on a scope, I had never used one before. I was excited by the results and the idea of using the audio of a patch to generate a kind of base line control pattern that could be fanned out to all sorts of cv networks in the patch that would then influence the audio being generated which would then influence the comparator patterns and on and on. I made a few slimmed down test patches using just one osc the comp a scope and started trying ways to slow it down. The sequential switch technique works, but you’d have to gang together a whole bunch of them to get useful results, I could see it getting really messy. I messed with a S&H triggered by an LFO this afternoon, it does work well but i haven’t figured out a way to maintain the original pattern only slower. Which maybe doesn’t matter.

One potential option, although I’m assuming that instead of on a second playback, you want live… NYSTHI’s LOGAN/LOGAN20 can record values on a per-sample basis, and 02NAGOL can play them back at anywhere from 0.01x to 1000.00x speed (also CV modulatable).

I have no idea if the infrastructure exists (yet? 1.0 might add options?) allow the .csv to be appended to (vs. being saved), but I’m sure that things could be discussed with @synthi :wink:

I don’t understand how this could work. If it slows down the input all the time without a trigger, e.g. by a factor of 1000, then the first millisecond of input takes one second at the output. And the input starting at second 2 would be delayed by 1000 seconds until it appears at the output etc. And after some time your computer runs out of RAM.

I just gave it a try with my upcoming Lua module. This is the script:

It can record up to 10 seconds and it has an external trigger input to reset the playback to the current input position. Another input defines the delay factor. Can be any number, e.g. a delay of 1000 is no problem.
Quick test:

Later in the video I modulated the delay input with the output. Sounds pretty angry :slightly_smiling_face:

Really looking forward to listening to this later tonight. I see what you’re saying about finite RAM and that seems obvious now. I like where your solution is headed, triggering a S&H with some other source that isn’t related to this specific feedback path feels random.

I haven’t really explored the nsynthi stuff. I’ll have to re-evaluate that.

The Nysthi modules are very varied. There’s probably something in there that you’ll find useful.