Can't do JUMPs on the dance mat

In some cases if you connect your dance mat (and/or did not bind your controls) you won't be able to do JUMPS. This is dependent on the dance mat you are using.

Following steps will help you fix this:
  1. If you have not done so you MUST set your control mappings in Settings/Controls
  2. (since 2.4.1) if the previous won't help go to Settings/Controls and set "Controller buttons only" to "YES" and bind your controls again
  3. Wait for new updates - I'm working on this!
If you are interested on why Android has trouble with multiple arrows being pressed at the same time - continue reading.

Explanation

When your dance mat is connected via USB OTG port and recognized by android it is recognized as a standard HID device (basically a game pad).
Game pad can send 3 specific kinds of commands:
  1. DPAD action - Standard for menu
  2. Axis - Analog controls
  3. Buttons (A,B,X,Y, L1, R1, Start, Select/Menu are standardized, everything else is up to the hardware manufacturer (sometimes they wont even stick to the standard buttons)
Most of the dance mats send multiple commands when a button is pressed. For example my X-PAD Profi sends following commands for left arrow:
  • Button 189 down
  • DPAD - Left
  • Axis 1 - value "-1"

Why binding the controls fixes the issue?

At the time the DPAD standard was developed they defined it not as separate button press but as a direction (e.g. possible are LEFT, LEFT/UP, UP, UP/RIGHT, RIGHT, RIGHT/DOWN, DOWN, DOWN/LEFT, CENTER and nothing else).

This is clear from the construction of the JOYSTICK - there just is no such thing as UP & DOWN or LEFT & RIGHT and the interface does not allow for such values.

Because by default BeatX has no chance to know which buttons your dance mat uses - it is configured to use DPAD commands so you can navigate the menues and bind your controls.
Therefore if you use the default bindings - DPAD actions will be used and you won't be able to do LEFT/RIGHT, UP/DOWN jumps

Why the "Controller buttons only" setting fixes the issue

While binding of controls the game takes the first command your dancemat/gamepad/keyboard sends and assigns it to the specific action. This includes Axis, DPAD and Button controls

This works great if your dance mat sends Button action as the first command. But if your dance mat sends the AXIS command as first, it will bind the axis and the button action will be ignored.

Axis actions are value of the axis in the range of -1 to +1 e.g. LEFT is Axis(0) = -1, CENTER is Axis(0) = 0 and RIGHT is Axis(0) = +1
This leads to a similar situation as with the DPAD where there is no such possibility as Axis(0) equal to both -1 and +1 at the same time.

The "Controller buttons only: YES" ignores all actions except Buttons - which helps you to bind the proper binding (button assignment for given action ignoring the previously send AXIS actions) and therefore will allow you to do JUMPS because Buttons are send as separate commands.

Wait for updates

If the steps did not help you still have hope. I'm still working on this..

Feedback and Knowledge Base