Here is a step sequencer for Resolume Avenue, it communicates via OpenSoundControl, just like the chaos mode/copilot patch. Hope you enjoy it!
[note] If you run CoPilot and Sequencer at the same time, make sure to turn off the BPM clock on one of them, otherwise they will become confused. They share the same clock bus, so as long as BPM clock is turned on in one of the patches, both of them will run.
[update] just uploaded version 1.0, it now has preset save and recall with the runtime, and OSC values are persistent. You can change the IP address and port number (to control Resolume from another computer). Pressing the 'reset' button will reset the OSC settings to localhost and port 7000. Make sure to download latest Max runtime, v5.1 or later.
[update] version 1.1 adds tap tempo and bundle on/off switch - turn bundles OFF to work with TouchOSC at the same time. There are some under-the-hood changes so let me know how it goes.
[update] version 2.0 now supports Resolume 6. It does not support previous versions since the OSC mapping changed. A few simple tools are added for managing patterns, now you can randomize a pattern, shift it left or right, or reverse its order. I have not included the OpenSoundControl external, get it via the package manager.
[update] version 2.1 fixes a timing bug that came in with Max 8.
Here are instructions for installation and use:
1) Download the zip file attached to this post and unzip it.
2) If you don't already have Max/MSP, get and install the runtime from here: http://cycling74.com/downloads
. I think if you install Max but don't have a paid subscription, it acts as the runtime.
(Note) If you have CoPilot already installed, you can put Sequencer in the same folder and they can share the OpenSoundControl external.
(Another note) If you already use Max/MSP and have the CNMAT OpenSoundControl external installed, you don't need the one in the .zip file.
Then to use the patch:
1) Open Resolume Avenue, and make sure that OSC is enabled in preferences, the 'bundle' checkbox is on, and the port is 7000
2) Open the file sequencer 0.85.maxpat
3) You should see the user interface:
Here is what it all does, starting from the top left. A lot of the basic functions are identical to CoPilot, but I'll repeat the instructions anyway.
At the top, you find BPM control. Here you can turn the sequencer on and off, and set a BPM. If the "sync BPM" box is checked, then the patch will control the Resolume BPM as well. You can test OSC communications by enabling "sync BPM", putting the mouse cursor in the BPM box and dragging up and down. You should see the BPM change in Resolume. New Feature:
The button next to "sync BPM" checkbox will issue a resync to both the Max and Resolume BPM clocks, so they will run exactly in lockstep. I'll add tap tempo and nudge in a future version...
Below that are the presets. You can save and recall up to 4 states of the program. By default, saved state 1 is loaded when the patch opens. If you save the patch from the file menu, then the saved states will be saved for the next time you use the sequencer. (Not sure how it will work with the runtime version.)
Further down, the OSC control section lets you specify the IP address and port to use for OpenSoundControl. By default, it is set to 'localhost' (127.0.0.1) for when the patch and Resolume are on the same computer, and the port is set to 7000, the Resolume default. You can change both of these - most useful if you run the sequencer on a separate computer to the one where you run Resolume.
How to use the sequencer
Now over to the right side of the screen, here is where the fun stuff happens!
At the very top are a series of override buttons. The first one turns all patterns on and off. The next one mutes all patterns. Note the difference - when the first button is on, and mute is enabled, the pattern clock still runs, but nothing is output. This lets you get a pattern all synced up before actually turning it on. Next along is a number box that lets you set the pattern length for all patterns at once. Finally, the "reset all counters" button will set all the patterns back to their start.
Update: with version 2.0 the pattern on/off has gone way, the beat clocks for each layer all run in sync. If you want to shift patterns relative to each other, use the shift left << and right >> buttons.
When patterns are playing, a red (now blue-green) highlight will move along, indicating the current active step.
Moving down, you find the individual on/off and mute buttons for each layer. Next is the layer number - this is the number of the layer that will be controlled in Avenue. Next is the pattern length (use it to override the master length if you want). When the pattern length changes, the steps that are active will be black, and the inactive ones will be grey. However, you can still edit values in the inactive steps.
Then come the 16 slots for clips. Each of these contains the number of a clip. Leaving a slot at 0 will not generate any output. Incidentally clips, once triggered, will continue to run until another clip is triggered in the same layer. If you want them to stop running after they've played, use Resolume's "play once" playback setting.
The little green light in the top right will blink whenever an OSC message is sent.
I've tried this with audio & video clips, and it works really well. I will post a video soon. Let me know how you get on with it!
If you are having trouble getting stuff to play:
1) Make sure OSC is enabled in Resolume, and that matching port numbers are set.
2) Make sure the "on" checkbox is on for the pattern you want to play, and "mute" is off.
3) Make sure layer # is not 0.
4) Make sure there is data in the pattern.
In general, if something looks like it should be working, but isn't, try changing a value and changing it back. (eg. change from layer 1 to layer 2, and then back). The reason for this is that the patch caches quite a few values internally for presets and such, and sometimes you need to change a value for it to propagate throughout.