ASSIGN - The most misunderstood Hapax feature

I think ASSIGN is largely misunderstood feature.

Did you ever found the name of the feature a bit odd? Maybe you still do?

I believe that ASSIGN became mostly a performance feature, because that’s what people are familiar with. The original intent might have been slightly different though, hence the name.

You see, once you look at ASSIGN and INSTR DEF as intertwined features, you’ll discover it’s actually seriously genius remote controller for your whole studio.

The magic is this - once we assign a controller from an instrument definition, any push of the encoder opens up the instrument definition list of controllers again, positioned on the currently assigned controller, which allows us to scroll up or down a couple of clicks and select a different controller instead!

Think about it - organize the CCs in your definitions into groups - i.e. OSC, MIX, FLT, ENV etc. Then assign one controller from each group to one of the encoders. Boom! You have the whole sound design aspect of the synth accessible right from your Hapax! Changing between individual parameters is a breeze - it’s not further then one encoder push and and a couple of clicks up or down away. Of course it’s not as good as having a knob per function synth in front of you, but it is actually better workflow than the necessary menu diving on many synths!

I hope it makes sense, I don’t want to bother doing a video :slight_smile:

There is just a couple of kinks to iron out, that would make the workflow free of unnecessary obstacles:

  1. Default values - I am not sure if it is a recent firmware issue or it has always been like that, but the default values from instr def are not applied to the assign pot when assigned. They always start at zero. This could hopefully be fixed and hopefully there is a consensus to do so. This has been mentioned previously [ Update CCs on assigned encoders when changing patterns? ]

  2. There is the issue of ASSIGN storing / not storing and sending / not sending values on project / pattern load. [ How does "Assign" really work? ] + [ Send ASSIGN values? ]
    I haven’t explored this in detail yet, but in the context of my interpretation of ASSIGN above, I believe ASSIGN should not store / send values automatically, that’s what automation should do and ASSIGN pots should only reflect the automation value, but not duplicate / substitute the storage of the values, that’s what automation / sequencer is for. Assign is an re-assignable ad-hoc extension of our arms.

  3. Besides the issue 1 of pots not respawning at default values, there is a somewhat related issue of pots not remembering the last value. It’s not that great to switch between multiple controllers back and forth and always start at 0. Therefore I would like the Hapax to remember last / current values for a handful of pots. Not necessarily indefinitely. Not necessarily all pots. But at least something like current value for the last 20-30 controllers touched on a given track. Doesn’t matter that much if it is flushed or preserved when powered off. It will get out of sync if we / Hapax changes patch on synth anyways - in that case the controllers could reset to 0 / default values. The main point is - as long as program change is not send, remember those last 20-30 controllers, so that when we respawn the FLT.ENV controller again, it’s respawned at the last 95 value, not at the 0 / 64.

  4. Make it possible to add empty separator pseudo-controllers to the definitions. See the pic below of how I workaround it now - we have to pick some uninteresting / unused CC and sacrifice those for separator lines. Why not have some special character at the first position that would allow us to add a separator line without any destination?

  5. Nice to have feature would be dual labels in CC definitions, where current primary label would be used in lists (15 characters long) and secondary optional 7-characters long label would be used on the ASSIGN pots. Using single label for both purposes generally makes one of the two views compromised.

CC: @Farold_Haltermeyer the first half of the above text describes a current workaround for your request [ Feature Request: Additional ASSIGN Pages ]

3 Likes