The solution was quite simple: The higher the measured brightness of the light sensor,
the less LEDs are turned on (in clockwise circle). Based on this principle, a stable,
visual feedback loop can be created in most environments and influenced by
reflecting material or external light.
Depending on the measured brightness, influenced by the feedback loop, random
values are generated and converted into MIDI notes or Control Change messages. To
keep control over the wildness, the internal note quantizer, automation slew limiter
and external clock synchronization can be optionally enabled.
With all these features combined, IO-Lights evolves into an organic, visual instrument
with many surprises, and still does what you want.
The feedback loop mode is always used with fixed brightness range. Otherwise, the
oscillation becomes unstable. If desired, one can change the brightness range to
adapt the feedback loop to any environment condition. Furthremore, the oscillation
frequency depends on the light sensor sensitivity. The higher the sensitivity, the lower
the oscillation frequency.
Clock Synchronization
IO-Lights can be synchronized to an external clock via MIDI to always play in time with
your other instruments. Based on the external clock (and clock divider), IO-Lights
sends the current measured brightness value in regular intervals as MIDI Note or
Control Change message.
For better usability, IO-Lights will use the internal clock until an external clock has
been received if clock synchronization is enabled. From this time point, IO-Lights will
always stay in sync with the external clock. Hence, if the external clock is stopped,
IO-Lights won’t send any MIDI messages.
Web App (Configuration)
To allow configuration with a wide range of end devices, we have created a
responsive web app, hosted on our website (instrumentsofthings.com/io-app). All
available parameters can be changed in real-time. New configurations can be
persisted in the internal flash memory of IO-Lights.