gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS homebrew announcements > MIDI-Jammer v1.1

#152273 - phnord - Thu Mar 13, 2008 2:44 am

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

#152282 - fhy - Thu Mar 13, 2008 9:46 am

phnord wrote:
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.
Very good idea, but I can't understand this part. hitting start connects the DS to the computer? how do you add the DS to the computer (I'm on Mac but windows explanations will also do)

thanks

edit : You have to use DSMI isn't it?
I've found this site :
http://dsmidiwifi.tobw.net/
Am I right? I'll try at once.


Last edited by fhy on Thu Mar 13, 2008 9:55 am; edited 1 time in total

#152283 - GameV8 - Thu Mar 13, 2008 9:47 am

Sounds very very promising. As for "refining the pressure sensitivity" you may want to take a look at "Colors 1.06" if you haven't already.
_________________
"For Devils and specters this is law. Where they have entered, there they also withdraw. The first is free to us, we are governed by the second."

- Mephistopheles

#152284 - fhy - Thu Mar 13, 2008 10:08 am

fhy wrote:

edit : You have to use DSMI isn't it?
I've found this site :
http://dsmidiwifi.tobw.net/
Am I right? I'll try at once.

auto quote!
it works! I followed the instructions, apart the setting of the Airport card.
FYI, my Mac is connected by ethernet to my ADSL router, which also is a Wifi router, and my DS was already configured to connect to this ADSL-Wifi router, so no additional network setting needed.
So I'm able to test this app, as a non musician I find it great! thank you!

#152286 - Cid2Mizard - Thu Mar 13, 2008 11:02 am

And a simple player midi files, it's possible ?
_________________
www.nintendomax.com 100% Hack 0% Warez

#152314 - phnord - Thu Mar 13, 2008 6:44 pm

Thanks for the feedback so far - I really appreciate it.

I actually got the code for the pressure sensitivity from Jens (who made Colors). I haven't had a chance to implement calibration yet. The main reason is that this is my first DS app, and as opposed to learning all of the in's-and-out's of the hardware (such as different graphical layers an whatnot), I have only thus far learned the very basics and implemented my program based on those concepts. For example, I am currently using a single layer for all of the graphics, and am writing directly to the Video RAM - which is incredibly inefficient given the DS' built-in capabilities, which I haven't learned yet.

This is also why something like a midi-file player isn't possible yet. I haven't had the time to learn how to control audio with the DS, let alone build a midi engine of some kind.

Once I have a chance to learn more about all of that (maybe not until the summer), I plan on revamping the code - and including things like menus, calibration dialogs, and internal audio. Until then, I hope you enjoy what I have so far.

Please let me know if you guys have any other feedback or advice.