Showing posts with label resolume. Show all posts
Showing posts with label resolume. Show all posts
Thursday, August 25, 2016
NeoPixel 8 x 8 Matrix controlled by Resolume via Teensy
Example of a NeoPixel 8 x 8 Matrix controlled via Art-Net DMX over Ethernet by Resolume Arena, using a Teensy 3.2.
Download code here: http://milkcrate.com.au/_other/downloads/arduino/artnet_multiverse_neopixel.ino
Monday, August 15, 2016
Teensy LC, Resolume, ArtNet and FastLED
The Teensy LC works with the FastLED library, ArtNet DMX and Ethernet. An example sketch can be found here.
Note that due to memory constrains, the Teensy LC is limited to controlling about 1500 LEDs or so.
Here is a demo of controlling 300 LEDs using Resolume Arena. All of the LEDs are not visible in shot.
Note that due to memory constrains, the Teensy LC is limited to controlling about 1500 LEDs or so.
Here is a demo of controlling 300 LEDs using Resolume Arena. All of the LEDs are not visible in shot.
Saturday, August 13, 2016
Wednesday, August 10, 2016
Resolume Arena and Multiple ArtNet Universes with FastLED
Overview
This example shows how to deal with multiple ArtNet DMX 512 universes using Teensy 3.2, WizNet 820io and FastLED to light up an LED array using output data from Resolume.
Download the Teensy code here: http://milkcrate.com.au/_other/downloads/arduino/artnet_multiverse_fastled.ino.
Resolume Arena can output one or more DMX universes via ArtNet. This data can be read by a Teensy 3.2 using a WizNet 820io Ethernet module.
The universes hold RGB LED data, where one universe with a maximum channel count of 512 can represent 170 RGB LEDs (i.e. 510 channels of data).
Naturally, it is beneficial to transmit and receive more than just 170 RGB LEDs worth of data, and thus more than one universe can be dealt with using this setup.
Libraries and Code
To use the Teensy code, the following libraries are required:
• Teensy Ethernet library
• FastLED library
The Teensy code is quite easy to use, with only a small number of customisable constants and variables, as shown here:
In the ArtNet DMX protocol, each universe has an address differentiated by a net (14-bit), subnet (4-bit) and universe number (4-bit). The assumption is made that all devices in this example reside on the same net, so the net byte is not checked or compared.
A given Teensy 3.2 has a user-defined subnet, between 0 - 15, and can respond to data that populates up to 16 universes. For the sake of LED framerates, it is not adviseable to go beyond 4 - 6 universes, or 680 - 1020 LEDs in total. Each universe for a given Teensy 3.2 has the same number of LEDs, from 1 - 170.
To use the code, simply customise the number of universes (1 - 16), subnet number (0 - 15), the number of LEDs per universe (1 - 170) and the data pin used for LED output data (any digital pin).
The MAC address needs to be unique for the network, and the IP address needs to be unique and appropriate for the network.
Hardware
A Teensy 3.2 is used, along with a WizNet 820io Ethernet module. In terms of LEDs, many different types are available, based on WS2811 or similar drivers. See the FastLED library for more details. In this particular example, a NeoPixel 24 Ring is used.
Connecting the WizNet 820io is as follows:
• Wiznet 820io GND, GND, GND are connected to Teensy GND
• Wiznet 820io 3.3V, 3.3V are connected to Teensy 3.3V
• Wiznet 820io Reset is connected to Teensy digital pin 9
• Wiznet 820io SS is connected to Teensy digital pin10
• Wiznet 820io MOSI is connected to Teensy digital pin11
• Wiznet 820io MISO is connected to Teensy digital pin12
• Wiznet 820io SCLK is connected to Teensy digital pin 13
Connecting the NeoPixel or similar device(s) is simply a matter of connecting the Teensy data output pin (as defined in the code) to the data input pin on the LED array via a 100 ohm or similar resistor. Ground on the Teensy should be connected to ground on the power supply used for the LED array. A 1000 - 2000uF capacitor should be placed between ground and power on the power supply output for the LED array.
For a small number of LEDs, simply use USB power. Keep in mind that each LED will draw a maximum of 60mA, with a minimum of 20mA.
Mapping in Resolume Arena
The process of mapping multiple universes to one Teensy using Resolume as a data source is straightforward. In Resolume Arena, go to Output > Advanced Output. Create a new Lumiverse (or use an existing one).
This is a universe of DMX data, but represented inside of Resolume, and relative to the composition output. Create one or more new LED fixtures (or use existing ones), and populate the lumiverse with the same number of LEDs as defined in the "number_of_leds_per_universe" constant in the Teensy Arduino code.
Create additional lumiverses as required, totaling the number of universes defined in the Teensy Arduino code.
In this example, two lumiverses, each populated with 12 LEDs are used. These two universes are mapped to a NeoPixel 24 Ring.
In Arena > Preferences, go to the DMX preferences tab. Create one DMX ArtNet output per lumiverse. Each lumiverse must share the same subnet number (the same one defined in the Arduino code) and unique, consecutive universe numbers (starting at 0, with a maximum of 15).
Example Video
This example shows how to deal with multiple ArtNet DMX 512 universes using Teensy 3.2, WizNet 820io and FastLED to light up an LED array using output data from Resolume.
Download the Teensy code here: http://milkcrate.com.au/_other/downloads/arduino/artnet_multiverse_fastled.ino.
Resolume Arena can output one or more DMX universes via ArtNet. This data can be read by a Teensy 3.2 using a WizNet 820io Ethernet module.
The universes hold RGB LED data, where one universe with a maximum channel count of 512 can represent 170 RGB LEDs (i.e. 510 channels of data).
Naturally, it is beneficial to transmit and receive more than just 170 RGB LEDs worth of data, and thus more than one universe can be dealt with using this setup.
Libraries and Code
To use the Teensy code, the following libraries are required:
• Teensy Ethernet library
• FastLED library
The Teensy code is quite easy to use, with only a small number of customisable constants and variables, as shown here:
In the ArtNet DMX protocol, each universe has an address differentiated by a net (14-bit), subnet (4-bit) and universe number (4-bit). The assumption is made that all devices in this example reside on the same net, so the net byte is not checked or compared.
A given Teensy 3.2 has a user-defined subnet, between 0 - 15, and can respond to data that populates up to 16 universes. For the sake of LED framerates, it is not adviseable to go beyond 4 - 6 universes, or 680 - 1020 LEDs in total. Each universe for a given Teensy 3.2 has the same number of LEDs, from 1 - 170.
To use the code, simply customise the number of universes (1 - 16), subnet number (0 - 15), the number of LEDs per universe (1 - 170) and the data pin used for LED output data (any digital pin).
The MAC address needs to be unique for the network, and the IP address needs to be unique and appropriate for the network.
Hardware
A Teensy 3.2 is used, along with a WizNet 820io Ethernet module. In terms of LEDs, many different types are available, based on WS2811 or similar drivers. See the FastLED library for more details. In this particular example, a NeoPixel 24 Ring is used.
Connecting the WizNet 820io is as follows:
• Wiznet 820io GND, GND, GND are connected to Teensy GND
• Wiznet 820io 3.3V, 3.3V are connected to Teensy 3.3V
• Wiznet 820io Reset is connected to Teensy digital pin 9
• Wiznet 820io SS is connected to Teensy digital pin10
• Wiznet 820io MOSI is connected to Teensy digital pin11
• Wiznet 820io MISO is connected to Teensy digital pin12
• Wiznet 820io SCLK is connected to Teensy digital pin 13
Connecting the NeoPixel or similar device(s) is simply a matter of connecting the Teensy data output pin (as defined in the code) to the data input pin on the LED array via a 100 ohm or similar resistor. Ground on the Teensy should be connected to ground on the power supply used for the LED array. A 1000 - 2000uF capacitor should be placed between ground and power on the power supply output for the LED array.
For a small number of LEDs, simply use USB power. Keep in mind that each LED will draw a maximum of 60mA, with a minimum of 20mA.
Mapping in Resolume Arena
The process of mapping multiple universes to one Teensy using Resolume as a data source is straightforward. In Resolume Arena, go to Output > Advanced Output. Create a new Lumiverse (or use an existing one).
This is a universe of DMX data, but represented inside of Resolume, and relative to the composition output. Create one or more new LED fixtures (or use existing ones), and populate the lumiverse with the same number of LEDs as defined in the "number_of_leds_per_universe" constant in the Teensy Arduino code.
Create additional lumiverses as required, totaling the number of universes defined in the Teensy Arduino code.
In this example, two lumiverses, each populated with 12 LEDs are used. These two universes are mapped to a NeoPixel 24 Ring.
In Arena > Preferences, go to the DMX preferences tab. Create one DMX ArtNet output per lumiverse. Each lumiverse must share the same subnet number (the same one defined in the Arduino code) and unique, consecutive universe numbers (starting at 0, with a maximum of 15).
Example Video
Tuesday, August 09, 2016
Let's Have A Look at an Art-Net Packet
Lumiverse setup with LED Fixtures in Resolume Arena
DMX Art-Net output in Resolume
ArtDMX definition
Example of a received packet
'ART-NET ' starting string
ArtDMX output OpCode
Protocol version high and low
Sequence and physical
Address low and high
Data length high and low
512 bytes of data, padded with 0's for unused LEDs
Saturday, August 06, 2016
Sending a DMX Universe via USB MIDI
Resolume can output data to one or more LED arrays called fixtures. One or more fixtures reside in a Lumiverse, which is the same channel size as one DMX universe - i.e. 512 channels of data. For a set of RGB pixels, this translates into a maximum of 170 pixels (which equals 510 channels of RGB data).
This data can be cast via a WiFi or ethernet network using the Art-Net protocol. Max can be used to read up this data using the imp.dmx external package library. In particular, the imp.artnet.node object is used, and will present the 512 values as a list of 512 int elements.
This data can then be converted to MIDI for easy USB-based transfer to a Teensy 3.2. In this case, a note-on event with pitch 60 and velocity 127 is used to signify the start of a DMX 512 frame.
A controller message is then used per byte. The first seven bits of the DMX channel byte is represented by the controller value. The eighth bit of the DMX channel byte is represented by the first bit of the controller number. The channel number is irrelevant.
A note-on event with pitch 60 and velocity 1 is used to signify the end of a DMX 512 frame, and update the RGB pixel array.
In this configuration, it is expected that all DMX data sent via MIDI is - at the very least - sent in lots of three (for RGB data) per RGB LED, and a full frame needs to be sent for every update. A frame size that is smaller than 512 can be sent by sending a pitch 60 velocity 1 message when all relevant data has been sent (i.e. less than 170 LED's worth).
Update rate from Resolume is 20 - 30 FPS with the full frame of 512 DMX channels.
This data can be cast via a WiFi or ethernet network using the Art-Net protocol. Max can be used to read up this data using the imp.dmx external package library. In particular, the imp.artnet.node object is used, and will present the 512 values as a list of 512 int elements.
This data can then be converted to MIDI for easy USB-based transfer to a Teensy 3.2. In this case, a note-on event with pitch 60 and velocity 127 is used to signify the start of a DMX 512 frame.
A controller message is then used per byte. The first seven bits of the DMX channel byte is represented by the controller value. The eighth bit of the DMX channel byte is represented by the first bit of the controller number. The channel number is irrelevant.
A note-on event with pitch 60 and velocity 1 is used to signify the end of a DMX 512 frame, and update the RGB pixel array.
In this configuration, it is expected that all DMX data sent via MIDI is - at the very least - sent in lots of three (for RGB data) per RGB LED, and a full frame needs to be sent for every update. A frame size that is smaller than 512 can be sent by sending a pitch 60 velocity 1 message when all relevant data has been sent (i.e. less than 170 LED's worth).
Update rate from Resolume is 20 - 30 FPS with the full frame of 512 DMX channels.
Sending Resolume Visual Output to Max Over a Network Using Artnet
A Lumiverse is set up in Resolume. The visual output is sent via Art-Net via Ethernet to a Mac Mini. A Max patch on the Mac Mini uses the imp.artnet.node external from the imp.dmx package to receive DMX frames and send to an array of panels representing RGB LEDs.
Friday, August 05, 2016
Saturday, December 12, 2015
Thursday, August 27, 2015
Monday, August 17, 2015
Sunday, July 26, 2015
Monday, July 13, 2015
Friday, July 10, 2015
Wednesday, June 03, 2015
Open GL three.js + Resolume + Ableton Live - Quick Example
Labels:
ableton live,
open gl,
resolume,
three.js
Saturday, March 21, 2015
Max for Live Device for Reactive Audio Patches in Resolume
A Max for Live device that splits up the spectrum into low / mid / high, and then maps the interval peak as measured in milliseconds to MIDI control data as a direct peak, a triggered data ramp, and a rotating accumulator. This M4L device works conjunction with PathMIDI.Receive in order to send and receive the MIDI data. Useful for creating reactive audio patches.
Download here: http://milkcrate.com.au/_other/downloads/M4L/little-scale.liveResolumeTriggers.amxd
Labels:
ableton live,
max for live,
max/msp,
resolume,
vj
Subscribe to:
Posts (Atom)














































