X-Y Pads like in DRAMBO

I currently use Drambo on an Ipad to control some stuff in Ableton. I love Drambo’s X-Y pads because of two useful features - ‘Spring’ and ‘Bipolar’.

‘Spring’ on/off determines what happens when you take your finger off the X-Y pad. Does it stay where it is or does it spring back to it’s zero position?

‘Bipolar’ on/off determines whether the zero position is in the bottom left or in the middle (basically Bipolar vs Unipolar’.

However, I can’t resize the X-Y pads in Drambo. Or change their colours etc.

Does anyone know of an Ipad app which can definitely allow me to build X-Y pads with these ‘Spring’ and ‘Bipolar’ features?

Thanks in advance!

Loopy Pro allows you to build custom MIDI control surfaces. You can have an xy pad with follow actions set so that the values snap to a set of your choice. Unsure about what bipolar does but you most likely can achieve that too.

Thanks for the reply!

I do own Loopy Pro and have used it to build a few things etc.

I’m still not sure that it can do the springing though. Basically, on the X-Y pad (or a very small button next to it), a control to turn spring on and off.

It doesn’t snap values to a set of choice, just sets whether the dot/crosshair resets to the bottom left or remains where you left it, when you take your finger off.

Bipolar/Unipolar is like the difference between a mod wheel (unipolar because off is at the bottom), and a pitch wheel (bipolar because off is in the centre).

I’ll have to dig into Loopy Pro and see if it can be done!

It is possible to detach the pads and position/resize them as desired if you hit the button next to “edit.”
It’s not the most seamless thing, and you don’t have options to customize their color; but you might still find it useful.

Thanks for this!

I knew about the pop-up button, but forgot you could re-size it etc.

There’s a couple of problems with it however…

The main one is I need access to the Spring button on each X-Y pad, meaning I’d still be limited to the number of standard sized X-Y pads I can fit on a single screen.

The other is that they all disappear when I reload the project, meaning I’d have to resize them all every single time I start.

I might hit Jacek up with a feature request (again :grin:)

Appreciate the help, thanks!

I got a chance to look at this in Loopy Pro tonight, and it’s actually quite easy to set up XY Pads that I think will do exactly what you want.

Here’s one that I set up to adjust filter cut-off and resonance for example:

You can adjust the range used for the pads:

And you can set actions on release (the “spring”) - like setting the value it jumps to, and how long it takes to reset (instant, time in milliseconds, or synced).
These actions can be run together (resetting both X and Y) or sequential (resetting X, then Y, etc).

It was a little confusing at first because you have so many options to hand, but you want “Adjust Audio Unit Parameter” which will then give you a searchable list of everything the AUv3 exposes via MIDI.

1 Like

Super useful, many thanks for this!

Loopy does have a massive amount of parameters. I love this about it though! I wish all apps had this much attention to detail.

I’ve just been looking at doing this in TouchOSC, it seems to have basically the same parameters as Loopy.

The one problem I can’t seem to overcome, however, is this:

I want a small button next to each X-Y pad to turn spring (release) on and off. So I can decide in the moment whether it springs or not.

I’m probably asking too much!

It’s another little detail, like so many others, that the Drambo dev has got so right. I might just end up having the X-Y pads in Drambo, and just accepting the fact that I can only fit 10-12 on the screen.

I really appreciate the all the help, btw!

I can’t see any way to set that up in Loopy Pro, but it’s possible I’m overlooking something.

One way to work around that might be to have one page of pads that hold their value and another that springs back. Not sure if that would work for you.

I’m not seeing a quick toggle for that behavior in Drambo either though - I have to dig into the edit mode to switch one of the pads.

This would present problems like not knowing which one I touched last etc, especially with a lot of X-Y’s (would be across 3 Ipads).

It’s not ideal having it in the edit mode, but the way Jacek has programmed it is very clever. You can hold your finger on the pad, then also tap the edit button, make any changes, tap edit again, and it’s like you never removed your finger.

So you can turn spring on or off, whilst you’re in the middle of using the pad, seamlessly.

I seem to remember (could be wrong here) that an earlier version of Drambo actually had the spring button on the front of the control. If that’s true, not sure why it got moved… maybe because those controls are not modulatable internally?

Anyway, I’m also in contact with the TouchOSC dev, seems it may be able to be done in there!

1 Like

Okay I kind of, sort of, worked it out in Touch OSC.

It’s possible at least to have a button which turns Pull on and off. Requires some scripting, which I don’t understand at all yet.

This is it though:

function onValueChanged()
local xy = self.parent.children.xy
xy:setValueProperty(‘x’, ValueProperty.DEFAULT_PULL, self.values.x > 0 and 100 or 0)
xy:setValueProperty(‘y’, ValueProperty.DEFAULT_PULL, self.values.x > 0 and 100 or 0)
end

I worked out you can change that value of 100, it can be 20, 40, 60, 80, or 100. At 100 it snaps back instantly. Other values are slower rates.

I still don’t really have a clue what I’m doing. I just looked through the Example setups on TouchOSC desktop app, there was one which had this in.

I actually worked out a more versatile solution in Drambo. Have a couple of knobs next to the X-Y pads, controlling the Rise/Fall rates on a Slew Limiter. Run the signal through the Slew, job done. It’s better because you can have a variable pull, only thing is you can’t see it slewing. It moves instantly but you’ll hear it move slowly.

Of course, that’s only good for MIDI, not OSC, which I’m trying to get into as an alternative to MIDI.

1 Like

This is better though: (thanks the very helpful TouchOSC team :smiley:)

function onValueChanged(key)
root.children.xy1:setValueProperty(‘x’, ValueProperty.DEFAULT_PULL, self.values.x * 50)
root.children.xy1:setValueProperty(‘y’, ValueProperty.DEFAULT_PULL, self.values.x * 50)
end

You simply create a Radial, and paste that in the scripting section.

Then the Radial controls the Pull directly, also it’s no longer fixed to 20, 40, 60, 80 , 100. It seems like it can be any value.

Seems like TouchOSC is the dogs bollocks after all!

1 Like