41 lines
1.3 KiB
Kotlin
41 lines
1.3 KiB
Kotlin
import org.openrndr.application
|
|
import org.openrndr.color.ColorRGBa
|
|
import org.openrndr.extra.midi.bindMidiControl
|
|
import org.openrndr.extra.midi.openMidiDevice
|
|
import org.openrndr.extra.parameters.ColorParameter
|
|
import org.openrndr.extra.parameters.DoubleParameter
|
|
import org.openrndr.math.Vector2
|
|
|
|
/**
|
|
* Demonstration of two-way binding using [bindMidiControl]
|
|
*/
|
|
fun main() {
|
|
application {
|
|
program {
|
|
val midi = openMidiDevice("MIDI2x2 [hw:3,0,0]")
|
|
val settings = object {
|
|
@DoubleParameter("radius", 0.0, 100.0)
|
|
var radius = 0.0
|
|
|
|
@DoubleParameter("x", -100.0, 100.0)
|
|
var x = 0.0
|
|
|
|
@DoubleParameter("y", -100.0, 100.0)
|
|
var y = 0.0
|
|
|
|
@ColorParameter("fill")
|
|
var color = ColorRGBa.WHITE
|
|
}
|
|
|
|
bindMidiControl(settings::radius, midi, 0, 1)
|
|
bindMidiControl(settings::x, midi, 0, 2)
|
|
bindMidiControl(settings::y, midi, 0, 3)
|
|
bindMidiControl(settings::color, midi, 0, 4)
|
|
|
|
extend {
|
|
drawer.fill = settings.color
|
|
drawer.circle(drawer.bounds.center + Vector2(settings.x, settings.y), settings.radius)
|
|
}
|
|
}
|
|
}
|
|
} |