-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[orx-chataigne] Add Chataigne support (#130)
- Loading branch information
1 parent
6fa78af
commit 32965f8
Showing
6 changed files
with
151 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# orx-chataigne | ||
|
||
With `orx-chataigne` you can share [Chataigne](http://benjamin.kuperberg.fr/chataigne/en) variables within a OPENRNDR project. | ||
|
||
The current implementation makes use of the OSC protocol and supports `Double` and `ColorRGBa`. | ||
|
||
## Usage | ||
|
||
Defining the variables | ||
```kotlin | ||
class SceneVariables : ChataigneOSC(OSC(portIn = 9005, portOut = 12001)) { | ||
val myRadius: Double by DoubleChannel("/myRadius") | ||
val myOpacity: Double by DoubleChannel("/myOpacity") | ||
val myColor: ColorRGBa by ColorChannel("/myColor") | ||
} | ||
``` | ||
|
||
Initiate | ||
|
||
```kotlin | ||
val animation = SceneVariables() | ||
``` | ||
|
||
Update time | ||
|
||
```kotlin | ||
animation.update(seconds) | ||
``` | ||
|
||
Use the variables | ||
|
||
```kotlin | ||
animation.myRadius | ||
animation.myOpacity | ||
animation.myColor | ||
``` | ||
|
||
## Example project | ||
|
||
Find the Chataigne example project in `/resources/timeline_example_chataigne.noisette` which works together with demo project `/src/demo/kotlin/ChataigneOSCDemo.kt` | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
sourceSets { | ||
demo { | ||
java { | ||
srcDirs = ["src/demo/kotlin"] | ||
compileClasspath += main.getCompileClasspath() | ||
runtimeClasspath += main.getRuntimeClasspath() | ||
} | ||
} | ||
} | ||
dependencies { | ||
api project(":orx-osc") | ||
|
||
implementation "com.google.code.gson:gson:$gsonVersion" | ||
demoImplementation("org.openrndr:openrndr-core:$openrndrVersion") | ||
|
||
demoRuntimeOnly("org.openrndr:openrndr-gl3:$openrndrVersion") | ||
demoRuntimeOnly("org.openrndr:openrndr-gl3-natives-$openrndrOS:$openrndrVersion") | ||
demoRuntimeOnly("org.openrndr:openrndr-extensions:$openrndrVersion") | ||
demoImplementation("org.openrndr:openrndr-ffmpeg:$openrndrVersion") | ||
demoRuntimeOnly("org.openrndr:openrndr-ffmpeg-natives-$openrndrOS:$openrndrVersion") | ||
demoImplementation(project(":orx-fx")) | ||
// demoImplementation(project(":orx-osc")) | ||
|
||
demoImplementation(sourceSets.getByName("main").output) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"metaData": {"version": "1.7.2", "versionNumber": 67330}, "projectSettings": {"containers": {"dashboardSettings": {"parameters": [{"value": false, "controlAddress": "/enableDashboardServer"}, {"value": 9999, "hexMode": false, "controlAddress": "/serverPort"}]}}}, "layout": {"mainLayout": {"type": 1, "width": 1496, "height": 1371, "direction": 2, "shifters": [{"type": 1, "width": 1496, "height": 1371, "direction": 2, "shifters": [{"type": 1, "width": 1496, "height": 761, "direction": 1, "shifters": [{"type": 1, "width": 307, "height": 761, "direction": 2, "shifters": [{"type": 0, "width": 307, "height": 387, "currentContent": "Modules", "tabs": [{"name": "Modules"}]}, {"type": 0, "width": 307, "height": 367, "currentContent": "Custom Variables", "tabs": [{"name": "Custom Variables"}]}]}, {"type": 0, "width": 749, "height": 761, "currentContent": "State Machine", "tabs": [{"name": "State Machine"}, {"name": "Dashboard"}, {"name": "Module Router"}, {"name": "Morpher"}]}, {"type": 0, "width": 428, "height": 761, "currentContent": "Inspector", "tabs": [{"name": "Inspector"}]}]}, {"type": 1, "width": 1496, "height": 603, "direction": 1, "shifters": [{"type": 0, "width": 178, "height": 603, "currentContent": "Sequences", "tabs": [{"name": "Sequences"}]}, {"type": 0, "width": 867, "height": 603, "currentContent": "Sequence Editor", "tabs": [{"name": "Sequence Editor"}]}, {"type": 0, "width": 439, "height": 603, "currentContent": "Logger", "tabs": [{"name": "Help"}, {"name": "Logger"}, {"name": "Warnings"}]}]}]}]}, "windows": null}, "modules": {"items": [{"parameters": [{"value": true, "controlAddress": "/enabled"}, {"value": true, "controlAddress": "/logIncoming"}, {"value": true, "controlAddress": "/logOutgoing"}], "niceName": "OSC", "type": "OSC", "scripts": {}, "params": {"parameters": [{"value": false, "controlAddress": "/splitArguments"}, {"value": true, "controlAddress": "/autoFeedback"}], "containers": {"oscInput": {"parameters": [{"value": 12001, "hexMode": false, "controlAddress": "/localPort"}]}, "oscOutputs": {"editorIsCollapsed": true, "items": [{"parameters": [{"value": "127.0.0.1", "controlAddress": "/remoteHost"}, {"value": 9005, "hexMode": false, "controlAddress": "/remotePort"}], "niceName": "OSC Output", "type": "BaseItem"}]}, "pass_through": {}}}, "values": {"parameters": [{"value": [0.0, 0.501960813999176, 0.0, 1.0], "controlMode": 2, "reference": {"value": "/sequences/sequence/layers/color/colors/color", "controlAddress": "/reference"}, "controlAddress": "/_myColor", "type": "Color", "niceName": "/myColor", "customizable": true, "removable": true, "description": "", "hideInEditor": false, "feedbackOnly": false}, {"value": 0.8833333253860474, "controlMode": 2, "reference": {"value": "/sequences/sequence/layers/opacity/automation/value", "controlAddress": "/reference"}, "controlAddress": "/_myOpacity", "type": "Float", "niceName": "/myOpacity", "customizable": true, "removable": true, "description": "", "hideInEditor": false, "feedbackOnly": false}, {"value": 0.8666667342185974, "controlMode": 2, "reference": {"value": "/sequences/sequence/layers/radius/automation/value", "controlAddress": "/reference"}, "controlAddress": "/_myRadius", "type": "Float", "niceName": "/myRadius", "customizable": true, "removable": true, "description": "", "hideInEditor": false, "feedbackOnly": false}, {"value": 11.77089214324951, "controlAddress": "/_setTime", "type": "Float", "niceName": "/setTime", "customizable": true, "removable": true, "description": "", "hideInEditor": false, "feedbackOnly": false, "shortName": "_setTime"}]}}]}, "states": {"items": [{"parameters": [{"value": [-80.0, -142.0], "controlAddress": "/viewUIPosition"}, {"value": [287.0, 243.0], "controlAddress": "/viewUISize"}, {"value": true, "controlAddress": "/active"}], "niceName": "State", "type": "State", "processors": {"items": [{"niceName": "OSC Trigger", "editorIsCollapsed": true, "type": "Mapping", "im": {"items": [{"parameters": [{"value": "/modules/osc/values/_setTime", "controlAddress": "/inputValue"}], "niceName": "Input", "type": "BaseItem"}]}, "filters": {"items": [{"niceName": "Math", "type": "Math", "filterParams": {"parameters": [{"value": "Modulo", "controlAddress": "/operation"}, {"value": "Adjust", "controlAddress": "/rangeRemapMode"}]}, "operationValue": {"value": 10.0, "controlMode": 2, "reference": {"value": "/sequences/sequence/totalTime", "controlAddress": "/reference"}, "controlAddress": "/states/state/processors/oscTrigger/filters/math/filterParams/value"}}]}, "outputs": {"items": [{"niceName": "MappingOutput 1", "type": "BaseItem", "commandModule": "sequences", "commandPath": "Time", "commandType": "Set Current Time", "command": {"parameters": [{"value": "/sequences/sequence", "controlAddress": "/target"}, {"value": 1.770892143249512, "controlAddress": "/time"}, {"value": false, "controlAddress": "/play"}]}}]}}]}}]}, "sequences": {"items": [{"parameters": [{"value": 5.0, "controlAddress": "/listSize"}, {"value": 10.0, "controlAddress": "/totalTime"}, {"value": false, "controlAddress": "/loop"}, {"value": 10.0, "controlAddress": "/viewEndTime"}, {"value": ["", ""], "controlAddress": "/syncDevices"}], "niceName": "Sequence", "type": "Sequence", "layers": {"items": [{"parameters": [{"value": 87.0, "controlAddress": "/listSize"}, {"value": 120, "hexMode": false, "controlAddress": "/uiHeight"}, {"value": [0.2117647081613541, 0.2117647081613541, 0.2117647081613541, 1.0], "controlAddress": "/layerColor"}, {"value": 0.8666667342185974, "controlAddress": "/value"}], "niceName": "Radius", "containers": {"automation": {"parameters": [{"value": 10.0, "controlAddress": "/length"}, {"value": 0.0, "controlAddress": "/position"}, {"value": 0.8666667342185974, "controlAddress": "/value"}, {"value": [0.0, 1.0], "controlAddress": "/viewValueRange"}, {"value": [0.0, 1.0], "controlAddress": "/range", "enabled": true}], "items": [{"parameters": [{"value": 0.0, "controlAddress": "/position"}, {"value": 0.8666667342185974, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 18", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 1.089901447296143, "controlAddress": "/position"}, {"value": 0.3083333373069763, "controlAddress": "/value"}, {"value": "Bezier", "controlAddress": "/easingType"}], "niceName": "Key", "containers": {"easing": {"parameters": [{"value": [0.5597290992736816, 0.0], "controlAddress": "/anchor1"}, {"value": [-0.1908860206604004, -0.0166667103767395], "controlAddress": "/anchor2"}]}}, "type": "Key"}, {"parameters": [{"value": 1.896896004676819, "controlAddress": "/position"}, {"value": 0.4416666030883789, "controlAddress": "/value"}, {"value": "Bezier", "controlAddress": "/easingType"}], "niceName": "Key 1", "containers": {"easing": {"parameters": [{"value": [0.1908860206604004, 0.0166667103767395], "controlAddress": "/anchor1"}, {"value": [-0.1785714626312256, 0.008333325386047363], "controlAddress": "/anchor2"}]}}, "type": "Key"}, {"parameters": [{"value": 2.278325080871582, "controlAddress": "/position"}, {"value": 0.8500000238418579, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 2", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 3.004926204681396, "controlAddress": "/position"}, {"value": 0.8583332896232605, "controlAddress": "/value"}, {"value": "Sine", "controlAddress": "/easingType"}], "niceName": "Key 3", "containers": {"easing": {"parameters": [{"value": [1.0, 0.25], "controlAddress": "/frequencyAmplitude"}]}}, "type": "Key"}, {"parameters": [{"value": 4.051724433898926, "controlAddress": "/position"}, {"value": 0.449999988079071, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 4", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 4.753694534301758, "controlAddress": "/position"}, {"value": 0.4583333134651184, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 5", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 5.01231575012207, "controlAddress": "/position"}, {"value": 0.7083333134651184, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 6", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 5.123153209686279, "controlAddress": "/position"}, {"value": 0.8000000715255737, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 7", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 5.264778137207031, "controlAddress": "/position"}, {"value": 0.5916666388511658, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 8", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 5.671182155609131, "controlAddress": "/position"}, {"value": 0.2083332538604736, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 9", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 6.133005142211914, "controlAddress": "/position"}, {"value": 0.5083333253860474, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 10", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 6.280788421630859, "controlAddress": "/position"}, {"value": 0.6916666626930237, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 11", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 6.508620738983154, "controlAddress": "/position"}, {"value": 0.4166666269302368, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 12", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 7.068964958190918, "controlAddress": "/position"}, {"value": 0.4166666269302368, "controlAddress": "/value"}, {"value": "Hold", "controlAddress": "/easingType"}], "niceName": "Key 13", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 8.084975242614746, "controlAddress": "/position"}, {"value": 0.9166666865348816, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 14", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 8.392856597900391, "controlAddress": "/position"}, {"value": 0.4333332777023315, "controlAddress": "/value"}, {"value": "Bezier", "controlAddress": "/easingType"}], "niceName": "Key 15", "containers": {"easing": {"parameters": [{"value": [0.2050492316484451, 0.0], "controlAddress": "/anchor1"}, {"value": [-0.2050492316484451, 0.0], "controlAddress": "/anchor2"}]}}, "type": "Key"}, {"parameters": [{"value": 9.076354026794434, "controlAddress": "/position"}, {"value": 0.8750000596046448, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 16", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 9.636699676513672, "controlAddress": "/position"}, {"value": 0.449999988079071, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 17", "containers": {"easing": {}}, "type": "Key"}]}, "recorder": {"parameters": [{"value": false, "controlAddress": "/arm"}, {"value": false, "controlAddress": "/isRecording"}], "editorIsCollapsed": true}, "mapping": {"niceName": "Mapping", "type": "Mapping", "im": {"items": [{"parameters": [{"value": "", "controlAddress": "/inputValue"}], "niceName": "Input", "type": "BaseItem"}]}, "filters": {}, "outputs": {}}}, "type": "Mapping"}, {"parameters": [{"value": 87.0, "controlAddress": "/listSize"}, {"value": 120, "hexMode": false, "controlAddress": "/uiHeight"}, {"value": [0.2117647081613541, 0.2117647081613541, 0.2117647081613541, 1.0], "controlAddress": "/layerColor"}, {"value": 0.8833333253860474, "controlAddress": "/value"}], "niceName": "Opacity", "containers": {"automation": {"parameters": [{"value": 10.0, "controlAddress": "/length"}, {"value": 0.0, "controlAddress": "/position"}, {"value": 0.8833333253860474, "controlAddress": "/value"}, {"value": [0.0, 1.0], "controlAddress": "/viewValueRange"}, {"value": [0.0, 1.0], "controlAddress": "/range", "enabled": true}], "items": [{"parameters": [{"value": 0.0, "controlAddress": "/position"}, {"value": 0.8833333253860474, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 1.68719220161438, "controlAddress": "/position"}, {"value": 0.449999988079071, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 1", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 3.152709245681763, "controlAddress": "/position"}, {"value": 0.2749999761581421, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 2", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 4.193350315093994, "controlAddress": "/position"}, {"value": 0.9583333730697632, "controlAddress": "/value"}, {"value": "Bezier", "controlAddress": "/easingType"}], "niceName": "Key 3", "containers": {"easing": {"parameters": [{"value": [0.5110831260681152, 0.0], "controlAddress": "/anchor1"}, {"value": [-0.5110831260681152, 0.0], "controlAddress": "/anchor2"}]}}, "type": "Key"}, {"parameters": [{"value": 4.913793087005615, "controlAddress": "/position"}, {"value": 0.3833333849906921, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 4", "containers": {"easing": {}}, "type": "Key"}, {"parameters": [{"value": 6.293103694915771, "controlAddress": "/position"}, {"value": 0.3583333492279053, "controlAddress": "/value"}, {"value": "Sine", "controlAddress": "/easingType"}], "niceName": "Key 5", "containers": {"easing": {"parameters": [{"value": [0.04926061630249023, 0.6416666507720947], "controlAddress": "/frequencyAmplitude"}]}}, "type": "Key"}, {"parameters": [{"value": 7.173645496368408, "controlAddress": "/position"}, {"value": 0.3833333253860474, "controlAddress": "/value"}, {"value": "Linear", "controlAddress": "/easingType"}], "niceName": "Key 6", "containers": {"easing": {}}, "type": "Key"}]}, "recorder": {"parameters": [{"value": false, "controlAddress": "/isRecording"}], "editorIsCollapsed": true}, "mapping": {"niceName": "Mapping", "type": "Mapping", "im": {"items": [{"parameters": [{"value": "", "controlAddress": "/inputValue"}], "niceName": "Input", "type": "BaseItem"}]}, "filters": {}, "outputs": {}}}, "type": "Mapping"}, {"parameters": [{"value": 27.0, "controlAddress": "/listSize"}, {"value": 60, "hexMode": false, "controlAddress": "/uiHeight"}, {"value": [0.2117647081613541, 0.2117647081613541, 0.2117647081613541, 1.0], "controlAddress": "/layerColor"}, {"value": [0.0, 0.501960813999176, 0.0, 1.0], "controlAddress": "/color"}], "niceName": "Color", "containers": {"mapping": {"niceName": "Mapping", "type": "Mapping", "im": {"items": [{"parameters": [{"value": "", "controlAddress": "/inputValue"}], "niceName": "Input", "type": "BaseItem"}]}, "filters": {}, "outputs": {}}, "colors": {"editorIsCollapsed": true, "items": [{"parameters": [{"value": 2.0, "controlAddress": "/time"}, {"value": [0.0, 0.501960813999176, 0.0, 1.0], "controlAddress": "/color"}], "niceName": "Color 1", "type": "BaseItem"}, {"parameters": [{"value": 4.0, "controlAddress": "/time"}, {"value": [1.0, 1.0, 0.0, 1.0], "controlAddress": "/color"}], "niceName": "Color 2", "type": "BaseItem"}, {"parameters": [{"value": 6.0, "controlAddress": "/time"}, {"value": "None", "controlAddress": "/interpolation"}, {"value": [1.0, 0.0, 0.0, 1.0], "controlAddress": "/color"}], "niceName": "Color 3", "type": "BaseItem"}, {"parameters": [{"value": 8.0, "controlAddress": "/time"}, {"value": [0.0, 0.0, 1.0, 1.0], "controlAddress": "/color"}], "niceName": "Color 4", "type": "BaseItem"}]}}, "type": "Color"}]}, "cues": {}, "editing": true}]}} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
import org.openrndr.application | ||
import org.openrndr.color.ColorRGBa | ||
import org.openrndr.extra.osc.OSC | ||
|
||
fun main() = application { | ||
|
||
configure { | ||
width = 500 | ||
height = 500 | ||
} | ||
|
||
/* Find the Chataigne example project in /resources */ | ||
class SceneVariables : ChataigneOSC(OSC(portIn = 9005, portOut = 12001)) { | ||
val myRadius: Double by DoubleChannel("/myRadius") | ||
val myOpacity: Double by DoubleChannel("/myOpacity") | ||
val myColor: ColorRGBa by ColorChannel("/myColor") | ||
} | ||
|
||
program { | ||
val animation = SceneVariables() | ||
|
||
extend { | ||
animation.update(seconds) | ||
|
||
drawer.fill = animation.myColor.opacify(animation.myOpacity) | ||
drawer.circle(width/2.0, height/2.0, animation.myRadius * 250) | ||
} | ||
} | ||
} |
Oops, something went wrong.