Linux users: monome, serialosc, Max/MSP & native applications

  • Guide: http://docs.monome.org/doku.php?id=setup:linux

    I figured out how to run the monome on Linux with Max/MSP applications via Wine, and documented the process. No longer are we Linux users stuck with a few PureData or ChucK applications, many of which are buggy graphically or operationally. Now we have access to nearly all of the patches written in Max/MSP. It opens the door to many more production possibilities.

    Running these patches requires replacing the serialosc.maxpat shipped with each Max patch with a modified version that uses static ports:

    https://github.com/nightmorph/monome/raw/master/serialosc.maxpat

    The guide uses serialosc, not serialpy-io or monomeserial, though the latter is still necessary for older apps that haven't yet been updated for serialosc. As of right now, when you build libmonome, you get serialosc and monomeserial, which will also connect to Max patches.

    This thread isn't just for Max/MSP patches. There are a few native applications that "just work" on Linux, such as rove. In my experience, though, it's a pretty short list. Anyone else manage to get PD/chuck/supercollider programs working and displaying perfectly?

    Thanks to the fine community folks that have patiently helped me troubleshoot stuff and learn the inner workings of serialosc and Max. And everyone else who's just been curious, welcoming, and willing to talk. And, of course, everyone whose shoulders I stood on to make it this far. In particular: visinin, tehn, artfwo, Ycros, and everyone on IRC.

    The monome community and creators' philosophy espouse the virtues of openness and inclusiveness. Being able to make music on the most open platform available, Linux, is critical for turning that idealism into reality.
    I hope my efforts are useful; please let us know about your experiences with the monome and Linux. Questions, comments, application testing reports? Leave them here, on the wiki, or even email me; it's in my profile.

  • Don't know if you're interested, but I read recently that Live 8.1+ runs very well under Wine 1.2+

  • Update: I got serialosc, libmonome, and rove working in Gentoo Linux.

    I created ebuilds for these packages and made them available in my overlay:

    http://github.com/nightmorph/overnight

    I appended brief installation instructions to the monome wiki.

  • Update: many more apps have been tested and confirmed working on Linux, and added to the wiki!

    However, there are some tricky audio (not midi) slicing apps that seem to expose their innards to wineasio in a weird way, or else wineasio and JACK can't handle them.

    Specifically, I got mlrv1 working, but only with the ad_MME driver; mlrv won't run if JACK is active, because none of the outputs can be connected to the system audio device. So the MME driver is required; it just goes through the regular ALSA layer. Same for mlr2.27 and mash 0.14. Both used to work with JACK. About the time the mash 0.14 update came out, which fixed some LED/serialosc protocol issues, I got hit by a couple of JACK updates, which may have changed connection behavior.

    While mlrv1 sort of works, mlrv2 is hopeless. Will not load. Even after installing Java in Wine, and getting the xsample and included maxpats in the correct directories, it won't startup. Have to force-kill the Max5 window. Neither the terminal nor the Max window display any errors, either.

    I may try downgrading JACK and/or wineasio a few versions to see if there was a regression someplace. Otherwise, we're still out of luck, unless there are findable, fixable bugs in the apps' ASIO driver handling. Or if Cycling '74 ever releases their much promised mythical Linux port of Max/MSP.

  • i never said that porting stuff is easy. i started a thread today on porting mlrv2 to puredata, and i know just enough about things max has that pd lacks or does differently to know that it's a huge undertaking. may not even be possible.

    everyone who's written apps for any platform and language, from what i've seen so far, has some background in coding. i do not, which is why i cheerfully admit that i'm very dependent on the efforts of others. they and their software are part of why things have progressed this far. but it sucks being a trailblazer when you lack the right background and education in programming; being aware that i have no ability to directly change things by writing new code to solve all the problems.

    so when i read reports from the last 6 years or so from the company expressing interest in a linux port, and threads talking about getting it delivered by X date (probably rumors, i realize), but nothing materializes...that's frustrating. @artfwo and i were discussing this on #monome last night: while a linux port of max6 would be fantastic, it would also be a little sad. on the one hand, a big win for pragmatism; we could finally run the things we need to run. on the other hand, a loss for the linux/foss/open ideology: becoming dependent on a closed product.

  • I've done quite a bit of pd wandering and I'd normally be willing to take a crack at this, but as a recent hire at a software company I'm not so sure I can dedicate time. However, I've found pure-data to be very manageable and most times seemingly large tasks end up reducing to fairly trivial problems (that is compared to handling audio in languages like C). Take a crack at it!! I'm sure a Gentoo developerwouldn't have too much trouble.

    P.S. If you're really looking to trailblaze and uphold FOSS ideologies, maybe attempt to develop a new genre of application for sample-based performance--something to make the Apple and Microsoft users jealous! Monomes aren't mlr machines ;)

    There's a sorta buggy pd sampler-sequencer that's been barely documented on my website under tools if you're brave enough to try it.

  • **"Monomes aren't mlr machines ;)"**


    YESSSSSSSSSSS!!!!!!! MURRAY IS MY HERO.

  • bump. moved setup guide to setup:linux on the wiki, this is fantastic work! thank you.

  • my pleasure! i have some substantial expansions planned; just gotta find time to plan the layout. more stuff for gentoo and ubuntu users, as well as additional info on native apps.

  • your guide is perfect!
    how about novation launchpad compatibility?
    i know about this application:
    https://github.com/jiyunatori/launchpad/archives/master
    but is it possible to use it instead of serialosc? and how?
    maybe you have some advice?

  • i've known about that library for a few months now, but i don't have the hardware to do anything with it. non-monome devices only work when someone has written an emulator or bridge to communicate with serialosc. this hasn't happened for any grid device on linux. ideally, serialosc could be extended and abstracted to use such devices, but that would require extensive patching.

    that being said, there are two libraries for using the launchpad on linux; jyunatori's and launchpadd. also, the kernel has support for using it as a raw usb-midi device. one guy modified (http://www.linuxmusicians.com/viewtopic.php?p=19652&sid=163068a6ec108bac23a23f30cfa2a4b9#p19652) an mlr-like step-sequencer (http://www.geekasaurusrex.net/post/2010/09/02/Launchpad-PureData-Step-Sequencer.aspx), written in puredata, to use it with jyunatori's library. this one was originally written to get it working with renoise's Duplex tool, but you can use it for anything, once you integrate it with your other apps. this library is the best place to start from, since it includes midi and OSC integration, though probably not at the same time.

    in short, no, you can't use it with any monome application as-is. someone needs to write the driver code to let it talk with existing apps. ideally, to do more than just talk with apps, but to also make use of the extra buttons on the sides, and to use all the LED colors. i've wanted to get a launchpad for awhile now, but just haven't been able to justify buying one, since i lack the c/c++/python/puredata coding skills necessary to use it with current apps, much less writing my own from scratch.

  • lot's of helpful information. thank you!