Forum rss-feed


Developers: MIDI key illuminator

Most Recent

written by: NothanUmber

Ok, here a Windows version of the MIDI Illuminator agent for EigenD 1.4.12. Please have a look at the contained Readme.
If it doesn't work just come back to me and I can have a look.
(As far as I can remember, there were problems with very big setups - like the Alpha3 setup. Because the way layouts are handled is more on the memory intensive "brute force" side. Here it might help to experiment with the "light" versions (also included - but not fully tested if I remember right), that use less memory - but also offer fewer features.)

Also added the complete sources in the state I left it. (Not prettiest possible, this was mainly for learning how things work. Wanted to clean it up but never did... - but it should work.)
P.S.: Forgot to add the Stage tabs. If the folder should be empty - please redownload

written by: barnone

Sun, 13 Nov 2011 00:33:25 +0000 GMT


Seems when I try to attach gdb debugger, can't set a breakpoint. I guess this is not DEBUG build? Hmm, how do I do a debug build here?

Pretty burned out at this point. This might be enough for today before I fry my entire weekend.

BTW I think I see the OSC port for stage. 55554. But haven't tried sending stuff there yet.

Well, at least this stuff is open source and we can actually find answers ourselves. Not always the easiest but beats the black box by a million miles.

written by: NothanUmber

Sun, 13 Nov 2011 00:37:40 +0000 GMT

My "brute force" method to make at least the midiilluminator.cpp debuggable without having to turn the build scripts upside down was the

#pragma optimize( "", off )
#pragma optimize( "", on )

trick, that works with the Visual Studio compiler.

Regarding OSC: Did some tests while the Mac OS build compiled, did not get it to run in a first attempt though :/
Added a few traces to /plg_language/ to get the port and the osc path:

: get OSC port
: port = '55551'
: OSCPath = u'/pico_midi_light_controller_1/keys/key_2'

but if I set up Bidule as OSC client with this port on localhost and send integers to this path nothing happens. Perhaps somebody from Eigenlabs can explain how OSC with Stage is supposed to work?
Now the Mac OS build should be built, have a short look - then it's also bed time for me...

written by: NothanUmber

Sun, 13 Nov 2011 01:15:29 +0000 GMT

Tried it with Mac OS (still on Snow Leopard) and Pico - works! :)

Here what I did as a test:

pico manager create
midi input create
pico midi light controller create
plumber hey midi input 1 to pico midi light controller 1 connect
plumber hey pico midi light controller 1 to pico keyboard 1 connect

Then I started Stage (make sure that you select the right EigenD instance when connecting - e.g. I saw two, one on localhost and one on my WIndows machine in the same network).
If you switch to the add widget mode the "pico midi light controller 1" should be listed in the "Browse Available Agents" list.
Now drag'n'drop the keys/key 1 entry into stage.
Switch to perform mode and turn the knob, Now you should see the light on the upper left key on the Pico change (0 = no light, 1 = green, 2 = orange, 3 = red)

Does this work for the Pico on your side? If yes then perhaps there is something specifically wrong with the Alpha agent otherwise there could be something different with your setup or the steps we perform are not the same.

written by: barnone

Sun, 13 Nov 2011 01:34:45 +0000 GMT

Damn! It works. I have no idea what I did different before, but the concise instructions are working for me.

This is killer.

Christmas is coming early to Eigenlabs, we are going to have a proper light show soon. ;)

Given that you have a direct key mapping, I can imagine that this agent pretty much can do everything I was wanting to do with the OSC input agent.

The one thing that I would like to investigate is how to attach boththe osc output and this agent to a kgroup instead of the root keyboard. That way, the coordinates are tied to whatever canvas the kgroup is managing and not the entire keyboard.

But hey...I've just got to say, wow congrats! on putting this together as an outsider to Eigenlabs. Lots of details involved and not easy.

This plus EigenTab and I'm voting you MVP user of the year.


written by: NothanUmber

Sun, 13 Nov 2011 01:35:37 +0000 GMT

OSC control works!
(Was just too long that I did OSC stuff with Bidule - additionally to setting the value you also have to connect the trigger input of the "Create OSC" module...)

these infos above are right for my machine (now again tested on WIndows):

port: 55551
path: /pico_midi_light_controller_1/keys/key_1

for direct key 1 (it's an int input)

*edit* nice to read that it also works on your side! Whohoo! Now I can go to bed. Have fun! :)

written by: barnone

Sun, 13 Nov 2011 01:48:22 +0000 GMT

Holy shite! That works like magic.


Ok, this thing is cracked wide open now.


written by: 0beron

Mon, 14 Nov 2011 15:05:49 +0000 GMT

Hey, congratulations folks on making head or tail of the eigenD sources, sounds like I'm going to have a lot to learn come the developer conference... :S

written by: NothanUmber

Mon, 14 Nov 2011 23:35:43 +0000 GMT

I'm sure you will understand the basic concepts pretty soon! The EigenD source code is admittedly not very "reader friendly" e.g. regarding the lack of comments and one letter variables in places where a descriptive name would have been helpful.
The underlaying concept is undeniably pretty in many aspects though - and that counts much more in the long run than "cosmetics"..

written by: 0beron

Tue, 15 Nov 2011 12:46:21 +0000 GMT

I have a number of learning curves ahead, EigenD, OSC, rpc mechanisms and development on the Mac platform in general. It will definitely be worth it, but I wonder whether my head will explode first...

I'm used to single threaded computational geometry problems in python, C, C++ and (gasp) FORTRAN.

written by: NothanUmber

Tue, 15 Nov 2011 19:12:51 +0000 GMT

Good to have people with different backgrounds. This will be interesting, everybody gets an opportunity to learn things from other directions :)

written by: jaself

Wed, 16 Nov 2011 10:01:29 +0000 GMT

Hey NothanUmber, this is exciting development. The capability to turn Pico keyboard lights on via Stage seems to be a significant breakthrough, all by itself. I have been looking all over for a way to script Pico lights with no success.

written by: dhjdhj

Tue, 29 Nov 2011 17:13:31 +0000 GMT

I'm trying to understand from this thread whether it is currently possible to just send OSC commands to the Alpha to turn on or off an arbitrary LED. If so, what's the exact syntax? I'd like to add this into the Max environment.


written by: dhjdhj

Tue, 29 Nov 2011 17:19:14 +0000 GMT

I'm trying to understand from this thread whether it is currently possible to just send OSC commands to the Alpha to turn on or off an arbitrary LED. If so, what's the exact syntax? I'd like to add this into the Max environment.


written by: dhjdhj

Tue, 29 Nov 2011 17:22:15 +0000 GMT

Is there any way to remove duplicate posts? This has happened a couple of times when posting from an iPad.

written by: NothanUmber

Tue, 29 Nov 2011 17:37:30 +0000 GMT

It's currently only possible when you use the midi illuminator agent via the OSC Stage interface. Hope to release an initial version today if everything goes right as binary addition to EigenD 1.4.8 (Tabs are done now, just found a few last bugs and want to write at least a short docu...).

The OSC syntax will be e.g.
/alpha_midi_light_controller_1/keys/key_1-120 = 0-3 (0=off, 1=green, 2=orange, 3=red)

written by: dhjdhj

Wed, 30 Nov 2011 05:29:23 +0000 GMT

Looking forward to it. Last night I used the alpha at rehearsal with my band for the first time. I had it set up with a max patch that gave me two splits, one for a drone and the other for a bagpipe solo sound. I had to get over to it from my keyboards in the middle of a song to do the solo. That's when I realized I couldn't see where my starting rows were. Since I am using guitar tuning, I want to setup lights on 5th, 7th, 9th and 12th "fret" relative to whatever split I have setup.

written by: dhjdhj

Sun, 4 Dec 2011 06:11:26 +0000 GMT

Do I need to switch to the 2.0 branch to get the midi illuminator working via OSC?

written by: dhjdhj

Sun, 4 Dec 2011 06:11:27 +0000 GMT

Do I need to switch to the 2.0 branch to get the midi illuminator working via OSC?

written by: NothanUmber

Sun, 4 Dec 2011 14:53:57 +0000 GMT

No, 1.4.8 is sufficient. We had a short "Beta testing session" in Google+ last week. When showing how to set up things we instantly found some bugs (which fortunately were only wrong default configuration as I saw later on). But other bugs are still remaining, e.g. if you change the layout while keys are already lit it sometimes leads to undesired effects.

You like things related to EigenD to "just work" without experimenting much, don't you? ;)
So presumably it makes more sense to provide you the binaries as soon as I don't know of any more existing bugs. Otherwise just drop me a line and I give you a link to the current version, which does almost always what it should but not always always :)

written by: dhjdhj

Sun, 4 Dec 2011 15:18:16 +0000 GMT

Au contraire :-) I love experimenting and am now spending as much time as I can integrating into my Max environment, building lots of high level Max objects.

It's simply a question of how best I can invest my own time across all the software projects on my plate.

When I'm in "music mode", I don't really want to be a developer and so Max is just a much better way to integrate the Eigenharp into my "musical" world since there is already so much I can leverage.

At this point, I have nice high-level Max objects for keys, percussion and breath. I'm hoping that ribbon support will show up soon and the ability to control the LEDs will then provide the basis for a complete Max-based Eigenharp environment.

Please log in to join the discussions