You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+33-24Lines changed: 33 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,56 +13,62 @@ The `:visuals` module is meant to be used in live environment at the parties. Th
13
13
14
14
## How to build
15
15
16
-
This project depends on local [Processing](https://processing.org) installation, so go ahead and install it if you haven't already. Then create a `local.properties` file in project's root directory and configure the core library and contributed libraries' paths:
16
+
This project depends on local [Processing 4](https://processing.org) installation, so go ahead and install it if you haven't already. Then create a `local.properties` file in project's root directory and configure the core library and contributed libraries' paths:
The Gradle buildscript will look for Processing dependencies at these two paths. Dependencies are defined in CommonDependencies gradle plugin. Open it up, and you can notice that this project depends on some 3rd party libraries, which need to be installed at `processingLibsDir` path. Open your Processing library manager (Sketch > Import Library > Add library) and install whatever libraries are specified in the `build.gradle` file.
32
+
The Gradle buildscript will look for Processing dependencies at these two paths. Dependencies are defined in CommonDependencies gradle plugin. Open it up, and you can notice that this project depends on some 3rd party libraries, which need to be installed at `processing.libs.jars` path. Open your Processing library manager (Sketch > Import Library > Add library) and install whatever libraries are specified in the `build.gradle` file.
31
33
32
34
Current list of library dependencies is
33
35
34
-
```
35
-
Minim // audio processing
36
-
The MidiBus // for remote control
37
-
Video Export // I use this to export video teasers synced with external audio file
38
-
Box2D for Processing // for physics (look for BoxesSketch)
39
-
Video // video playback
40
-
extruder // 2d shape -> 3d shape extrusion
41
-
geomerative // for generating shapes from text
42
-
PostFX for Processing // can apply post-processing shaders
43
-
```
44
-
45
-
If you've set up everything correctly, you should be able to build the project using Gradle `build` task.
"themidibus", // MIDI control protocol implementation
40
+
"VideoExport", // I use this to export video teasers synced with external audio file
41
+
"box2d_processing", // for physics (look for Gravity sketch in playground module)
42
+
"video", // video playback
43
+
"extruder", // 2d shape -> 3d shape extrusion
44
+
"geomerative", // text -> shape, svg -> shape conversion
45
+
"peasycam", // adds camera handling to the sketches, nice to have when prototyping
46
+
"PostFX", // can apply post-processing shaders to video output
47
+
"oscP5", // OSC control protocol implementation
48
+
"blobDetection"// library to find "blobs" on image
49
+
)
49
50
```
50
51
51
52
## How to run
52
53
53
-
You can run the project with Gradle `run` task. Be sure to include the `--sketch-path` argument so sketches can properly resolve the data folder with resources.
54
+
You can run the project with Gradle `run` task. Be sure to include the `--sketch-path` argument so sketches can properly resolve the data folder containing resources needed by some Sketches.
There are also IntelliJ Run configurations in `.run` folder which you can use to run the app from IDE. Just be sure to edit their configuration to match your setup.
62
+
63
+
Note: Due to the fragileness of Processing dependencies (namely JogAmp), the project currently works only with some JDK versions, specifically `11.0.11-zulu`. You can find `.sdkmanrc` file in project folder
64
+
that sets up the current SDK for you if you use [SDKMAN!](https://sdkman.io/). (`11.0.12` does not work yet, causing [this](https://github.com/processing/processing4/issues/249) issue).
65
+
60
66
## Remote control
61
67
Currently, the project supports 3 remote control options:
62
68
63
69
- If you own Traktor Kontrol F1, the `KontrolF1` class is for you - I use it for quick prototyping. It handles most of KontrolF1's hardware features, like pad buttons (with colors feature), encoder, knobs and faders.
64
70
- If you'd like to try the `:visuals` module, go ahead and get yourself the [TouchOSC](https://hexler.net/products/touchosc) app and load it with `Astral.touchosc` layout that can be found in the `touchosc` folder. This layout uses MIDI and OSC protocol and there is a `Galaxy` class that handles most of TouchOSC MIDI controls. For future, I plan on to get rid of `Galaxy` and migrate everyhing to OSC protocol, which leads us to the last option
65
-
- OSC - The most convinient way, though, is to use the [OSC](http://opensoundcontrol.org/introduction-osc) (Open Sound Control) with Delegated Properties
71
+
- OSC - The most convenient way, though, is to use the [OSC](http://opensoundcontrol.org/introduction-osc) (Open Sound Control) with Delegated Properties
66
72
67
73
### Osc Delegated Properties
68
74
First, make your sketch/class implement the `OscHandler` interface, which makes you provide the `OscManager` class.
@@ -87,4 +93,7 @@ Then, you can create all sorts of properties tied to various OSC controls, like
87
93
privatevar fader1:Float by oscFaderDelegate("/1/fader1", defaultValue =0.5f)
88
94
```
89
95
90
-
Most of the delegated properties support writing, so, if for example you create the fader variable and at some point in time you assing the value into it, the corresponding control in TouchOSC app will reflect that change.
96
+
Most of the delegated properties support value assign, so, if for example you create the fader variable and at some point in time you assign the value into it, the corresponding control in TouchOSC app will reflect that change.
97
+
98
+
## Known bugs after Processing4 migration
99
+
- movie library does not work (issues with linking native libs)
0 commit comments