The recent interest from developers in contributing to EigenD through open-source has piqued my motivation for writing code in my spare time also. Was up ’till 2h30am yesterday doing so. It’s been a long time since I coded this late. I’m going to add a few more examples for developers to start out, really simple ones that show just the architectural parts and little functionality in the agents themselves. Still need to add comments, but the ones I finished are a Latch agent and an Angle/Radius agent. These effective change of the data streams coming from the Eigenharp keys work.
The Latch agent uses pressure as a latch for the roll and yaw values (while also forwarding pressure), a configurable threshold for the pressure decides whether the yaw and roll values are sent on. If the pressure is below that threshold, the last values of yaw and roll are sent instead of the real ones.
This effectively turns the keys into two-dimensional knobs that stay in place when you let them go, very handy to use with soft-synth knobs or knobs in Mainstage.
The Angle/Radius agent uses Yaw/Roll as X/Y coordinates for a point on a Euclidean grid with the key resting position as the origin. The distance from the point to the origin is the Radius value and the angle described by the segment from the origin to the point is the Angle value.
This makes it possible to tie an Eigenharp key directly to the Orb control in Omnisphere. It’s very nice to move the Eigenharp key and to see its position correspond directly to the position of the dot on screen inside the Orb.
Any other primitive agents that you’d like to see?