0xtob suggested I share with you guys this program I've been coding up. I've used his DSMIDIWifi library to build a unique, original MIDI-Controller that takes advantage of the DS hardware in formulating a new instrument - one in which you can essentially "draw music." I am hosting this project at my website -
http://www.andrewbuch.com/prog.php
There have been similar products like this before, such as Harmonix's AXE and it's DS homebrew version. However, in this case you actually have full 1:1 musical control over what you are doing.
Here's how it works. You first hit Start to connect to the network. Then set the channel you want to send MIDI on with the X & Y buttons. You then use the D-Pad to set what key and octaves you'll be playing in, choose a scale/mode with the A & B buttons. All of this is explained on the top-screen, and your choices are reflected up top as well.
On the bottom screen you will see a gradient of lines fading from left-to-right, resetting every 7 lines. These represent the notes of the key/scale you chose. For example, if you chose "C3 Major," the leftmost black line is C3, and each black line going right is another C (C4, C5, etc.) All of the gradients in-between are notes from the scale you chose.
To play music, you just draw across these gradients. The pressure of the stylus determines the Velocity of the note, and will also send Aftertouch data while you are holding a single note. The axis that is not controlling pitch can be used to send MIDI CC#1 (Mod-wheel data).
There are a couple of additional features. Holding the shoulder button sends out MIDI CC#64, which is the equivalent to holding the sustain pedal on a MIDI keyboard. You can toggle "modes" with select - as of now, there is a horizontal pitch, vertical pitch, and controller only mode. In controller only mode, it acts as a KAOSS pad - with both axis sending controller data (controllers can be assigned with the D-Pad). Finally, since sometimes note-off messages aren't always received, hitting Start will sweep through all the notes and make sure they're turned off.
Anyway, that's my program. I'm planning on eventually implementing a stand-alone mode which can be used with the DS on it's own, as well as refining the pressure sensitivity (right now it's soley calibrated to my own DS) and possibly adding a rhythmic-filter mode.
Please let me know what you think. I've taken down the source temporarily, but if you want to take a look at it let me know as well. My email is me at andrewbuch dot com.
-Andy