APC40/Axiom 25 w/ Java/C++

Home :: Reviews of DJ equipment :: APC40/Axiom 25 w/ Java/C++Reply
APC40/Axiom 25 w/ Java/C++
Posted on: 20.01.2011 by Tabatha Breaud
Here's the deal: I've built a music visualization software, and I'm working on integrating either an Axiom 25 or (preferably) an APC40 with it so that I can control the visualizer. I've never done MIDI programming before, so I started out by playing with Max, Bome's, and some other tools before deciding on receiving and processing the MIDI signals directly in my software. My software is currently written in Processing (which is a Java framework), but I'm building the next version in C++ with OpenGL. I'm running all of this on a Mac OS X laptop.

Here's the deal... I've been able to get all of the inputs from the Axiom 25, because each button has a unique note, and I (finally) figured out how the knobs send their signals. HOWEVER, I see way more opportunity with the APC40.

:The problem is, on the APC40 each button in a row sends the same note, with the same pitch and velocity, but on different channels. The MIDI libraries I've found for Java (I'm using RWMidi currently) don't address how to find out what channel the note was received on. Can anyone help me?

Where I am right now:

In my Java code, the library sets up the program so that this function called every time a note is received by the computer:

void noteOnReceived(Note n) {
int pitch = n.getPitch();
int vel = n.getVelocity();
// figure out which button was pressed and perform action
}

I want to find a way to have this kind of functionality, but be able to get the channel as well. I also want to know how I can have my program send signals back to the APC40 to light up buttons. Can anyone help me? I've looked everywhere. Java OR C++ solutions are welcome.

20.01.2011
Originally Posted by safefire
It does seem a bit odd though, that there isn't a n.getChannel(), or some kind of function to ask for the channel. I'm sure it is possible to get the channel somewhere, otherwise it'd be mighty hard to do anything with the midi signal.
+1 on that.
Tabatha Breaud
20.01.2011
Here's the deal: I've built a music visualization software, and I'm working on integrating either an Axiom 25 or (preferably) an APC40 with it so that I can control the visualizer. I've never done MIDI programming before, so I started out by playing with Max, Bome's, and some other tools before deciding on receiving and processing the MIDI signals directly in my software. My software is currently written in Processing (which is a Java framework), but I'm building the next version in C++ with OpenGL. I'm running all of this on a Mac OS X laptop.

Here's the deal... I've been able to get all of the inputs from the Axiom 25, because each button has a unique note, and I (finally) figured out how the knobs send their signals. HOWEVER, I see way more opportunity with the APC40.

:The problem is, on the APC40 each button in a row sends the same note, with the same pitch and velocity, but on different channels. The MIDI libraries I've found for Java (I'm using RWMidi currently) don't address how to find out what channel the note was received on. Can anyone help me?

Where I am right now:

In my Java code, the library sets up the program so that this function called every time a note is received by the computer:

void noteOnReceived(Note n) {
int pitch = n.getPitch();
int vel = n.getVelocity();
// figure out which button was pressed and perform action
}

I want to find a way to have this kind of functionality, but be able to get the channel as well. I also want to know how I can have my program send signals back to the APC40 to light up buttons. Can anyone help me? I've looked everywhere. Java OR C++ solutions are welcome.
Lewis Stumpf
20.01.2011
Thanks.

I am currently working on a controller project. If you would be willing to wait a week or two, I could ask my co-developer and programmer what he does when we get around to the midi side of things.

Have you tried looking at other libraries?
Tabatha Breaud
21.01.2011
Yeah thanks... I haven't really found where the "right" place to post this question would be, so I figured this community would be worth a shot.

What you said is my sentiment exactly... there HAS to be a way to do this, and it CAN'T be that hard. I just haven't found it... it might be because I'm new to the whole Midi programming paradigm and I don't know what I'm looking for.

Your help is appreciated.

20.01.2011
Originally Posted by safefire
It does seem a bit odd though, that there isn't a n.getChannel(), or some kind of function to ask for the channel. I'm sure it is possible to get the channel somewhere, otherwise it'd be mighty hard to do anything with the midi signal.
+1 on that.
Lewis Stumpf
20.01.2011
This might not be the best place to ask, people here are generally much more tech and production oriented than software, but I might be able to look a round a bit and see if I can't figure something out.

It does seem a bit odd though, that there isn't a n.getChannel(), or some kind of function to ask for the channel. I'm sure it is possible to get the channel somewhere, otherwise it'd be mighty hard to do anything with the midi signal.

Might be a different library would do the job?

<< Back to Reviews of DJ equipment Reply

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy