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. 







Saturday, August 13, 2016

Kenny G + LEDs

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

Video: Mapping Resolume Arena to a NeoPixel LED Ring

Tuesday, August 09, 2016

Neopixel Ring





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.



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

Monitoring Resolume Art-Net Output with Packet Peeker

Saturday, December 12, 2015

Kaleidoscopic Macro Flowers

Thursday, August 27, 2015

Colour Strobing with Resolume

Monday, August 17, 2015

Simple Demonstration of Controlling Resolume Using Max

Sunday, July 26, 2015

Progress with Six Resolume Screens and Ambient Sound




Monday, July 13, 2015

Still Frames from a Resolume Jam





Friday, July 10, 2015

Quick Resolume Jam!

Cryptoset is Now on YouTube

Wednesday, June 03, 2015

Open GL three.js + Resolume + Ableton Live - Quick Example

Saturday, March 21, 2015

How To: Upscale a 1x1 Pixel Video to Full HD for Glitch Visuals in Resolume

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