I2DX Save

Web-based IIDX controller for iPad / iPhone / Android (with Opera Mobile) (with server for Mac / Windows)

Project README
  • Scroll Down for installation instructions (Windows and Mac OS X).
  • Go to Download Page to download latest version of i2DX.


Video Demos





i2DX is a web-based IIDX controller for iPad / Opera Mobile. One night project 2011-10-04.

You can use it with StepMania 5, especially with the beatmaniaIIDX15 theme. You can also use it with Lunatic Rave 2, or other sims as well.

Because it is web based, you just need to run the server application on your computer, and then point your device's web browser to the server (they must be on the same wireless network!). No application installation needed on the device. (I particularly like this because I could borrow someone's device and use it as a scratch controller [see below] :P).

It uses the following technologies:

How it works

The server serves the file to the device's web browser, which connects back to the server via WebSocket and send the press / release events.

On Mac: The WebSocket server then sends these events via OSC to OSCulator, which can then be used to map the received OSC events to joystick events and pass it to the game.

On Windows: The WebSocket server then use autopy to press the keys.

The Controllers

Main Controller

Alternate Controller (scratch on the right)

Scratch Controller for iPad

Scratch Controller for Small Screens


  • A computer with beatmaniaIIDX simulator (I use StepMania 5 with IIDX15 theme)
  • An iPad or an Android tablet device with Opera Mobile
  • An additional device (iPad, iPhone, iPod touch, or almost any touch Android phones) (optional, used as a dedicated scratch controller)
  • A working WiFi connection (may or may not have internet access. In my opinion, ad-hoc is the best)

Server Instructions (Mac OS X + OSCulator)

Install Python 2.7 first.

Then you have to install OSCulator, and then use Terminal to install Tornado and pyOSC Python modules.

sudo easy_install-2.7 tornado
sudo easy_install-2.7 https://trac.v2.nl/raw-attachment/wiki/pyOSC/pyOSC-0.3.5b-5294.tar.gz

Open OSCulator and set it to port 9000.

Then, cd to the server directory and then

python2.7 server-mac-osculator.py

to start the i2DX server on port 9876. Make sure the port is accessible from the device.

Now navigate your client to the the server (see Client Instructions below).

If you press a button and the text changes to "Disconnected", then the key presses could not get through to OSCulator. Fix it and refresh the page and try again.

Press the buttons and try out the scratches. The OSC messages should show up in OSCulator. Then in OSCulator, map the messages to the joystick events and enjoy!

Server Instructions (Windows + autopy) (Easy)

Just download the latest i2DX-Windows-abcdefg.zip, extract, go to server, and run server-windows-autopy.exe.

On your device, open a web browser and go to i2DX (see Client Instructions below). Try pressing the buttons, it should type something on your keyboard.

Then open your game, and set the keyboard config, and enjoy!!

Or if you want to change the key when the button is being pressed, edit key-config.txt. (Do not leave any blank line.)

Server Instructions (Windows + autopy) (Advanced)

Download Python from python.org. I use Python 2.7 as of time of writing.

Then download and install AutoPy.

Then download and install setuptools.

Then open command prompt and run

C:\Python27\Scripts\easy_install tornado

(replace C:\Python27 with where you installed Python)

And then go to the server directory and run server-windows-autopy.py.

Now navigate your client to the the server (see Client Instructions below). Try pressing some keys, it should type something on your keyboard.

With that set, open your game and map the pressed key to the corresponding input!

Client Instructions

Android Users: use Opera Mobile!

For Opera Mobile: before using, go to opera:config and search for WebSockets and Enable WebSockets first, then tap Save.

Then, use your device's web browser to navigate to

http://[your ip]:9876/

You will see a launcher. Set the settings and click Launch i2DX.

If everything works correctly, then it should say "Ready" at the top left corner.

You can bring another device to use it as a dedicated scratch controller. I borrowed my friend's iPod Touch for this. He also has a mat for his iPod so that it doesn't slip when he plays jubeat or other music games on his iPod. Just telling you a story. ;p

On the iPad, the dedicated scratch controller supports rotational movements, so if you can borrow another iPad, then you can use it as a scratch controller! On other devices, it only supports up / down movement, but it can be used to make the buttons and the turntable farther.

Now that if you have a scratch controller, you may not want it on the main controller anymore, you can move the scratch area of the main controller to the right.

Hard Mode

In normal mode, you can slide between buttons. On real machines / controllers, you might not be able to do that, so in hard mode, you cannot slide between buttons.

OSC Message maps

  • /key/0: Key 1
  • /key/1: Key 2
  • /key/2: Key 3
  • /key/3: Key 4
  • /key/4: Key 5
  • /key/5: Key 6
  • /key/6: Key 7
  • /key/8: Scratch Up
  • /key/9: Scratch Down

Keyboard maps (Windows)

  • m: Key 1
  • k: Key 2
  • ,: Key 3
  • l: Key 4
  • .: Key 5
  • ;: Key 6
  • /: Key 7
  • [: Scratch Up
  • ]: Scratch Down
  • o: Start
  • p: Select

You can change key mappings in server\key-config.txt.

Open Source Agenda is not affiliated with "I2DX" Project. README Source: dtinth/i2DX
Open Issues
Last Commit
8 years ago

Open Source Agenda Badge

Open Source Agenda Rating