Coordinate systems

I am updating the GDIF messaging in the jmod.mouse module in Jamoma. Trond suggested to use the OpenGL convention for ranges and coordinate systems, which should give something like this:


This means that values on the vertical axis would fall between [-1 1], while values on the horizontal axis would be dependent on the size of the screen. For my screen (1280×800) this gives a range of [-1.6 1.6].

The good thing about this approach is that two axes have an orthonormal basis, i.e. that the distance travelled with the mouse is equal in both directions.

The bad thing is that we don’t know the size horizontal axis, since this will depend on the size of the screen used. Previously, when I normalised pixels to a [-1 1] range I would always be able to scale the values directly. However, that would also mean that the resolution along the horizontal dimension was higher.

I am not sure what is better, but I will try the new approach for some different setups and see how it goes.

Published by


Alexander Refsum Jensenius is a music researcher and research musician living in Oslo, Norway.