Archive for July, 2011



July 29, 2011

It was a nice idea, but the closure thing didn’t work out after all.   Still, it was good for learning some new things about Python and the Live _Framework, and I’ll be able to use it later for other things.  Instead of the original thought, I wrote some simple overrides and everything works great now.  I’d still really love to figure out how to do this stuff with some closures and staticmethods, but I can’t work out exactly how to do it….

The iPad script is done for the most part.  Its very slow at this point, but that will improve now that the groundwork is in place and I can focus on the details.  I have a huge laundry list of things to get done on all of the current stuff, but everything is functional.

Having wasted two days chasing a white rabbit, I’m going to spend some time tomorrow documenting and making some short videos about what I’ve been working on.  I have a couple of days off of work, so hopefully this is the home stretch in getting something functional out into the wild in a usable, understandable form. 



Some closure(s)

July 27, 2011

Yeah, sorry, the title is misleading….what I MEAN is, I’d been having trouble figuring out a way to port the iPad Nameserver (for clip names) over to Python without writing overrides for every part of the _Framework session components.  Soooo, that’s what has been taking so long.  I did a little bit of studying yesterday and discovered a way to hack the _Framework scripts by using a simple closure in the top Class, so hopefully I’ll have the basic functionality of the iPad script finished this evening.  Again, this is a lovely little technique will avail most of you in hacking the _Framework scripts without having to write an override for the base-level components/controls.  I’ll probably begin using in other places as well if I don’t find any good reason not to (anyone know a good reason not to?).

I’d love to have some testers for this stuff, so if you have an iPad or an Ohm64 and the desire to manually install some components, the current versions are on svn.  I’ll have  a new version of the AumPad script up as soon as I finish writing the new NameServer portion of the scripts. 

There are a lot of piddly little details that need to be ammended, but I haven’t ran into any major problems with any of it (I’ve had the current version running on my Live rig for about 5 days straight with no reboots and no crashes). 

Plans (in order):  finish and publish iPad script to svn,  record some tutorial videos, publish a package with all the finished scripts, start working on a Block script.


Monomodular Subversion

July 24, 2011

I’ve set up a svn account with Google Code for those of you that are brave and want access to the work in progress. Everything is current with my own working copy, but again, no documentation.  I’ll be working on videos tomorrow, and hopefully will have a package for the Ohm64 and iPad by the end of the weekend.

In addition, I’ve ironed out some problems with Plinko tonight, so its nearly ready at this point.  Big performance boost with this one, and I’ll try to focus some time on recording a better instructional video.

SVN site:

I’ll have an installation package for you as soon as I have a chance to finish up some more details, but it may be a week or so before things get to that point.  In the meantime, I’ll post important changes and additions here.

Please drop a comment if you find any major issues, thanks 🙂


Breaking the (Silence)

July 21, 2011

Hi to all of you that are following this.  I’m very sorry for being out of touch for so long.

I’ve just returned from a three week vacation, and its time to get back to work.  It will take a  few days to get back in the swing of real life,  but honestly I think any more ‘vacation’ might have killed me.  Its good to be back!

I know that it probably appears like I’ve dropped the ball on Monomodular since I haven’t posted here in a while, but the fact is that I’ve been hard at work on several projects, and a new, completely revised edition of Monomodular is very near completion and release.  In fact, I’ve been using the new Ohm64 RGB Monomodular scripts for well over a month now, and I’ve had very good results.   I’m not going to get into too many details, but I guess I can spell out some of the major changes that have been made since the last public version.

First off, the Monomodular engine is now built completely in Python.  It is inserted as a MIDI Remote Script in Ableton, and communicates directly with its connected surfaces through the Python backend of Ableton.  This means an increase in speed, and a great deal more simplicity in setup for the user.  Instead of needing a host plugin loaded in Live, one merely loads the appropriate Remote Scripts in Ableton’s preferences and everything remains set between projects.

Because of the change in the Monomodular host-side  architecture, things have changed on the client end as well.  Currently, each client will auto-detect its position (‘bank’) to be inserted in, and can be manually changed by the user after insertion.  This state is saved across project loads.

I was able to condense the number of API objects required to communicate with Ableton’s control_surfaces to just two….hopefully this will mean more stability in the long run, and certainly means ease of programming in the short.  Those of you writing in Python will do yourself a favor by examining my methods, as I haven’t seen them anywhere else, and they weren’t arrived at without a lot of fumbling around with ways that didn’t work nearly as well.

In addition to porting all of the Host code over to Python, I have created some new externals for the engines in Boinngg and Plinko.  No more skipping or timing inaccuracies, and you can now save presets in Boinngg.  Also, run them as fast as you want.  Sixty four note triplets?  No problem 😉

The iPad version of the scripts is also nearly finished.  It is a complete rewrite, which utilizes a lot of new Python tricks I have learned from past experimentation.  You can expect to see these initial scripts published sometime in the next week, with others to follow as I have time to prepare and test everything.  I also plan to provide scripts for APC40, Launchpad, Block, and iPod/iPhone via TouchOSC.  The current working versions support Ohm64, Ohm64 RGB, Code, and iPad.  The Code remote script is thus far incomplete, but functional none the less.  I hope to get a chance to enrich it a great deal in the near future.

The fact that all the host-side support exists in Python now makes integration with new scripts much easier and straight forward.  This means that I’ll probably integrate Monomodular support into some other generic scripts as time permits (e.g. the stock Code and Ohm64 scripts, as well as the new Code/Griid script).  If someone wants to send me a Monome, I’d be happy to integrate it as well.

I also have several new client plugins I hope to finish in the near future.  No promises, but you’ll see at least two dedicated Code clients (one for effects similar to ‘Knobs’, and a new step sequencer with integrated multicontroller grid support) and a new generative ‘game of life’ patch for the grid.  Unfortunately right now I have more ideas than I have time to write code for them.

I had hoped to release all of this material at the same time, but it has taken me longer than anticipated to complete working versions.  Unfortunately, the next round of releases will probably trickle out a little bit at a time over the next several months.  The truth of it is that I had redesigned all of this new version in a completely new way within Javascript before I decided to chuck it and rewrite everything in Python.  So you might notice that the next public version will be b99, skipping completely two subversions that were never released.   My apologies for this, but at least you can be sure that the next release will be stable, and the main components won’t be changing again until the next major Live/Cycling release. 

Those of you that wish to create your own client patches will have better tools to do so.  I have already designed a much more instructive ‘Help patch’ with some built in tools and scripts to make things faster more easily understandable.  Although not finished yet, I think that its a step in the right direction.  The last thing that I’ll do before releasing any of this is to record some videos of the pertinent sections of the Remote Scripts, along with some instructions about what each of the client patches are supposed to do.  If you are wondering what is taking so long, you can be assured that THAT is what is taking so long.

So keep in touch, and be assured that just ‘a little more patience’ is all that is required.

Also, if your in San Francisco in late August, you may want to check out an event I’ll be part of at the Gray Area Foundation for the Arts.  Cullen Miller and Chris Willits have put together an evening of performance and instruction with the theme of ‘Hacking Ableton Live with Max for Live’, and I’ll be the first presenter.  Get a look at the awesome new Ohm64 RGB, along with the new tools I’ve been building in Monomodular for use with it and some other controllers.  Here’s a link to the official announcement, I think:

Keep an eye out here, and I’ll try to get the core nuggets out to everyone this weekend.