header image
 

Corrupt TouchOSC Template

Apparently the TouchOSC template contained in the package was corrupt.  I’ve made a seperate file download for a working one, you can find it on the right.  I’ll repackage the entire bundle later tonight and post it.

Thanks to naph @ Live forums for bringing this to my attention.

Cheers 🙂

b941

That was quick, huh?  Nothing big…I finally got to test it with two Launchpads, and it appears to work great.  I had to fix something in the javascript for the Launchpad, so make sure and download the new version.  I’m not changing the package right now, you can get it from the link on the right via Max for Live dot com.

Cheers.

Monomodular b94

I’ve gotten it as together as its going to be for a little while.  Please report any bugs that you find.  There are a lot of little things I keep running into as I’m testing it;  you can expect a small bug-fix release in a week or so unless I find out something major has gone awry.  I’m very interested to know how everyone gets on with this, so please drop me some feedback.

I’ve packaged everything that you need in one zip, you can get it here (on the right).  I will post the individual files to Max for Live as I have time.

I’m very interested to know if anyone is able to get this working with multiple Launchpads…I won’t be able to test with more than one until tomorrow or the next day (someone is loaning me one).

Next up:  Frames for programming clients (just like browser windows). You will be able to set a frame definition via the client with a simple message so that a portion of the grid will be reserved for certain data while everything else goes on around it.

I’m going to build a _Framework script for an 8 knob controller.  It will work with Ableton’s device system the way that the Novation Automap should work (I’ll be using it with a Nocturn, but it will be freely assignable to anything that sends MIDI).

Plinko will get an editor window, so that someone besides me will be able to use it to good effect.

I’ve got several small plugins that need some work, including Life (which is almost finished), and Loopview,  a GUI for Sooperlooper.  Both are monomod clients.

…and hopefully an Ohm64 shows up in the mail this week, so I can start on that.

Be sure to read the Readme, and let me know if I left anything out.

Cheers 🙂

Maybe I got a little carried away

I started working on the APC40 portion of the scripts, and, well, kind of got lost in it for a few days.  I’m glad I took the time to do it, though.  I’ve worked out all the little bugs that the Python scripts were causing me, and now it pretty much works flawlessly.

Best of all, I figured out how to port all of the device_name dictionaries from the _Generic consts of the _Framework portion of the Python scripts over to javascript and m4l.  To those of you who don’t know what that means (which, lets hope, is most of you…for your own sakes):  we now are able to get the same kind of readout for an HUD that you can get with, oh, say, a Remote25SL or a Mackie control, directly through m4l and this script.  Until Ableton changes that portion of the scripts, anyway.

So now the HUD works pretty flawlessly as well…whatever device you select will show correct parameter names and parameter values based on the dictionary, and if its not contained in the dictionary, the script looks it up through the API.  This makes the script faster, and above all: accurate.

I spent some time making sure the HUD displays correctly on any monitor.  I really need some feedback on this one, especially from Windows users.  I pretty much do everything on two identical MacBooks, so not a lot of good testing it here.   I’ll add the capability of changing its size a little later.

Oh, and I added the capability of using Monomodular with the stock APC40 script, so if you’re not using Hanz’s version, you can still use Monomod.

I’ll be porting the HUD over to a standalone when I’ve had some feedback from users and get the time to work on it.  The plan is to write a Python script that will basically emulate any 8 knob device controller, and give feedback through an identical HUD to the one I’m using for the APC.  Thus, if you have a Nocturn, Korg Nano, etc, etc, this will work for them with minimal setup.

The patches are almost done, I should have them published by Monday if all goes well.  I’m going to try to create an installer for OSX that will put everything where it goes, along with the abstracts for creating your own patches.  I don’t have a clue (or an inclination) to do this on Windows, but if someone knows how and is interested in helping out, let me know.  I can always use help.

Oh, and the swell guys down at Livid were good enough to loan me an Ohm64 to work with, so we’ll have support for that in the near future.

After the new revision is released, I’m going to start documenting how everything works with them here on the blog page, so keep an eye out.

Crawling crawling crawling…

I’m working out the final touches to the new patches.  It’s hard going.  I’ve discovered a bug in Max’s javascript implementation (I’m pretty convinced of that its a bug, anyway) that is requiring a substantial rewrite to some timing processes.  BUT.  If anyone out there is watching, you can expect a new and improved version of Monomodular that has the following great features very soon:

Auto client/host detection.
(this means that the host will detect all clients as soon as you load them, and delete those clients when you delete them: it will also remember a clients position if you delete it and reload it immediately).
The assignments are persistent between sessions, meaning once you set up a project, it stays that way until you change it.  It also allows you to create templates with your setup (via a Live song) and use those as a basis for any project.

Single plugin for 3 different hardware types:  iPad w/TouchOSC, APC40, and Launchpad.
Autodetection of TouchOSC via bonjour as well as manual assignment of OSC address.
Autodetection of all control scripts installed.

For the iPad:  an improved interface with true multicolor readout. 
a second page with monome 256 multicolor.
Improved performance overall, and I’ve reduced the amount of time to load the plugin.
I’ve also greatly reduced the amount of time it takes to create or delete a new track when using the plugin.

For the Launchpad:  navigation performance is improved.  You may now move in single cell increments, and there is a popup when User2 is pressed to provide quadrant navigation.  Current channel and plugin are displayed when you press User2.

For the APC: the same navigation features have been added as for the Launchpad.  Several annoying bugs have been worked out (like having to press shift at the start of a session before you can select grid-mode, switching between full and small modes now no longer kicks you out into clip-mode, and there is no longer the possibility of getting locked out of normal APC operation if you delete the plugin).

Also, broc@Live forums gave me the idea to use IAC for MIDI communication.  Now, Nomeout channels can be bounced to a virtual MIDI port through a ~vst object embedded in each plugin.  This means you can reroute each plugin on the fly to a different input channel in Live.  It requires the installation of the free midiOut plugin, but it works much better than the send/receive system I’ve been using up until now.  Hopefully Ableton/Cycling comes up with a better and more usable solution in the future.

MIDI port assignment is taken care of from the host plugin.  It will be persistent as long as the port order doesn’t change.  That’s the best I can do with what I have to work with 😉

I’ve created several new plugins:

Swing is a new Monomodular host: it can control swing for up to eight clients, assignable in the same manner as Monomod.

Osc-Client is a Monome emulator.  Its in its beginning stages, but it already deals with most Monome patches admirably.  This allows you to use Monomodular to control Monome patches without needing them ported to Monomod format.  It supports autodetection and col or row messages so far, I will implement other messages as I encounter them in Monome patches that I’m porting.

Dummy_client is a new utility for designing Monomod clients.  It allows you to link to the host via UDP when in edit mode, so that you can operate the client patch as normal while the Host patch is still outside of edit mode.  Simple, really.  I should’ve done this six months ago.

Knobs has been updated a great deal.  It is now a Monomod client.  It allows you to capture all of the current values of whatever parameters are assigned to each knob at the current value of that knob simply by pressing a button.  You can also store knob snapshots (64 of them) and recall them.  Snapshot selection, storage, and clearing are all available from the Monomod grid.  You may also clear individual envelopes from the grid, as well as capture parameter envelopes this way.

Knobs is accessible directly from the TouchOSC template:  the first four knobs are above the master/input/send knobs, the second four are handled by the two x/y boxes.  I think you will find this gives you the capability of controlling just about everything you need to in your set.

I’ve ported a couple more of Stretta’s plugs, tintinnabulo and sment.  Sment has presets now.  Tintinnabulo still needs a bit of work on the preset system, but you can still store presets as json files  like in the original patch.  There will probably be a lot more to come now that I’ve built the OSC_client and the Dummy_client.

All the other plugins have been updated to work with the new host/client system.

I have it in mind to include support for the original APC40 script in the next revision.  After that I’m going to come up with a better method of preset storage…the method I’ve been using is effective, but its slow and cumbersome.  We really need a good way to store the contents of coll in a pattr.  Something will present itself, I’m sure.

I really just wrote this blog to give myself a pep-talk, I think (or a to-do list).  Back to work, as I’m almost done.

Ahhhh….

I’m sitting here watching the blinky lights on three different controllers dance for me in rhythm to the most intricate Live set that I’ve ever built.  That’s a very good thing.  Its an even better thing that they are all doing it at the same time, with the same Live set.

Several weeks ago I had the bright idea that it would be a good thing to have only one patch to deal with.  So I basically rewrote every bit of all the control scripts I’ve made over the last year into one simple patch.  I wanted a single patch to be able to use for all of my controllers.  And I wanted them to be able to auto-detect which surfaces were connected, and save those settings between sessions.  I also wanted them to be able to autodetect which clients were connected, and save those settings as well.  And to be able to connect to a different set of clients, so each controller could have its own client list.  And and and….

Well.  It works.  And you can have it if you want it (very shortly, anyway).  I have some time over the next several days, so I will finish all the little nagging details, package everything up, and write some more ideas here to let you know what I’ve been doing, and why.

I’ve spent a lot of time documenting and cleaning up the code.  It will be much easier to build around now (for those that are interested), and there is much less guesswork.

I’m also looking forward to checking out a new patch Oliver has made in conjunction with Monomod, and making sure that everything runs as smoothly with it.  Hopefully there will be a lot of new stuff to release in the next several days. 

Incremental pattr

I just realized that some of you may be using patches that don’t work because I’ve implemented an updated version of pattr. 

Make sure that if you are using Monomod and any of its client’s (or any of my other patches) that you update the pattr external from the following page:

http://cycling74.com/downloads/incremental/

Hopefully this will be resolved in upcoming versions of MaxMSP.

On other fronts, I’m pretty far along on the next version of Monomod beta, which provides many new features:

Full multicolor support for the iPad, utilizing the new version of TouchOSC.  There is a much better feedback system for the grid, and a monome256 screen.  I am in the process of rewriting the framework to make things snappier when adding/removing tracks in Live, as well as overall stability.

The system is now more modular.  There will be a separate plugin for controlling swing.

There is now an automatic system for detecting hosts/plugins, so you can use multiple hosts of mixed types with unlimited plugins per project.  Each host will autodetect all clients present when a new host or client is instantiated in the Live set. Once you have configured the host with the order of its respective clients, the settings are stored across save-state for your Live set.

I am working at compiling all the control surface scripts into a single version, which will support all three interfaces (iPad, Launchpad, APC40) in a single plugin.  I am also going to add monome support when I have a chance (I don’t have a monome, which makes this difficult…anyone have one they want to loan me? lol).

Cheers 🙂

Let’s get on with it!

TouchOSC 3.6 is out. I am trying my best to contain myself. It’s lovely how things coincide:)

Multicolor iPad Monomod goodness to follow shortly…

Everybody’s Talking

Uhhhh….its four in the morning, actually….no one is talking (well, except my cat, and she really shouldn’t be, so either someone slipped me something when I wasn’t looking or I really should get some sleep).

I’ve managed to get a working prototype of the new monomods appliance.  Unlimited hosts, unlimited clients.  Configure it once, and it stays that way.  Use two or three controllers to control one patch, or use one or more controllers to control 24 patches.  Whatever.  Or build it yourself.  As long as the number of sends being used doesn’t bottleneck everything, this schema should work out extremely well. 

Now that I’ve managed to finish this, I can stop thinking about it for a while and go have some fun.  Most of the hard work is done, now I just need to incorporate it into monomods and change a few things in the host patches.  The client patches shouldn’t need any update at all 🙂

Cheers, if your watching.  I’ll have a bunch of new stuff out toward the end of next week if all goes well (including some music, for a change).

If you’re going to San Francisco…

I’ll be there.  No flowers, though.  This weekend only.  Don’t look for me on any billboards or marquees, as I will be playing the underground circuit (read:  a friends living room, probably)….

But that means don’t look for me here, either, as I will actually be using all this code I’ve been writing over the last several months to some good end….wish me luck…I’ll post the results on the other page when I get home on Monday or Tuesday 🙂

Cheers