Squarp Instruments Hapax Polychronic Performance Sequencer

given that there are 16 pads across

you can zoom in to super small section, so its not really 1/16th notes, you could get into to like 192nd notes (I think it may be even further)

In my specific example I trigger the megacommand that then quantizes when it responds to Program Change and set that quantize length to 4 beats, so on the Hapax I send the PC 4 Beats early.

Does that extrapolate (across the pads) if you make your pattern longer than 4 bars?

Regardless of length of pattern you can zoom in and out for greater or finer control.

1 Like

Any one done any direct comparisons to the Deluge?

1 Like

The thing is, that switching pattern on Step1 of a Pattern is too late, you need to send the Change before the next pattern starts on Elektron devices. So either you need to micro step them before the 1 (not all sequencers are able to) or just send the Change on the last step of the pattern before.
While it might be an issue with Elektron devices, that they have nothing to change even if it is too late, it is a valid decision, as the change that is sent on the first step of a pattern in an synced environment cannot arrive before the first step is played due to physics :stuck_out_tongue:

5 Likes

Yeah, thereā€™s some subtle corner cases on this.

Obviously , the main reason it ā€˜flawlesslyā€™ works between Elektron devices is, as a single brand they explicitly test it, and of course know ( internally) how much lead time they require.

The thing is different synths, need more or less time to switch presets ( some are almost instant, some are pretty slow)

Then we have to look at whatā€™s possible.

If the transport is stopped, then the sequencer can only send ā€˜earlyā€™ if it is the master, if itā€™s slaves to something else ā€¦ by the time itā€™s told to start - itā€™s too late.

However, I guess the main use case is changing patterns during performanceā€¦.
Here we have to bare in mind , the time marches on regardless.

So the if you have no sync, so immediate switching ā€¦ the sequencer cannot send early. Itā€™s too late already.

If you have sync on, eg 1 bar then IF you donā€™t switch patterns too close to that point ā€¦ then it should work.
Eg letā€™s say ( for illustrative purposes only , I know itā€™s much less! ) it takes 1 second for a device to change patterns ā€¦ then if you switch patterns 1/2 second , the sequencer cannot send really enough ā€¦ since itā€™s going to sync on the bar still.

In practice , If you approach Squarp, I suspect they could do something, within these constraints ( basically itā€™ll get sent early IF pattern change gets ā€˜queuedā€™)

I guess that early time will also have to be per track, since as above , it could be very different depending on synth/sequencer your targeting.

Definitely worth raising a feature request for and talking through with them , as implications go beyond Elektron devices.

as an aside, and not entirely related , but I wonder if Squarp start supporting track latency ( offsets), then this might be a good opportunity to look at this to.

Surely they could add an attribute to pattern change events thatā€™s a time offset from the position of the event to solve this problem? Assuming youā€™re using a quantized pattern start and the sequencer is told to start the pattern at least offset milliseconds before the actual pattern start, it should be fine.

ā€˜Should beā€™ is where bugs creep in!

Who says a ā€˜few millisecondsā€™ is enough for all synths ā€¦ you donā€™t code just for Elektron ( unless you are Elektron)

Then as above, you canā€™t just schedule the event in advance, in all cases since you may already be past the timeā€¦. At which point you have to send immediately regardless ā€¦ as itā€™s all you can do.

This is why developers need to think about all the corner cases ā€¦whereas users have the luxury of just thinking about their requirements.

Trivializing dev changes is a bit like saying why do musicians need more than one kick sound , they all sound the same :wink:

2 Likes

Iā€™m not trivializing it. I didnā€™t say a few ms, I said an offset in ms. Could be a few thousand, itā€™s the same problem. Yes, you cannot schedule an event to be sent before the sequencer knows the pattern will be started, obviously ā€” hence my point about quantized starts. If the sequencer is following an external clock and the user tells it to start a pattern on the next bar, it can scan the pattern and check for PC events with negative offsets and send those before the actual pattern starts. In that situation, it wonā€™t handle synths that need more than a beat or two to respond to a PC event, but thatā€™s not something an external sequencer can fix.

@thetechnobear thanks for your comments on this topic.

Have you been able to use/test the Hapax with an Elektron device to confirm if the timing phenomenon I described with the Pyramid also exists when sequencing with the Hapax?

If yes, are you able to send a PC message (via automation) on the Hapax early enough in time to keep both devices synced when you change patterns?

the only Elekton , I have is the Octatrackā€¦

and I really donā€™t sequence much with it (with the Hapax) , as I use it more for recording audio, and then mangling, more with scenes, than parameters locksā€¦ a hands-on instrument.
so I pretty much just need it in sync - so that one shot record/playback is syncā€™d.

I donā€™t really use it much for static samples, were I guess you would then use patterns.
but even thereā€¦ for my limited use, Id probably just trig the samples from the Hapax, and use its patterns.

ā€¦ but I do understand why YOU need it,
if your doing a lot of Elektron programming, then of course, you want to do pattern programming on the Elektron, so you can use parameter lots etc.

tl;drā€¦ Id need to check to see if the Octatrack works the same as the newer Elektrons (Digi-)ā€¦
as, I thought it had some weird oddities in this area, that meant it wasnā€™t as simple as sending a PC to switch patternsā€¦

so not sure, its worth testing with the Octatack?
anyone? is it as simple as a PC?

if it is, Iā€™ll give it a goā€¦
(I just donā€™t really wanna spend hours banging my head against a wall for something Iā€™ll never use :wink: )

EDIT: Iā€™ll go check the pyramid/octatrack thread on Squarpā€¦ see if I can find out what the oddities wereā€¦ I half remember it being a two step processing, involving stop/start of sequencer.

1 Like

ok, hereā€™s the Octatrack shenanigansā€¦

seems main issues are : (reading post)

a) Pyramid wonā€™t send a PC , if its the same as the last one sent.
this is a problem, since it does not take into account the BANK (MSB) might have changed.
ā€¦ Iā€™d need to verify if this is the same with Hapax.
only an issue if you need more than 128 patterns!

b) Octatrack wonā€™t change immediately
it relies on its ā€œPattern Chain Behaviourā€ , which can only be set as low as 2/16
the way they have got around this, is to inject a stop/start sequencer midi message.
(as this will instantly change pattern when its restarted)


(b) is kind of an interesting oneā€¦
unfortunately, I suspect its behaviour is not the same on your Digitakt? so Im not sure if its worth me testing ā€¦ apples nā€™ oranges? though it be good to confirm this.

also reading this ā€˜immediate changeā€™, I think is partly fighting against the windā€¦ (*)
Im assuming the OT designers thoughts wereā€¦
you send the PC very early, then you let the Octatrack handle the synchronisation.

whats interesting here isā€¦ is this the way the Elekton devices ā€˜sync flawlesslyā€™ between each other?
they simply let each box handle the synchronisationā€¦ and just make sure the PC is sent nice and early?


the bad news in this particular case (quite possibly OT specific, as I need to try a Digi- to know)

  • adding an extra midi message in flight (stop/start sequencer) for instant pattern chain - is not a reasonable thing to expect a sequencer to doā€¦ way to OT specific. so really, id use a midi processor as the posters on the squarp forum do.
  • feels like if you are willing to let the OT sync its pattern change (which feels right for me), then the PC would need to be sent ā€˜really earlyā€™ ā€¦ not just a few milliseconds.

Iā€™d like to play with this a little see how it really pans out if used in ā€˜angerā€™ ,
however, Im not sure it really sheds any light on to the Digi- situation , as this might have all changed.
Im mean the OT is one of the oldest of Elektronā€™s beasts.


(*) to be clearer the original poster has really good reasons for wanting this instant pattern changing, to do with which machine is in controlā€¦ so would prefer the OT setup doesnt ā€˜encoderā€™ this sync info.
so, definitely its comes down to individual use-cases.

Sure thing. Iā€™m not versed on the matter myself, I just know that in order to make timely program changes on OXI, itā€™s actually sent at the very end of the last step of the previous pattern slot. AFAIK that fixed the issue with Elektron devices.

1 Like

@CatLitterForBrains
ok, so I tried with the OTā€¦

so, ignoring the OT odditiesā€¦ yes, it pretty much has the same same issue, as I expect your seeing on the Digi-
basically the OT, will schedule its pattern changes, by using it own synchronisationā€¦

this means, if it receives a PC, when it already believes its already on step 1ā€¦ then indeed, it will wait for the pattern change period to switchā€¦

if your programming patterns that always follow each other thats not a problem, if you use PLEN, then put an automation step with PC on any of the last few steps of sequence, itā€™ll work nicely.

BUT thats not a great solution, since it assume P1->P2->P3->P4 ā€¦ what if you want to go straight from P1 to P3ā€¦ , the automated step on P1, would make OT go to P2.
so definitely see the issueā€¦

Iā€™ll have a chat with Squarp, and see what there thoughts are on it.

2 Likes

for now you can manually do it by using a PC automation lane, but that is a bit more work to track and update.

Yea, but as I said above ā€¦ that fixes the order patterns are launched.

Weā€™ll see, Iā€™ve raised it :slight_smile:

Honestly though, as a dev, it smells like the kind of issue thatā€™s not going to be a fun/neat fix ā€¦ and one you know thatā€™s got a high chance to bite you later.
But I donā€™t know their code base so perhaps weā€™ll be pleasantly surprised :slight_smile:

1 Like

At least the Cirklon dev had to add a separate ā€pre-send pgm changeā€ mode to the Cirklon for exactly this reason. He worked out the amount of time Elektrons need to react.

3 Likes

On the octatrack ( not sure about others) you donā€™t need exact time at allā€¦ since the sync is done on the octatrack, it just needs to be before the start of the pattern.
Also thereā€™s not a huge advantage doing it close to pattern end , since the octatrack allows you to ā€˜rescheduleā€™ the pattern change anyway.
so that would allow hapax, to say itā€™s going to change to p4 then say oh no, I mean p5 :slight_smile:

The only limitation is , if you change did this change very last minuteā€¦ then itā€™s likely be too late ā€¦ but that is just learning the limitations of your instruments.

As I say , not sure if other Elektrons are the same , do they have the same pattern change behavior ( definable by user) ?

All that said, I think Iā€™d use a small time offset ā€¦ just because relying on the Elektron/octatrack to do the sync - is very Elektron specific ā€¦ eg itā€™s not much use for synths, that also need this behavior

Yeah, not exact, but if memory serves, you need to send it ~4 steps before the actual change to get the Elektrons to hop on board :slight_smile:

Nope, you can do it even after the last Step. I built an external Songmode based on NeoTrellis M4 around 2 years ago, and I sent the change around 1/16th before the next pattern started. I think it could have done later, but that was my grid the song mode worked on.
Worked perfectly with DT, DN, M:C and M:S.

3 Likes

Huh, interesting! My experience is with the (mk1) big boxes - might be that something was different? Or not, and I just got the wrong idea, testing stuff out by hand at home :slight_smile:

I just rechecked the code, that I donā€™t communicate wrong facts, but it was indeed 1/16th before the pattern ends.

1 Like