Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/halfbyte/nds-oscpad

an nintendo ds homebrew application that sends OSC (Open Sound Control) data for touchscreen data, button presses etc.
https://github.com/halfbyte/nds-oscpad

Last synced: 4 days ago
JSON representation

an nintendo ds homebrew application that sends OSC (Open Sound Control) data for touchscreen data, button presses etc.

Awesome Lists containing this project

README

        

h1. nds-OSCpad

h2. What OSCpad will be:

* An nds homebrew application that is basically a very flexible controller sending OSC (Open Sound Control) messages for almost every input available.
* A reference implementation for sending OSC data over the DSWifi connection
* (eventually) my first successfully completed NDS app (har har)

currently, OSCpad is plainly sending OSC messages over UPD to a hardcoded IP adress (10.0.2.1, as it is my Mac Wifi sharing IP).

h2. Rationale

There's a de-facto standard for sending musical controller data from the Nintendo DS over Wifi to other devices, created by TobW and called DSMI. It works by sending MIDI data over a proprietary network protocol and decoding it on the host machine using the desktop application that comes with DSMI.

This is a great idea and it works pretty well. It is widely supported and there is a huge range of apps using it.

Now, there has been a standard for sending controller data over the 'net, called Open Sound Control, which emerged from a MIDI successor (*that* never happened, though) to some general, flexible protocol to send all kinds of controller and other data back and forth between applications and hardwares. There's a lot of software that supports receiving and sending OSC data, especially in the whole art/multimedia space: Programmes like PureData, Max/MSP, Supercollider, Processing etc. all support OSC.

So, with all the different sensors for the DS, like the touchpad, the ndsmotion and all the buttons, an OSC implementation for the NDS looked kinda obvious to me. It is not thought of as a better solution than all the DSMI software, but as a different solution for a different crowd.

h2. sent messages

* Touchpad samples: /nds/touch ,iii (x,y,pressure) // pressure's currently not working, I seem to use the wrong formula. Messages are sent as long as the pen is down.
* Touchpad events: /nds/touch ,s (event) where event is UP or DOWN for KEYDOWN and KEYUP
* NDSMotion samples /nds/motion ,iiii (x,y,z,gyro) // currently I'm sending the raw values, I'll switch over to the calibrated values soon.
* Button Event: /nds/button,ss (button, event) where button is one of UP DOWN LEFT RIGHT R L X Y A B START and event is one of UP DOWN.
* Special Button Event /nds/button,ss (button, event) where button is LID and event is one of OPEN CLOSE

h2. planned messages (not yet implemented)

* Microphone Volume sampling: /nds/mic, i (volume) where volume is simply the sampled volume on the NDS mic. (LOWER PRIORITY)

h2. Visualisation

* the touchpad should respond to touching. The top screen could display all the button presses.
* Some kind of backchannel could be nice, like displaying a LED bar like thing or something.

h2. Configuration

* will be done via config file, I guess, probably with a UI for it later on.

h2. Credits & Development

All application code is (c) Jan Krutisch

Thanks to the devKitPro/devKitArm/libnds team for making this possible.

h2. License

This is likely to change, but for now its the WTFPL.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004

Copyright (C) 2004 Sam Hocevar
14 rue de Plaisance, 75014 Paris, France
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. You just DO WHAT THE FUCK YOU WANT TO.