Chaos Mode for Resolume Avenue and Arena 6 - Max patch
Posted: Thu Jul 09, 2009 00:50
I've made a little Max/MSP patch that implements a kind of chaos mode for Resolume Avenue, using OpenSoundControl.
[update] Version 2.0 works with Resolume 6
[edit] Uploaded version 0.6, supports saving and loading presets even when using the runtime. Delete the cop_presets.json file to reset, it will prompt you to save the preset file when you close the patch. Put it in the same folder as the patch.
[edit] Uploaded version 0.7, has tap tempo support (mapped to Tab key) and OSCI settings are persistent. Make sure to download most recent Max runtime to use. Important note: the tap tempo feature has a guard time built in to avoid unintended changes. If it does not seem to be changing, wait a couple of seconds and then tap in the tempo, at least 3 taps. Tapping resynchronizes the beat clock.
[edit] Uploaded experimental version 0.7.1, allows you to switch OSC bundles on and off. Switching bundles off should allow using Copilot in parallel with TouchOSC. Make sure the corresponding switch in Resolume preferences is turned off as well. If you don't know what this is about just use 0.7 for now.
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
[edit] Replaced the OpenSoundControl external with the correct version for Intel Macs. PC version should still work as-is.
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 copilot.0.5.maxpat
3) You should see the user interface, like so:
Starting from the top left, you find BPM control. Here you can turn CoPilot on and off, and set a BPM. If the "sync BPM" box is checked, then CoPilot 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.
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 CoPilot. (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 CoPilot on a separate computer to the one where you run Resolume.
Finally, the heart of the patch is the layer control section. You can control up to 8 layers.
From left to right, enter the # of the layer you want to control.
Then comes the mode menu. There are four modes:
1) Off: chaos mode disabled
2) Sequence: each clip in the layer will be activated in sequence
3) Drunken: clips will be activated using a "drunken walk", randomly moving away from the current clip (see "Step" value later)
4) Random: clips will be activated randomly
Moving along, you tell the patch how many clips you have in that layer, using the "# clips" parameter.
Next, you specify how often you want clips to be triggered, in beats, using the "beat int" parameter. So for example, entering 4 means that a clip on that layer will be triggered every 4 beats.
Finally, if you are using the "drunken" mode, you can specify the maximum size of the steps away from the current clip. Negative numbers mean that there will *always* be a change - ie. the drunk will always wander away. The step size is one more than the maximum step that will be taken (it's a Max thing), so -1 won't do anything, but -2 is sensible (it means that on every beat event, the clip to the left or right of the current clip will be triggered).
Once you've set up your layers and such, store it in one of the presets, and then save the patch (File/Save).
At this point, if the on/off toggle is on, and you have clips loaded, you should see them being triggered. "Sequence" mode is good for testing, since you should see each clip being triggered in order, up to the max # of clips in the layer (that you set). If something doesn't seem to be working, try turning the patch on and off with the "on/off" toggle on the top left, that usually resets everything.
If you have Max/MSP, please feel free to mess around and improve the patch, and share the improvements!
[update] Version 2.0 works with Resolume 6
[edit] Uploaded version 0.6, supports saving and loading presets even when using the runtime. Delete the cop_presets.json file to reset, it will prompt you to save the preset file when you close the patch. Put it in the same folder as the patch.
[edit] Uploaded version 0.7, has tap tempo support (mapped to Tab key) and OSCI settings are persistent. Make sure to download most recent Max runtime to use. Important note: the tap tempo feature has a guard time built in to avoid unintended changes. If it does not seem to be changing, wait a couple of seconds and then tap in the tempo, at least 3 taps. Tapping resynchronizes the beat clock.
[edit] Uploaded experimental version 0.7.1, allows you to switch OSC bundles on and off. Switching bundles off should allow using Copilot in parallel with TouchOSC. Make sure the corresponding switch in Resolume preferences is turned off as well. If you don't know what this is about just use 0.7 for now.
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
[edit] Replaced the OpenSoundControl external with the correct version for Intel Macs. PC version should still work as-is.
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 copilot.0.5.maxpat
3) You should see the user interface, like so:
Starting from the top left, you find BPM control. Here you can turn CoPilot on and off, and set a BPM. If the "sync BPM" box is checked, then CoPilot 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.
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 CoPilot. (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 CoPilot on a separate computer to the one where you run Resolume.
Finally, the heart of the patch is the layer control section. You can control up to 8 layers.
From left to right, enter the # of the layer you want to control.
Then comes the mode menu. There are four modes:
1) Off: chaos mode disabled
2) Sequence: each clip in the layer will be activated in sequence
3) Drunken: clips will be activated using a "drunken walk", randomly moving away from the current clip (see "Step" value later)
4) Random: clips will be activated randomly
Moving along, you tell the patch how many clips you have in that layer, using the "# clips" parameter.
Next, you specify how often you want clips to be triggered, in beats, using the "beat int" parameter. So for example, entering 4 means that a clip on that layer will be triggered every 4 beats.
Finally, if you are using the "drunken" mode, you can specify the maximum size of the steps away from the current clip. Negative numbers mean that there will *always* be a change - ie. the drunk will always wander away. The step size is one more than the maximum step that will be taken (it's a Max thing), so -1 won't do anything, but -2 is sensible (it means that on every beat event, the clip to the left or right of the current clip will be triggered).
Once you've set up your layers and such, store it in one of the presets, and then save the patch (File/Save).
At this point, if the on/off toggle is on, and you have clips loaded, you should see them being triggered. "Sequence" mode is good for testing, since you should see each clip being triggered in order, up to the max # of clips in the layer (that you set). If something doesn't seem to be working, try turning the patch on and off with the "on/off" toggle on the top left, that usually resets everything.
If you have Max/MSP, please feel free to mess around and improve the patch, and share the improvements!