Monome_Basic for Ableton Live

  • This is some very basic code, but I've made a python module which makes the Monome work as a control surface in Live. I used LiveAPI to figure some of this out, but I'm not using OSC like it does. MIDI is a much easier way to communicate with Live.

    Can I get some folks to try this out? So far, I've only used with Live 7, on Mac.

    http://monomable.googlecode.com/files/Monome_Basic_001.zip

  • What does it do exactly? Like what will it control stock?

  • I have a 64, so the first seven columns and rows fire clips from the first seven tracks and slots.

    The last row stops the clip for that track.

    The last column on the right is for other functions. The top two move global quantization up and down, and the very bottom-right button turns all clips off.

    There are constants for rows and columns, so it should be trivial to expand it out for a 128 or 256 by editing Monome_Basic.py.

  • Does it give LED feedback?

  • oh wow, ok....ill try it when i get home.

  • Yup, although once in a while it misses the message and LED stays off.

  • oh snap, and led response...i am on this. I'll report back how it works on my rig :)

  • Works fine. Very cool. Thanks for this. Set up now for 8 x 8, but it is doing its job. Easy to set up.

    Follow actions work correctly too. Very nice.

    What needs to be done to make it work with wider/longer 128/256?


    //Noticed something: if the clips trigger is set to repeat (If I want to hold down the button to create a roll) the clip will roll/trigger after I release the button, as if I am still holding down the button. Not a major thing, but interesting.

  • WHen you delete columns, the LED feedback is thrown off, and it iluminates to the column to the right. The columns to the left do not light up as well...

    I did this experiment on column 2.

  • Updated:
    http://monomable.googlecode.com/files/Monome_Basic_002.zip

    It now works correctly when you move tracks around, and also resets when you open your Live set.

    For a 128 or 256, edit Monome_Basic.py (with a text editor). At the top, you'll see definitions for MONOME_COLS and MONOME_ROWS. Change one of them to 16, as appropriate.

    That begs the question: what does a 256 send as a MIDI note for the second half of buttons, since the maximum midi note value is 127? Does it have a different channel or something? Someone let me know (or send me one :), and I'll fix the script up for these.

  • It sends on a different channel, as far as I know. The Chuck app Enableton sends Ch 1 for the top half, and ch3 for the bottom half.

    I will try this out.

  • Updated again:
    http://monomable.googlecode.com/files/Monome_Basic_003.zip

    Fixed a problem where the LED's stopped responding to Live.

  • I tried this before and after changing the Columns to 16. Same effect:

    Button one activates Clip One
    Button Two Activates Clip Three
    Button Three activates clip Six

    Quant up moves quantization up
    Quant down does nothing.

    No stop clip buttons work.

    It's definitely getting there.

  • This won't work on a windows machine at the moment as the script tries to open /dev/stderr and /dev/stdout, which don't exist. I'm working on the script myself and will contribute a patch if I can sort out a few of the issues I'm having

  • The 256 sends button presses and receives LED on-off information as MIDI notes 0-127 on channel 1 for the top half, channel 2 for the lower half, when you're using MonomeSerial.

  • Is there any progress on a Windows version?

    What are the Windows equivalents of /dev/stderr and /dev/stdout?

  • HI. Thanks for the app. Very nice.
    Just on question

    I did not get any led response, I att a photo of my preferences pane on live and on monomeserial to someone see what is wrong. ok?

    I also want to make a sugestion:

    is it possible to make a "bank" button?

    Like to change between banks of 7 rows. so it is possible to have a lot of musics opened in the tracks and to go performing then.

    what do you think about it guys?

    best regards
    ricardo

    413 x 612 - 50K
    460 x 295 - 34K
  • I also want to post a comment made on ableton forum by hoffman2k


    If you're signed up to the Monome forum, tell them that /dev/stderr and /dev/stdout are just logs. No need to worry about that.
    You can even "comment out" the line that creates these files. I believe thats covered on the google group

  • after i followed all the steps in the set up all i can do is asign the buttons to slots but there's no light response. in fact the monome doesn't even switch from the start pattern.
    i have no problem using the OSC with the existing max patches so i may need more tweaking in the MIDI page of monome serial or in live..
    any hints please..

  • practicly im not able to use ur app at all :(

  • I got this working on pc... you need midiyoke and you can change those error output text files to:

    c:\stderr.txt
    c:\stdout.txt

    Once i did that I was golden.

    I couldn't get ableton to work right over osc so, I'm my little amount of free time, I'm going to be working on this code base over the next couple weeks to add bank support. I'll post it up here on completion.

  • love it love it
    great work neb
    i have installed this on both my comps
    and works perfectly

  • what are your debugging tricks? the only way i've been able to get output is to close ableton... then all the stuff i wanted to run through a standard debugger comes out...

    I've tried debugging to stdout.txt as well as a socket. There has to be some magic here...

  • either i'm the worst programmer... or... python built into live is really funky... i can't seem to really get multiple threads running smoothly in live. which means i can't create buttons that blink and time consistently.

    i'm so burnt on trying to integrate with live. I'm gonna go for one more approach here, then i'm going to try the APIMidi and use a midi python library to try and interface with live. garbage.

  • wow... i had some revelations this morning... I figured out some work arounds that will allow me to move forward on this and ad functionality to monome_basic. I'm really stoked about the monome_basic. There is lots of good functionality here and a great basis for adding features on top of it.

    The main use for this adaptation will is to be able to perform closed laptop LivePAs.

    Here are my target design specificaitons:

    + Making each clip sequential, so it doesn't skip rows. This will be useful for doing mlr style playback. -Done
    + Adding bank support - This will be customizable via config file you'll define where on the monome you want the banks and how many. - Done
    + Clips to show up as colored lights. so you never need to look at your monitor. - Done
    + Currently Playing clips will be blinking lights timed to the bpm in the track. - Done


    I'll be making this work first for the Monome 128 and on pc... I will be taking into consideration that people will want to use it on mac and the 40h... but it will not be my priority.

  • I`m looking for it.
    Mac.

    i`m not a programer..
    there something is someway to help?

  • Ok... i just got the blinking lights implemented and one bank. I also suspect doing the banks is going to be a little tedious.

    rcutz... no worries, we can work through it... my only question... are you in a 40h? or 128? or 256

    I think i'm going to have problems programming for 40h and 256... since i don't have them on site...

    if your on mac and were able to get the previous versions to work... i'm sure you'll be fine.

    Plus maybe you will have ideas about the design... what did you have in mind for your layout?

  • hmmm. been toying with this for a while now but can't seem to get anything to work.

    i have a 40h that i'm trying to set it up with, tried both v2 & v3 (separately) of the Monome Basic installed in my Ableton Live 7.03 app and while I can select Monome Basic in the prefs, with Remote enabled for to/from Monomeserial..

    and still nothing. the basic monome lights blink off when i start up Live but I get no further LED ons and no button pressing on the Monome seems to have any effect on Live..

    Strange indeed as it seems like everyone else seems to have it setup pretty easily. Any thoughts anyone?

    I'm using MacBook with 10.5.3 - latest version of MonomeSerial


    Thanks!
    Greg

  • strange.. i also have a 128 and i just tried with that (on the off chance it might work) and it actually does...

    any reason the 128 would work but not the 40h?

    also, just re-read the above posts and i also have no stop buttons working and some LEDs don't light on clip play (towards the bottom of the monome it seems)

    unfortunately i'm not at all a programmer otherwise i'd offer to help.. but any status on where this project stands?

    cheeers..

    greg

  • Grego, did you say parts work and others don't? ... mmm... don't know as because as soon as I downloaded this, I just started hacking it up to do more things.

    My version isn't really presentable right now, there are some issues and the bank support isn't in. I'm hoping to get at least a beta out soon. I need to get nebs permission to test it publicly and release it but i don't know where is contact information is.

  • wow, this is really cool. to get banks added somehow would be superb.

  • Hi Hydrogen, thanks for keep it going, and for your kind reply!

    well some version of monome_basic works for me once.

    yesterday I get it working, but without any Led feedback.
    It launch the clips but don`t get any led`s.

    I have 40h. I`m using Live 7.0.3

    Well I like the ideia of have a clip matrix, to perform live sets.
    So if I consider each track with no more then 5 scenesX7tracks ... I will need
    to scroll down and up, right?

    Is it the bank thing?

    -I like the ideia of the leds bouncing in to the beat, showing the "in use clips"
    -I like the ideia of colors, but it will require a monome hack, right?

    My dream:

    - is it possible to altern monome_basic (launch clip) with other functionality like Livestep? I gues not, because one use MIDI and other OSC and Max. But if it can be done it will be must. Like have a button to change between apps.

    Like I`m using the clipmatrix, after get in to some music part, change for other app, do something and then comeback, without lose a beat! :)

    It will be sensacional!

    I did not have some much other ideias to layout... What do you sugest?

    best

  • rcutz, awesome. You can see my current plans.

    As far as the color thing goes, I should have said I just have the leds light up. I'm not doing any custom modding. (Although that would be nice).

    I would like to very much to add livestep functionality or at least a way to switch to using it... perhaps with special max/msp app. I'm not sure if its going to be possible using the method that monome_basic uses, since monome serial has to be in midimode for it to work.

    Anyways, after I get the banks working, i'll look into otherways of programming the device. like setting up scale grids and step sequencers. i think those two features would be unique to those using a monome and ableton at the same time. It would also be really nice to finally interact with the music on that level. Sensational as you say. :)

    No promises though... But I'll definetly be delivering on the bank support.

    640 x 796 - 120K
  • hydrogen, perhaps bank programming can be done through different midi channels? as in channel 1 handles rows 1-7, channel 2 handles 8-14 and so on. the bank buttons at the bottom could be linked to midi channels? or an up down selector for the channels.
    anyhow you're probably on to a much better idea. i don't know how to write this stuff myself but just thought i'd mention if it is somehow helpful.
    thanks so much for doing this!! i've been waiting for something exactly like this since i got my first monome.

  • Using multiple midi channels doesn't really work. Because its locked to 2 using the liveAPI connection directly to the device via midiYoke(pc) and monomeSerial.

    But to explain how it works internally, Live receives midi data, this program remaps the midi data to internal functions like, play_clip, stop clip... The bank stuff is handled within the app, so when I switch banks the mapping will change to the next grid.

    hazeltine, is the layout going to be fine? or would you rather have the banks be on the right side eliminating a channel? 7 channels, 8 slots... (probably would be nicer to do mlr style clip triggering).

  • the layout looks great! i suppose it's worth having the possibility for 8 channels instead of losing one. with banks added there will be more than enough rows i think.
    is this project you're doing completely different to accomplish on a mac? or is it now a possibility that you'll also write this for mac? as you can tell i'm on a mac. : )
    this patch would be so beneficial to me that i would be into a donation to make it happen if that would help at all.

  • hazeltine: No worries, when its ready i'll get it out to you and you can test.

    Also the thing about having 8 rows... its useful because thats how you'll want to divide up your sounds if you want to do any mlr style sequencing... so you may want to reconfigure it. No worries though, i'm "trying" to make the configuration reconfigurable so it can work in different scenarios.

    Does, anybody know how to get in touch with neb? I want to get his permission before putting my modified version up here.

  • it seems that i've got the banks working. still don't know how to get in touch with neb though.

    I still have yet to clean up the code and then verify that it works on a monome40h.

    I'm not going to guarantee that its bug free... it seems to be a little quirky but thats because i've been debugging it to death.

    I'll probably have something up this weekend... we are putting in pretty long hours at work 10 - 12h days. then beers, ladies and sleep are critical mission at that point.

  • I made a video of the modifications:

    http://youtube.com/watch?v=_UsDF8Iku8A

  • fantastic!!! thanks so much for doing all this. can't wait to test.

  • Yea seems cool... but what about scrolling the other direction , left to right?

  • Mistone,

    I would have to re-architect it to scroll left -> right. is this so you could control more than 8 tracks?

    Hazeltine, were you able to get the monome_basic_003 to work? I hope so...

    Anyways... after running audio less and thinking everything was all good... It seems that when i refresh/switch banks I get some audio hitches in live. I'm running ableton 7.0.7 on a Thinkpad T60 2ghz. Have to keep investigating and optimizing. this thing is very difficult to debug because there is no debugger. just an output window. :)

    Its kind of a setback, I've got some ideas though so i'm not entirely worried.

  • Hi Hydrogen!

    Very nice video!

    Is it will work with 40h?

    The playback feedback is amazing and also the right most clip loop display.

    Can`t wait to use it.

    cheers

  • Hi all,
    I use monogrid for Ableton remote and follow the developing of Monome_Basic.
    I´ve got sadly no LED response on MB, but I very like the Idea of total implementation of MB into Ableton, whitout running another extra patch.

    Monogrid has a great feature, holding down a control ( clip bank ) button, you get a second grid (mode ) availible. So you have 8x8x8x2 grids. I have mapped it so, that the normal mode is for clip switching, and second mode for play, stop, rec, cue, 7 aux send, volume, pan, channel on/off, fx control and many more..

    It is possible to add this "switch" feature to Monome_Basic ?

    cheers, occ

  • hydrogen, yes, monome basic 003 worked really well for my tests here.

  • very cool project! i did a similar proof of concept awhile back that you can find here:

    http://www.post-digital.net/~phortran/AbleNome_Sampler.zip

    not nearly as full featured as yours but i developed it in windows, so it should work there w/out a hitch. hopefully it's helpful to someone. granted it's been a long time since i looked at this.

  • phortran the cool thing about this one is you don't need to run an external program its just a "device" in live .

  • yes, but i wonder if his doesn't have glitching issues... Still have to look into it.

    Regardless, I'm not giving up and I'm still working at it... it may not be until late next week. This is still a big interest of mine, but I have higher priorities at work right now. :(

  • okay so im a complete fool, having a hard time with this. am i right in thinking that the buttons are all already assigned when you open live? or like, you just go through all the rows and columns assigning them to clips and whatever in the midi map?

  • It works like the templates for the UC33e or the Trigger Finger in the Live midi menu. It takes advantage of the fact that they're written in python to query certain aspects of the live set (eg is there a clip in track 2 of scene 4) and lights a light on the monome if there is. Or if you press a button on the monome it'll fire the clip associated with it.