Define Footswitch as hold button

I would like to use the footswitch as a hold button. As long as I push the switch the plugin should be on. What do you think?

6 Likes

We have the most heated discussions here about this possible feature :slight_smile:

Maybe you should also talk about tapping the tempo with the footswitch. That would be nice. :slight_smile:

Why is it heated? What are the concerns?

1 Like

There’s so much more under the surface when you start to involve “time” into a control surface…

  1. How long does it take to differentiate PUSH from HOLD?
  2. Do you send a PUSH event and then HOLD, or wait until duration X (see 1) has elapsed?
    2.1) waiting is bad - what if the event is a tap tempo? We don’t want X ms delay there!
    2.2) PUSH and HOLD event is not possible (or very difficult to implement) - how do you know to “cancel” the PUSH? Is that even sanely possible?

That’s a quick intro :slight_smile: There are more details - I just can’t think of them right now… -H

So you think about using it as a push and hold at the same time? I didn’t even think about that option. Isn’t it easier to just declare if you want push, hold or tap tempo? And to send push and release events?

2 Likes

Ah OK - you were requesting another mode “hold”, not “Push and Hold” together. Apologies for my misunderstanding.

Hold is technically just a “down” message and at some point later, an “up” message. I forget the details, but I think that should be a lot more managable than having two types at the same time. @gianfranco thoughts?

-H

2 Likes

I’ve got to chime in. Some effects really are better controlled through a momentary footswitch, which I think we’re calling a “hold” here. I have several plugins that I would under certain circumstances want a latching switch and other times a momentary. Depends on the song. If some plugin wants to try to do some logic based on the switch being pushed and held, let the plugin do it. However as a host the control is on or off, the switch is down or up, and either it latches or releases when your foot comes up. For momentary you probably also want NO and NC modes.
Anything more than that, maybe could be cool, but might not be worth the complexity. OTOH simple momentary switch mode IMO is a must.

1 Like

Tapping is on the near roadmap (we already had it on the MOD Quadra), but it is implemented in a different way than normal.
Traditionally plugins have a TAP button and only need some kind of pulse coming in to internally calculate the tempo.
In our case, due to the fact that LV2 offers port metadata, once you have a control port with tempo related units ( Hz, BPM, sec our milisec) the GUI offers the footswitch as an addressing option (even tough it is a continuous control).

The controller in this case activates a cronometer and reads the time of the foot tapping, sending the correct info for the plugin (who is totally unaware of the tap tempo function).

The coolest part of this approach is that we don’t require the plugins to implement a tap-tempo function, but simply work with real world units and numbers.

1 Like

Right. Thats a cool feature that LV2 enables, but for plugins like the infamous stuck (which I’m in the middle of revamping) a momentary switch option would make it much more useable. Also for the infamous power cut. I hope momentary switch control is on the roadmap.

2 Likes

what exactly you mean by momentary @ssj71 ?

I mean when the switch is pressed the port is set to 1 and when you lift your foot it goes to 0. Thus when you stop pressing the switch the effect turns off again.
The usual mode is toggle where you press the switch and it changes to 1, lift your foot, it stays at 1. Press again to toggle to 0.
So there should probably be 4 switch modes total: 1. toggle 2. tap tempo, 3. momentary default off, 4. momentary default on.
rename as you please.

See this vid: https://youtu.be/bPeeJrv9wb0?t=1m20s momentary would be fast or slow mode on the freeze, latch would be the usual toggle mode.

From what I understand this is what @nils was asking for also, but I’d like him to chime in again.

2 Likes

got it!

so, “lv2-wise” we’re talking about a Toggle :slight_smile:

I guess the name “Momentary Toggle” would make sense.

Now, does the “Defaut On/Off” should be adopted for a single one of them - I’d say Off - and the plugins comply with this defaut or should both options be offered?

we are talking about an LV2 toggle port yes.

But the actual HMI though… if you were building a pedal you must choose a toggle switch that clicks or a momentary switch. If you want a momentary switch you could buy a NO (normally open) or NC (normally closed). This is where I’m coming from and how I’ve always hoped a host would expose the toggle control of my plugins.

Now, does the “Defaut On/Off” should be adopted for a single one of them

  • I’d say Off - and the plugins comply with this defaut or should both
    options be offered?

I think it would make sense to have the default be normally off (I think this would work fine with all my plugins), but some way to switch it to a normally on. You never know what people are going to do with it. Or start with one and wait till someone asks for the other.

That sounds good

Now, regarding the LV2 perspective, we use the metadata to offer only the actuators that make sense for addressing controls.

Continuous ones are not offered the footswitches (unless it is time based control) and we still must implement both Trigger and Toggle on the Knobs.

I suppose that if the plugins only specify a Toggle, then our system would not know if it should offer Momentary or Traditional toggles and would end up offering both. Could this be bad for the plugin?

Because, if that is, then we need to create an LV2 extension to specify that.

Agree?

I see. I didn’t think we were talking about continuous controls. The behringer fcb1010 I have actually allows you to assign two values to a switch that it will toggle between (i.e. press 1x CC7 goes to 78, press again, it goes back to 24). This allows for something like a volume boost, or a longer reverb when the solo comes up but there are lots of ways to achieve that, so I think it shouldn’t be prioritized.
OTOH its not impossible to implement press and hold behavior on a continuous plugin. We do that all the time on our products at work. 1 click would raise or lower the control by 10% of its range, but holding would make it slowly raise up to the max value. OR it could even oscillate up to max and back to min on press and hold. Release the button when it reaches the value you like. TBH though, how useful is that really on a stage? Just use a tablet to change it or a pedalboard preset when that feature arrives. I think it would be a nifty feature that wouldn’t ever actually get used.
As mentioned you’ve argued about it internally, but I think it should be a pretty low priority.

For my plugins no. In many instances it is unlikely the user wants momentary behavior (who wants to hold down the button the whole chorus they want that overdrive?), but it also wouldn’t break anything if they set it to momentary. To the plugin it is transparent, it just offers a convenience to the user if its an effect that is used for only a short time or you want an exact press length (like a 1 button looper). I believe there is already the designation pprops:expensive that indicates if its a bad idea to change the value too often.

There actually already is a property pprops:trigger which could make it a momentary switch, but then would the user be able to switch to “latch mode” (toggle) if they want? (I actually haven’t added this property yet to my plugs, but I will).

I think a good user experience would be if you map the button to a lv2:toggled control it defaults to a toggle switch (or a momentary if its got the trigger property), then you can select in a side menu or context menu or something (I haven’t used the modUI much yet so its hard to propose something) to change the switch type.

Any news on this feature? I’ve wanted to try writing a plugin that emulates the Boss DD-6 “warp” mode: https://www.youtube.com/watch?v=vGPzuQeEmUg

2 Likes

Really anxious for this feature, wanna implement a single button looper ( like this https://www.youtube.com/watch?v=7UE-XHbIBlQ ) so i can use the others as Reverse and Panic!

2 Likes

Another development along this line could be ‘hold-to-activate toggle.’ Meaning, pressing and holding a footswitch (for a definable window of time) would toggle the state of an assigned parameter. Further meaning that any momentary presses would be passed through. Thus, one footswitch could interact with two different parameters based upon a foot gesture.

This could lead further to functionality like ‘double-click to activate.’

I’d use this functionality in all my pedalboards if it became a feature.

6 Likes

Any updates on this yet?

No updates as of right now