Snapshot for midi cc?

Hi,

I was inspired by the newly announced Neuzeit Drop midi controller, which allows you to tweak many parameters to build up tension and then with 1 press on a button “drop” go back to a saved state (snapshot) at the start of the next bar, to bring back order after the chaos. (If you’re not familiar with it, be sure to check out some of the superbooth video’s, it looks like a genius performance tool).

Anyway, I am in no need to expand my live setup (in size) and all my synths and drum computer have lots of (midi controllable) knobs already, so I don’t necessarily want to control those parameters using an external controller.

However, I thought that maybe Hapax can do something similar already?

What I tried:

I tried using the Snapshot feature with the Assign feature of Hapax, but it seems that Snapshot only works for midi events in the sequencer (notes and automation data), it will not revert the Assign knobs back to the value that they were when you saved the snapshot.

So I then just tried using an automation lane to send a fixed value of the midi cc number I want to “reset” at the start of the pattern. So I then have a pattern with no automation which I play while I’m live tweaking the knobs and then when I want to “drop”, I launch the pattern with the automation event.
However, this didn’t work at first either! I found out that Hapax suppresses sending double midi cc values and since I tweaked the knobs on the synths themselves, Hapax didn’t send any midi to it and the last message it sent to the synth is still that one message I programmed in the automation lane which it refuses to send again.

Even when I’m sending midi cc back from the synth’s knobs to Hapax, it won’t send the midi event in the automation lane anymore. The only thing that works is to set a different midi cc value in the other pattern at the start, but that’s not really desirable.

I know you could use program changes and they recently added the ability to make a pattern ALWAYS send the program change upon launch, but this doesn’t always work in my setup. For example: I have a digital mixer which I want to “reset” the mixer track faders, but I don’t want to reset the whole scene. Also, some synths don’t behave nice when sending program changes (glitches, audio drop outs, etc).

So does anyone know of a way to do this?

On a side note:
I also tried linking the knobs of the synth to the Assign knobs of Hapax to make them easier to tweak, but couldn’t find a way to do this. Any ideas if this possible?

3 Likes

Anyone? :roll_eyes:

@Thibault_Squarp Is it possible to make a pattern always send the programmed automation, even when the last message Hapax sent was the same?

I assume Hapax uses something like a cache or something to remember the last send midi message of every midi cc to suppress sending repeated messages?

It would be very useful if Hapax would (optionally) “reset” the midi “cache” when a new pattern is launched.

Or maybe Hapax should “update” the midi cc “cache” when it receives midi messages of that particular midi cc from an external controller on the same midi channel that Hapax is sending to (the synth it is controlling), so Hapax “knows” that the actual knob is moved and it does make sense to send the midi cc message that is programmed in the automation lane. (Maybe it should only work when the track midi input is set to a specific port to avoid misinterpreting incoming midi)
Example: Track 1 is set to input = Midi A and output = Midi A, both midi channel 3. An automation lane in pattern 2 is set to send a midi cc 73 message with a value of 30. Then Hapax receives midi cc 73 messages from Midi A channel 3, so it updates the “current” value of midi cc 73, so even when the last midi cc 73 message Hapax sent to the output was 30, whenever pattern 2 is launched, it will send midi cc 73 with a value of 30, except when the last received value also was 30.

Once upon a time, I had made a special request for something similar from the plugin developer PizMidi and he made a plugin called midiCCReset that would store all received CC values and send them out when triggered. Super handy tool, but what I recall, at least when using on a PC is that the burst of data could be so dense that it would choke the MIDI buss. I worked around this at the time by using a module in my host (Usine) to insert a small delay between sent CC values, which of course resulted in changes of large amount of CC’s not being 100% instant.

My reflection here is a bit off topic I guess but makes sense in context to the sort of utility that I think you are suggesting. I agree that it would be great to be able to send CC snapshots to external devices however it might also have the unfortunate side effect of choking the MIDI stream on that port. I am not totally sure what the limitations are, but maybe this is something that makes this sort of function difficult to implement.

1 Like

its generally older or over taxed devices that cant handle lots of midi at once. i think if you might be able to get away with using a program change you wouldnt need this sort of thing as much. thats what i do, save a bunch of related patches in say, my preenfm2. the program changes instantly so they can easily be sent from a single track to make it sound more sophisticated than it is. but of course the proof is in the end result. i use cc along with pc and im able to animate my synths deeply imho but its all in your ear i guess. and maybe your sense of drama. i actually love a synth with deep cc support. its a joy to add animation! but pc can be used just as effectively

1 Like

theres other shit like this but you can make this send a cc again.

also my mpc 1000 with jjos2xl will let you put a pc or cc on any pad which can then be quantized or swung etc. you could even trigger the pads from hapax with any timing or arpeggio or euclidean sequence etc. i bought my mpc 1000 from japan recently for $450 shipped and i swear it was new. and i got the great percussion sampling engine to boot! its deepish and can be controlled!

failing that, i use my own windows modules to run reaper hosting anything at all. then i use stuff like plugin guru unify that runs any midi plugin follwed by any synth and fx plugins in many layers with response curves everywhere and a macro system that is unreal. you can also output midi to hardware. all multilayer assignments or ‘patches’ in unify can be dynamically switched between! have a few open at a time. send your patch to a friend who also runs it with the same synths and pick up where the other left off!

or a lot of control is built into dirtywave m8s midi tracks and they dont need to be fed from its internal sequencer. you can loop back to another midi track and have twice the modulators, and midi tracks are also based on the instrument list so make up to 128 instruments in the pool set to midi output or loopback with separate modulations defined etc and switch between instruments with pc from hapax. this creates a whirlwind of possibilities if used correctly. you have 8 tracks to work with and some incredible instruments too! which are amazingly midi responsive, same instrument pool paradigm.

many performance software meant for live shows do the midi shotgun type of thing although ive gone for other options. honestly hapax is enough capability for my needs. btw im fairly certain ill get that drop controller at some point. looks mental

I’ve opened an issue on that matter, I’ll discuss it with the team

4 Likes