HetrickCV Announcements Thread

Question why the tutorials / recommended approach show starting with a LFO when there is Phasor Generator? That module is good to start with as a “clock” no? It’d just be bpm = x / 60 and then drive the other phasor modules like Phase Driven Sequencer or such and such.

On another question, I do wonder if I’m doing things right as sometimes I feel like I hear some inconsistencies on a trigger or gate, but when I try to listen for it I feel crazy.

Some misc questions:

  1. Is it best to “outwards patch” from the “phasor clock source” to all other patches as much as possible to reduce propagation of 1 sample delay times due to in-between devices?
  2. Is there anything particularly buggy / gotcha’s to keep in mind?

Here’s two examples I was working on from the tutorial, the first one more basic showing the source from phasor generator. Then the second when trying it with hexaquark and then notice how I set it to 48x with the multiplier. Is that correct?

Yep! Phasor Generator and Phasor Burst Generator are my versions of a main source. I mainly use the VCV LFO in the tutorials because:

  1. It shows that there’s nothing special about the phasors inside of HetrickCV. I wanted to emphasize that a rising, unipolar ramp is a rising, unipolar ramp.
  2. In most cases, I think the VCV LFO is just more directly useful since it has three other waveforms ready to go without needing additional modules. It takes up less space.

Totally possible! My coding isn’t perfect. The single sample delays between modules can cause a bit of uncertainty.

This is pretty much my workflow. I generally start with a source and a Timetable and then work from there.

I’ve been meaning to add a Resync input gate to the Timetable. When syncing a patch to a DAW or a main clock source, you don’t want to Reset the Timetable, but instead only Reset the phasor that is sent to the Timetable. If you try resetting the Timetable and input phasor simultaneously, the single-sample delay and the order of operations can cause an unpleasant phase shift.

2 Likes

Thanks for the replies.

It sounds like one should patch with the idea of trying to communicate from “one source of truth” in terms of sequencing of events to avoid the sample trap if possible.

  1. Is the way I did hexaquark right? I’m not sure how to handle the PPQN - it’s by default at 1x… ? Confused how to think of it. Where would I multiply it ideally, and how?

  2. In your own patches, how do you go about starting your “clock” source and then splitting it up?

  3. As a newbie I struggle to figure out what types of ‘sources’ are best to apply for ‘modulations’ - like gate vs trigger vs S&H for accents on a drum machine type module. Would you be willing to share some patterns / signal paths you’ve found success with? (Also like why the step sequencer vs gate sequencer)?

3b. For another example, let’s say I am using the E355 Morphing Dual LFO - would it be better to apply that somewhere in-between the phasor chain or actually be the beginning / clock? I know it’s not always 100% but just curious how you’d think about it or approach it in terms of what you’d consider (from someone much more experienced than me). Thanks!

In general I very much enjoy the philosophy and first principles from your work, thank you so much. It makes a lot of sense from a conceptual model, now I’m just trying to map it properly to the diversity of how everyone implements module nomenclature in a slightly different way, including the UI/UX. :slight_smile:

Man I must be a dummy. How would I sync it to Ableton? I’m not sure which module to use and I keep getting off sync beats. Hm…

Seems easiest thing to use to sync with daw with minimum amount of cables is shapemaster (in order to handle stop/reset/start properly) otherwise LFO is always running.

That’s a good question. I guess that using the Phasor Generator module is a good option. It has clock and reset inputs you can use from Ableton. You can also generate the phasor in Ableton and use it in VCV. Maybe a synced LFO in Ableton can help.

That actually didn’t work for me try it, maybe I’m dumb but I couldn’t get the MIDI CV → Phasor Generator to run with Ableton.

The simplest so far seems to be Shipmaster into various Phasor inputs.

Yeah sending it via the CV tools from Ableton might be the way to go.

This is what I have for simplest

1 Like

How do you have it setup? I think it’s best if you use the CLK/N output and set it to something slower. For each pulse, you will get a whole phase…

1 Like

I think the key is to get a phase as early as possible in order to get the sync with the least amount of ‘listens’ for the proper bpm. Since phase “syncs instantly” clocks have to be ‘read’ - this is the fastest I’ve been able to do it with the proper transport controls:

1 Like

I’ll send a photo of the patch and respond to the rest of the questions when I get home. However, the Phasor Burst Generator is the ideal solution for syncing. Just toggle the Cycle input using the DAW transport state.

2 Likes

This is my solution:

To get one cycle of the phasor to scan all 16 steps of the Hexaquark, you’ll want to break each phasor into 48*8 pulses. You can use the Div/Mult module and set Multiply to 48 and Divide to 0.125. I like to use the Timetable whenever possible, so I’m doing that here and attaching the LFO’s SQR output to the Hexaquark Reset input to make sure that the Hexaquark is in phase with the phasor.

In my work, I usually just have a free-running clock source and typically don’t sync it up with a DAW transport. My default starting point for phasor sequencing is any saw LFO + Phasor Timetable. I then improvise from there.

For pattern creation, I like to use the Phasor->Euclidean or Phasor Rhythm Group modules, which I have a short tutorial about here: https://github.com/mhetrick/hetrickcv/blob/master/docs/Topics/PhasorTutorials/6-NavigatingRhythmicSpace.md

The Gate Sequencer is useful if you have a fairly static trigger/gate sequence that you want, but the Phase-Driven Sequencer is far more powerful. The S&H output is the most particularly useful, as that is a modulation output that only changes on active gates. This makes it behave more like how Parameter Locks work on Elektron devices. I have a diagram in the first tutorial (https://github.com/mhetrick/hetrickcv/blob/master/docs/Topics/PhasorTutorials/1-FirstSteps.md) where I use two of the sequencers to create a more complex pattern on the Befaco KickAll.

Totally up to you! It can go wherever. You could use the Sync input to reset it to the phasors. Alternatively, you can set the morph to about 3 to get a rising sawtooth that can act as a phasor. However, it is a bipolar signal, so you’ll need to add 5 volts to it using a mixer and an offset generator. Alternatively, use my Phasor Mixer along with the Wrap input to convert the bipolar LFO to a unipolar signal.

image

Here in this patch I have LFO 2 set to Morph independently from LFO 1. I’m then plugging LFO2 back into the MORPH CV input to modulate the shape of LFO 1 into something new. That way there’s now a fun, complex modulation output that is synced up to the phasor from LFO 2.

Let me write up the DAW sync stuff next, as this post is gigantic hahah…

2 Likes

Yeah, this DAW sync is a lot trickier than I thought! I can’t find a base clock that reliably syncs to the MIDI->CV clock since that stops when the transport is stopped. Thus, the phase gets a bit messed up when the clock resyncs on the first two beats. I’ll have to give this some thought to figure out a stable workaround.

In Bitwig, I found a hilarious method to sync (Bless Bitwig). I’m using the Beat LFO to modulate an offset generator (in this case, 8VERT) to create our phase. From what I can tell by using the DAW metronome with a kick generator, these are now perfectly phase locked. I’m using a Binary Gate with Bogaudio’s perfect Switch to toggle whether the phasor is being sent to the sequencers.

6 Likes

I’ll send a photo of the patch and respond to the rest of the questions when I get home. However, the Phasor Burst Generator is the ideal solution for syncing. Just toggle the Cycle input using the DAW transport state.

I tried to do that but must have been using it wrong in some obvious way because I could never get it to toggle on a state without resetting immediately. Also it only runs for a limited amount of cycles when I figured out it was limited by that, I don’t know, it was confusing at the time but maybe I can figure it out now.

To get one cycle of the phasor to scan all 16 steps of the Hexaquark, you’ll want to break each phasor into 48*8 pulses. You can use the Div/Mult module and set Multiply to 48 and Divide to 0.125. I like to use the Timetable whenever possible, so I’m doing that here and attaching the LFO’s SQR output to the Hexaquark Reset input to make sure that the Hexaquark is in phase with the phasor.

Just to be clear here, you’re recommending me to do something slightly different because you mention multiply to 48 but Timetable has only 8x. Also this assumes a certain base ‘pulse rate’ that one can get from some ‘clock.’ (confusing, but I think I get it). I think another way to help think of this is… what PQNN does phasor based sequencing want to work with ideally and then perhaps it can ideally in one module support any other (perhaps an extension to timetable to allow up to common PQNN values and a signal if they’re in phase or not). It’d be helpful if it even displayed BPM @ resolution or something of that effect (UX wise).

Reading all your other input and replies - thank you ever so much so kindly. They are useful and helpful. I’d be happy to assist you in writing tutorials and documentation once I figure out these modules.

And I am glad for my own sanity’s sake that it was less obvious for you than expected!

I found another module that had a clock phasor after much experimentation and this ended up working:

The key was the fact that it could be set to 24 PQNN from the external clock source while also using your gate toggle to act as a transport on/off combined with the start/stop states. This ‘stopped’ the phasor from running as expected vs continuing (which kept playing beats even when transport was off otherwise). I matched it with a LFO following your tutorial to do a ‘test’ to ensure it was cycling at the same speed and it was.

I wish there was a phasor coming directly out of the 1st module instead of having to convert it from a pulse. I actually tried an experiment of sending a phasor/saw directly from Ableton into VCV Rack using CV Tools. It worked but I had to do some patching that didn’t feel as clean. I couldn’t get it to send from 1/2 only 3/4 5/6 7/8 and I’d have to send a phasor into each. I felt like there was potential for some latency as well. But it might have worked just as well too.

1 Like

Hello! I appreciate the phasor modules a lot, thanks for the effort on these. <3

One trouble I’m having, the timetable drifts significantly from the main phasor. It doesn’t take very many passes before an /4 output is happening ≈ 1/32 of a cycle early. Anything that can be done about that? I read something above about the reset input, but this doesn’t seem relevant here. I’m not trying to sync to the timeline. I’m just running the phasor generator directly into some 8-step sequencers, and via the timetable into a 32-step one. I guess I could just split at the timetable output instead but I’d have to use 32-step seqs everywhere and they’re way bigger.

Any way around this? Or better yet, any way it could be fixed? I get that the timetable output will always have to be a sample late which is perfeclty fine. But that should be constant shouldn’t it? At least, I don’t get why it’d have to accumulate.

Thanks again. :pray:t2:

Yeah, that’s a bad bug! I’ll look into it. I’m imagining that this might be a precision issue, or maybe a rounding issue because I’m scaling down by 0.1 and up again by 10. I’ll see if I can track it down. I don’t remember the drift ever being this bad, so I’ll also check the commit history to see if I introduced the bug somewhere.

you should re-sync every now and then, not try to have infinite precision forever. If you have a choice, anyway.

@trickyflemming, if there’s not an obvious bug/regression and re-sync doesn’t work, is there a way of trying to distribute the errors around zero so that (statistically speaking) they don’t accumulate very far in either direction? Probably not…

Thanks for looking into it. Let us know how it goes!

Btw, don’t know if you saw the other thread I made, but your phasor modules (combined with a little docB formula) are a good solution to a rhythm issue, that I’ve been looking for good solutions to for a real long time. In my local folk music tradition there is one type of tune/dance which is in 3/4, but the second beat is shifted a bit early. I’m combining this traditional style with electronics, and this groove has been especially challenging to work with. Previous attempts involved ridiculous DAW tempo automation curves, and/or disabling the grid with a hail mary. :sweat_smile: Not good workflows…

Your modules made me look into Phasor Sequencing, which is turning out to be the most promising approach yet! :partying_face: Very thankful for that. This is the clock setup I came up with (phasor generator and sub-step shaper offscreen): Aha! - Gifyu

2 Likes

Alright, this is really weird, but using Phasor Generator with the Timetable leads to the drift, but using VCV LFO with the Timetable is dead on. I’m running this at 400 Hz and haven’t seen any deviation.

I think I’ll need to rewrite how phase accumulation is done in the Phasor Generator, as I think that what must be happening is that the Gamma phasor is resetting slightly too early or late.

EDIT: I just tested the Phasor Burst Generator and it’s working accurately as well. I suggest using that (in Cycle Mode) or the CV LFO for now until I figure out what’s wrong with Phasor Generator. Yay, math :laughing:

3 Likes

I predict this is going to be a very satisfying bug to fix, @trickyflemming ! A million thanks for conjuring up this incredible and cutting-edge suite of modules (on top of everything else you’ve built here and elsewhere). It’s really phenomenal stuff.

1 Like