We have a beta version of the new video generation environment available for download. Currently the EYESY generates video using Python and the PyGame framework. This setup is great and easy to use, but it doesn’t take advantage of any hardware acceleration.
This disk image uses the new environment based on openFrameworks and allows you to code video modes in the Lua scripting language, taking full advantage of the EYESY’s 3D graphics capabilities.
This download is intended for people who are interested in developing modes. While the core functionality works, it is only loaded with 3 modes as examples. Also a bunch of features are not yet implemented (more on that below).
http://thepeacetreaty.org/eyesy/images/EYESY_oFLua_beta1.img.zip
Download the above link and burn it onto an micro SD card (see section 6.1 of the manual) The process will wipe the SD card clean, so you might want to use a second SD card or make sure anything on the card is backed up.
What works
Booting up the EYESY will start the video system and load the 3 example modes. You can use the mode forward / back buttons to navigate between them. The modes are audio reactive on one channel at least, and the knobs control various parameters of the video.
All the web stuff works the same as before. You will want to get connected and then you can play around with the modes and create new ones in the web editor. The modes are in the oFLua folder. If you create a new mode, you will need to stop and re-start the video so that the new mode is picked up. Currently the easiest way to do this is copying an existing mode folder and renaming it.
What doesn’t work
The following features are not yet implemented:
- Shift button settings
- Persist button
- On screen display
- Scene save / recall
- MIDI / Link
More info
The structure of the modes is the same, with a setup function being called once when the mode is loaded, and a draw function being called each frame.
Similar to the Python setup, the EYESY’s hardware is made available to you as variables you can use in your mode. In Lua this is achieved by the
require("eyesy")
line at the top of the main.lua file. This includes several variables you can then use:
- The 0-1 values of knobs: knob1, knob2, knob3, knob4, and knob5
- Left and right audio input as 2 arrays of 256 values (-1 to 1): inL and inR
- A trigger boolean event (currently the only way to active is by pressing the trigger button): trig
Eventually MIDI and other variables will be included.
The Lua interface allows access to the core openFrameworks API, so most of the openFrameworks documentation and examples apply here. However there is difference between the openFrameworks syntax (which is C++) and Lua, so openFrameworks code can’t merely be copied and pasted. These differences are outlined in the Lua openFrameworks plugin readme.
It is all still a work in progress, but we’ve been really excited by the possibilities and hope to post more examples soon!