"Fixed Position" Logic?


#1

Is there a way to set a CC object so that it ignores incoming values until it receives one of a greater value than it is set to?

For instance, if I have a patch where the value of a CC dial is 50 and the knob on the controller is at 0, how would one set up the maths / logic so that the dial doesn't start moving until it receives a value of at least 50 to stop it jumping down to 0 as soon as the knob is turned.

MIDI noob and Axoloti noob... Suspect this is to do with "relative" positioning :confused:


#2

Use this math object: math/>c


#3

So this gives me a value of 1 after the controller sends a value above 7:

How do you convert the output of math/>c so that it gives a range of 8 to 64 so it can be piped into the pitch of an oscillator, for example? Sorry if this is obviously the wrong approach...


#4

I suspect the math/max object is what your after...
(feeding the previous outlet of max, back into one of its inlet, there by always keeping the latest maximum value?)

however.... I also suspect this is still not what your after...
the usually implementation (on synths), is to only start changing the value (up or down) once you hit the 'current' value...
so its not just max.

there has been some discussion about this here.... (sorry you'll have to search) , I think the ctrl/hook value does what you want, ... if not essentially you can do it 'manually' with a combination of max/min and latch. (too involved to go into now, sorry)

hmm, actually that reminds me, I need to update ctrl/hook as it requires the reset inlet, as per discussion in the other thread.


#5

Great, I'll experiment with those objects and look around the forum. Thanks as always.


#6

Sorry, I was on my way to work earlier, so I couldnt give an example.

This does what I think you want to do. Copy it into a subpatch or patcher:

When the input is larger than "min value" the input takes over. So basicly everything under 15 is not passed through. As soon as you get above 15, the input will be passed through :wink:


#7

I've found this works quite nicely, ignoring incoming messages below a certain value and then acting as normal with the added advantage that you can then go down below the set value once it has been exceeded (ignore until 25, then ignore 25):

Also this patch is good for setting a lower and upper range for CC values (only working between 5 and 30 here) - just an expanded version of your example @jaffasplaffa :+1:


#8

Actually, just noticed that top example isn't quite right. It will ignore anything under 25 but if the encoder value starts above 25 it still jumps to meet it... Need a bit more maths in there.


#9

I'd be grateful of an example of this if you have time? I understand how the ctrl/hook is useful here but how would I use the other objects in conjunction with it to give me a complete "ignore until value is seen, then ignore value" logic?

(I did search as suggested but didn't find anything very specific on this.)