OHM2Resolume is a MAX project to make Livid’s MIDI-controller OHM64 talk to Resolume’s VJ-application Avenue and vice verca. I was tired of not getting any LED-Feedback on my MIDI-Controller when performing in a usually dark surrounding called club. So I started with some basic XML-parsing and added on top of it to get more complex control over the software. I think Peter Kern from CreateDigitalMotion has given a nice résumé:

Trigger, mix, effects… there are certain things you need to do as a visualist, and the combination of buttons with faders and encoders on the Ohm64 controller from Livid was clearly designed by visualists. The monome-style grid does indeed lend itself well to triggering, but you also need parameter control for mixing different channels and controlling parameters like effects. That means that its split-layout design is quite ideal for visual performance.

Here, we see German YouTube user Tschoepler put those controls to good use, combining the Ohm with the Mac/Windows Resolume Avenue VJ software (seen here on Windows). In a way, it’s a wordless tutorial for how to use the combination. See part 1 and 2 after the jump, to see its evolution. […]

In this case, this is more than just a simple control layout. A Max patch actually parses the Avenue setup file, and provides interactive feedback on details like clip position on each deck. (See the full details below.) […] But the important message here, to me, is what you can do with smart controller mapping. And if that helps you express what you want in a visual performance, that’s the real bottom line.

— CreateDigitalMotion.com

Documentation Part 2

Documentation Part 1


Open 7z files with either 7-zip (Windows) or The Unarchiver (OS X).
Both applications are free for use (OpenSource).


How to get started
  • Open “OHM64.xml” inside of Resolume Avenue/Arena via preferences > midi > load … This is just a sample to get you started. You can remap the buttons to your likes. Although there are some specific buttons which are hard-coded for now. I’ll implement some basic MIDI mapping feature sooner or later.
  • Then set Resolume to listen to OSC on port 7000 and send on 7001. Also set a MIDI channel to listen to for incoming messages. This channel we will set in OHM2Resolume later. Close Resolume.
  • Now connect the Ohm64 to your machine and open either OHM2Resolume x.xx.maxpat or MAIN.maxpat (Development versions).
  • Set the MIDI channel in the drop-down list “Midi out” that Resolume listens to.
  • Press button read to import the Resolume composition of your choice. After a few seconds, depending on the size of your comp, the buttons in the patch and on your Ohm64 should light up.
  • Next start Resolume again and you should be good to go wild.
  • If the patch can’t find your controller, try button select manually.

Mapping Map

Mapping Map


  • Updated: li.UI.js, li.getsetup.js, findLivid.js
  • Added: ohmrgb_colors.js
  • Fixed: Selecting a comp from the dropdown menu would crash MAX or not load the comp
  • Fixed: Set dropdown composition menu when opening a file via “read” button
  • New: Pressing “Clear layer” in Resolume now stops button-blinking
  • Fixed: some clips are not highlighted on OHM64 (buttons don’t light up but blink when triggered)
  • Fixed: “OTUDP: Failed to process entire packet (200 of 204)” when OSC packages is activated
  • Fixed: “#N: extra arguments for message ‘s’”
  • Fixed: Sequencer starts to run when Arena is loaded > Bug in Resolume Arena which triggers “pause” twice when loaded
  • Fixed: “Stack Overflow” on big compositions
  • New: Added fine grained +/- BPM control on “10/Shift/Button5–8”
  • New: Last opened composition is selected in drop-down menu after startup
  • Fixed: A resync pauses blinking of the buttons
  • Fixed: Sometimes MIDI out needs to be set again after opening
  • OHM2Resolume to make the patch send MIDI/OSC
  • Fixed: OHM2Resolume resets BPM of Arena on startup. Should be the other way around.
  • Change: MAX 7.1 compatible
  • Change: Replaced a couple of 3rd party objects with objects that already ship with MAX/MSP
  • Change: Cleaned up the sequencer GUI a little
  • Change: BPM non editable from OHM2Resolume anymore. Everything is synced via OSC from Arena as master.
  • New: changed logo from zweifarbton to tschoepler
  • New: updated some mouse-over hints
  • New: added drop-down menu to select compositions from last opened folder
  • New: added a button next to the „read“ button, to quickly reload the current comp. Good for making changes available to the button matrix, after making changes in Resolume Arena/Avenue and saving the resaving the comp.
  • Change: minor design changes on UI elements and the size of the patcher window (smaller).
  • Change: Sequencer listens to BPM changes and resync made from within Resolume
  • Change: Minor changes on MIDI Mapping (xml/jpeg)
  • Bugfix: Resolume sends BPM changes, resync and pause to OHM2Resolume via OSC
  • Bugfix: change port and ip of OSC-connection
  • Bugfix: buffer exceeds when recording with sequencer
  • Bugfix: Fixed link in help section to „Dashboard correct“
  • Bugfix: patcher would light up buttons but not pass MIDI from OHM64
  • Bugfix: broken link in help panel
  • Bugfix: Triggering buttons on the GUI were sent out to the patch twice, resulting in overhead.
  • Clean up: Improved some unnecessary code
  • Added new OHM64.xml MIDI-Mapping file
  • Bugfix: with new MAX 6 version column change led to stack overflow
  • Lots of minor bugfixes
  • Improvements under the hood
  • Buttons now blink twice as fast, this way it’s easier to follow when triggering real fast ;] (I’ll implement an interface for that soon)
  • MIDI sequencer is now fully quantized and listens to Resync
  • MIDI sequencer catches MIDI input even if the first button/note is triggered slightly too soon
  • MIDI sequencer used to record only till the last note played. Now it records the full length you set it to. Weather you’re triggering real hard or it’s just a note in the beginning.
  • BPM and Resync are now bidirectional: Set the BPM or Resync in either Resolume or the OHM2Resolume.
  • Click Pause in Resolume and the patch will stop its metronome thus the buttons stop blinking indicating Resolume is on hold.
  • bugfix: error ‘coll: extra argument for message “bang”‘
  • last opened composition-file ist correctly remembered and loaded on startup
  • speed improvements to the clipParser engine (stores last compData within the patch so there is no parsing to do on startup. this speeds up loading the last comp on startup drastically on huge compositions as well as jumping between decks and jumping between banks 1 and 2 (columns “1-8” and “9-16”).)
  • bugfix: help-button was toggled on at startup though help is hidden on startup.
  • button-state again is saved correctly on close and reloaded on startup.
  • shift-“record midi” and shift-“stop recording” adjusts the bpm by +-0.01
  • MIDI in/out for sequencer is automatically set to main MIDI out
  • New feature: added a MIDI-sequencer. That way you can record your crazy finger trigger acrobatics. See the MIDI mapping “Example MIDI Map for Resolume”.
  • Bugfix: Patch wouldn’t save button state on close.
  • autoload externals from subfolders (no more copying files into your MAX search path needed)
    You can now open OHM2Resolume 0.84.maxpat with either MAX or MAX Runtime. No need to install objects anymore.
  • autoselect corresponding layer when a clip is triggered (OSC)
  • State of MIDI out port gets saved
  • “clear lights” doesn’t produce coll error in MAX window anymore
  • fixed OHM64 not responding
  • added 16 decks support. just select deck with shift button down.
  • support for shifted knobs and faders with shift button down.
0.40 – 0.83
  • lots of bug fixing and testing
  • shift button
  • preview clips
  • assign channel A or B to clip
  • choosing blend modes
  • layer bypass & solo
  • access clips in column 9-16
  • “clip buffer” remembers on which slot, layer and deck clips are playing (blinking only when visible on the OHM64)
  • blinking can be synced to BPM
  • deck parsing on the fly while switching decks
  • cleaned code
  • killed a few bugs

Prior Versions



  1. Andy

    Hi, is it possible to update this for Ohm RGB, so it works with Resolume 5 with LED feedback. Thanks

  2. Andy

    Hi is the version V91 compatible with Ohm RGB?


  3. Andy

    the v0.9 works well. I sometimes on my Win 764b, running max 32b have a problem with the patch not recognizing my Ohm 64. Also my clips dont light up with corresponding clips on resolume. Anything i need to do? I am using midi yoke as suggested


  4. andy

    Hi Bro

    v0.9 works well. I however don’t get leds to blink or light up on all the clips where i have files loaded in resolume. My leds are all unlit. This would be a good addition to make when you have the time. thanks very much.

    is there a way i can adapt this script to other controllers? say the livid Block?

    • Great to hear. Buttons light up and blink for me. Maybe it has to do with your OHM’s MIDI configuration, though it shouldn’t. Which version of Resolume do you use? What system are you on? Win or Mac? What version of OS? What version of MAX/MSP do you use? Runtime?
      Of course you can adapt this script if you are familiar with MAX. Livid’s Block is pretty similar to the OHM so that shouldn’t be to hard, although it is quite tough to understand the patch in the first place. If you have questions I might be able to point you in the right direction.

  5. Saw

    danke schon mal für die Antwort. Kenne ich mit dem Zeitproblem, daher habe ich quasi auch nur einmal die Woche Zeit um das bei mir zum laufen zu bekommen. Ich hatte bisher den 0.89 Patch versucht, dachte schon Deine Antwort wäre schon die Lösung, aber leider auch da das gleiche Bild. Kurz noch mein Setting: Win7, Ohm64 (first Version), Avenue 4.1.6…was nicht funktioniert ist die Kommunikation zwischen Max und Resolume.Sobald das Script läuft reagiert Resolume auch nicht mehr auf den Ohm.und ich bekomme einfach nicht heraus woran es liegt…hoffe Du hast die Tage mal 1-2-3 Gedanken Zeit, Danke auf jeden Fall schon mal für Deine super Arbeit! Wenn es klappt wirds auch bei mir klappen! :)

  6. Saw

    habe es letzte Woche schon mal mit einem Post hier versucht (auf english) aber das kam wohl nicht durch. Also noch mal ;)
    Bei mir funktioniert es nur bedingt oder eher nur “halb”.
    Das Problem ist, dass, wenn ich eine avc in das max lade nichts passiert. Ich schaffe es wohl den OHM64 (nicht RGB) mit dem Script zu verbinden. Aber es folgt null Reaktion auf das laden einer avc Datei. Was mache ich wohl falsch? Ich habe mehrmals den oben beschrieben Weg durchgeführt. Wie gesagt das Script reagiert auf den Ohm auch umgekehrt , aber bei einer avc bleibt es “tot”…
    Besten Dank

    • Hi,

      ich stecke gerade in jeder Menge Arbeit und kann gerade leider keinen support geben.
      Eines ist aber sicher: der Patch (v0.9alpha) funktioniert bei mir mit Arena 4.1.6.
      Sobald ich ein wenig Luft habe melde ich mich wieder.

      Beste Grüße

  7. Andy


    Ok let me try that. Can you provide some direction on where to place the files-

    1. Source file
    2. max pat- this i believe i should open

    thanks a lot again.

    • It should work jut fine from within the folder you downloaded. I made patch so it adds the subfolders to MAX’ search path. The file to open is “OHM2Resolume 0.9.maxpat”.

  8. Andy


    I am using the 0.89a version downloaded from this site. I am also finding Ohm2 a bit unsteady in that it works sometimes, but sometimes it doesn’t and sometimes resolume crashes. when it works it is really great, all sliders and knobs to dashboard. Anything you can do to improve stability?

    thanks for the great work.

    • Can you try the v0.9 pre-alpha from github (see link in post) and let me know if it works better? I made quite a lot of changes to the patch but never gotten around to “release” it. I know about the weird, sometimes unstable behavior. But thanks for mentioning it anyway. Any feedback is welcome.

  9. Andy


    I am in Windows 7 64bit using Resolume and the Ohm 64 with max run time. Your patch works perfect except i dont get led feedback on the Ohm and resolume starats hanging once i start tweaking the knobs/sliders.

    can you please assist,


    • What version of OHM2Resolume are you using? Sometimes the lighting won’t work on the first try. Thus you have to close OHM2Resolume (not the Runtime) and open it up again. Or try clicking on the virtual buttons on-screen. This is a bug that is worked on. Let me know if it helped.

  10. Hip

    Can you make a script to use Livid CNTRL:R with Resolume?
    Like the OHM 2 Resolume. This would be very useful

    Thank you!

    • Hi,

      Thanks for your interest in the script. I could make a script for the CNTRL:R but I don’t have any time to spend on this at the moment. At least for the next 4 months. The CNTRL:R has quite a different layout. I think I will have to rethink a lot of the patching I’ve done so far to make the script more easily adaptable. As for now, I am still waiting for some donations to get me an OhmRGB because it is quite tricky to write those scripts without having your hands on the actual hardware. The good news is that Livid already offered me a nice 50% on their controller if I support the OhmRGB – so hopefully I’ll get my hands on one to hook you guys up with a new script in late summer. Best, Jakob

  11. Hi Jakob.
    I am brand new to Resolume and just bought the Ohm RGB. Will your max patch work with this controller? I don’t expect the that the colors will work but I don’t need that functionality right now. I have a new Live Cinema commission that I am creating and would love to have the functions I see in your demos working. The light feedback would be very helpful. Thanks for creating and sharing your software I am planning on trying it out to run my OHM RGB.


    • So, I had a closer look at Livid’s Wiki on the OhmRGB. Here they mention the note values for the different colors. The OHM2Resolume returns a value of 64 when a button is pressed thus it should result in a yellow lit button (»064-126: Yellow«). Just make sure you use the OhmEditor by Livid to assign the correct notes to the button grid as in the picture below.
      OHM2Resolume Assignements

  12. Tom

    Hello there!

    Thank you very much for creating this Resolume to Ohm 64 Midi patch & for making it available to others. Excuse my ignorance but what are the correct steps for loading it into Resolume Arena to get it working with Ohm 64 on my MacBook please? Many thanks!

    • Hi Tom,

      thanks for the appreciation. Download the latest version 0.89a and unzip it. You should be presented a folder with a file called »OHM2Resolume 0.89a.maxpat« (it is marked in green). Connect your OHM64 to your Mac before you launch MAX/MSP. Then open MAX/MSP (I am using v6.0.8 for development) and open »OHM2Resolume 0.89a.maxpat«. A startup screen appears and after three seconds you should see the OHM2Resolume interface.
      It should tell you »found: OHM64 Control Surface« on top of the button matrix. If it says »… no controller found« try the button »manually select device« and choose »OHM64« and »OHM64 control surface« as port. It should then come up with the desired message that it found your controller.
      Now hit the »read« button and open whichever avc-file (Resolume composition file) you want to run in Resolume. Depending on the size of the comp it might take a while to parse the data – maybe you even get the spinning wheel for a moment. When everything’s done the buttons should light up – on the interface and on your controller – and should be able to trigger a button thus making it blink.
      Now to control Resolume just select a MIDI out port – I use »from MAX 1« – and set it in Resolume’s preferences in the MIDI tab for incoming MIDI – open »from Max 2« and check the box next to »MIDI input«. Then one more thing to be done. While still in Resolume’s MIDI preferences choose »load…« and open the file »OHM64.xml« which you can download from github here.

      That’s it. I should make another tutorial on this ; ] If you got any further questions don’t mind asking.


    • Tom

      Hi Jakob,

      Thank you very much for your response detailed instructions. I’ve managed to get some results with it on Arena but need to work on the midi mapping some more – I’m not very good with all the technicalities (!). I assume that your patch should work with Arena the same as with Avenue?
      Many thanks!


    • Yes Tom, it works with Arena just as with Avenue. Good to hear you got it working, at least somehow. Did you load the example midi map I offer into Resolume? That works out of the box for a six layer setup.

  13. Tilman Rößler

    Wunderschönen guten Tag,
    Funktioniert das Max Projekt “OHM2Resolume” auch mit dem OHM RGB? Ich frage, da beim öffnen der Datei “OHM2Resolume0.87.maxpat” mit Max bei mir immer die Nachricht “no controller found…” erscheint. Wie muss ich meinen OHM RGB ansonsten konfigurieren, so dass er erkannt wird?
    Vielen Dank und Beste Grüße

    • Kann ich dir so nicht sagen, weil ich keinen OHMRGB habe. Aber die Erkennung habe ich aus einem Patch, den die Jungs von Livid programmiert haben. Ich werde mal sehen, ob es einen neuen gibt und dann einbauen. Die Farben werden aber sicher nicht funktionieren/unterschiedlich leuchten, da der Patch wie gesagt für den OHM64 geschrieben wurde. Ich werde meinen OHM irgendwann gegen einen OHMRGB tauschen. Ich sag’ dir dann gerne Bescheid ;]

2 Trackbacks

  1. By OHM2Resolume 0.93.2 released | tschoepler December 23, 2016 at 10:52

  2. By OHM2Resolume 0.93.1 released | tschoepler January 23, 2016 at 15:38

Leave a Reply

Your email address will not be published.
Required fields are marked:*


sixteen − twelve =