Code Monkey home page Code Monkey logo

pixelcontroller's Introduction

Build Status Bitdeli Badge

PixelController

PixelController - a matrix control project by Michael Vogt , (c) 2010-2013. The main goal of this application is to create an easy to use matrix controller software which creates stunning visuals!

Primary Website: http://www.pixelinvaders.ch

My Blog: http://www.neophob.com

Facebook: https://www.facebook.com/PixelInvaders

You can download PixelController on Google Code: http://code.google.com/p/pixelcontroller/downloads/

HOWTO USE PIXELCONTROLLER

Prerequisite:

  • Java Runtime, v1.6+

You can start PixelController with an integrated GUI by double click on PixelController.jar or you can start the console version (for example on a Raspberry PI) of PixelController by executing the console\PixelController.sh (OSX/Linux) or console\PixelController.cmd (Windows) Script.

By default PixelController has no configured output device (= no configured LED Matrix). To change that open the data/config.properties configuration file and make the necessary changes, lines starting with # are ignored. The most important parts are:

output.resolution.x=8
output.resolution.y=8

which defines the resolution of your matrix. Next you need to define one or multiple Output devices, for example for two PixelInvaders panels (while the output for the second panel is rotated by 180 degrees):

pixelinvaders.layout.row1=NO_ROTATE,ROTATE_180
#pixelinvaders.layout.row2=NO_ROTATE,NO_ROTATE

Take a look at the config file, there are a lot of hints how to configure PixelController.

Main idea

A Visual can be assigned to one or more Output LED Matrices. A Visual consists of two Generators (create the content), two Effects (modify the content), a Mixer (mix the content) and a Colorset (define the look of the content). I try to visualize it:

[GENERATOR A] ---> [EFFECT A] ---> [MIXER] <--- [EFFECT B] <--- [GENERATOR B]
                                      |
                                      V  [Colorset]
                                   [VISUAL]

Exception: There are two exceptions, if you use the Capture generator or use the OSC Generator (that sends 24bpp data) PixelController switch to the Pass-though mode. This means no Colorset, Effect and Mixer can be used and the original input data is send to the panels.

Per default PixelController creates one Visual more than the number of connected Output devices. This allows you to play with a non-visible Visual, that can be displayed later. All Visuals can be stored (and of course loaded) in a preset.

DEMO

Check out PixelController Rough Cut #2. Featuring two PixelInvaders panels, PixelInvaders 3D RGB Panels and PixelInvaders panels controlled by a tablet (OSC) to see PixelController in action on two PixelInvaders panels.

SUPPORTED HARDWARE

PixelController supports different (LED) matrix hardware devices/controller:

Check out the integration/ArduinoFW directory, all Arduino based firmware files are stored there.

Which firmware should I use?

If you don't have a hardware controller (like ArtNet or E1.31) and would like to use an Arduino/Teensy microcontroller you can choose between different firmwares.

  • If you bought a PixelInvaders DIY Kit, use the integration/ArduinoFw/pixelinvaders/neoLedLPD6803Spi firmware
  • If you want to create a ONE panel matrix with an arbitrary resolution, use the integration/ArduinoFw/tpm2serial firmware
  • If you want to create multiple 8x8 panels, use the integration/ArduinoFw/pixelinvaders/neoLedWS2801Spi firmware

I recommend a Teensy 2.0 microcontroller, as some Arduino boards suffer from bad serial latency (especially the Arduino UNO r3). You need to install the Arduino IDE, see the "Getting started with Arduino" (http://arduino.cc/en/Guide/HomePage) Tutorial.

You need to know how to install an Arduino Library (http://arduino.cc/en/Guide/Libraries). For PixelInvaders Panels (LPD6803) install the integration/ArduinoFw/libraries/timer1 and integration/ArduinoFw/libraries/neophob_lpd6803spi libraries, for other panels (WS2801, WS281x...) install the integration/ArduinoFw/libraries/FastSPI_LED2 library.

How does it work?

PixelController generates the content for the LED matrix and sends the data out to the controller. The controller then handle the LED module update (which depends on the used LED modules). There are two options to send the data to the controller:

  • sends the data via USB to the Arduino/Teensy board aka. DIY LED controller.
  • sends the data via ethernet to a PixelInvaders/E1.31/ArtNet... device.

Here are some primitive schemes:

[PixelController]---<USB>---[Teensy with PixelInvaders firmware]---<SPI>---[LED#1]---[LED#2]...

[PixelController]---<USB>---[Teensy with TPM2 firmware using fastspi2 lib]---<SPI>---[LED#1]---[LED#2]...

[PixelController]---<ethernet>---[Artnet Controller]---<???>---[LED#1]---[LED#2]...

Advanced PixelController configuration

There are a lot of options in the config.properties file. I describe some examples; PixelController updates all Visuals depending on the Sound input. If a beat is detected, the Visuals are updated faster. You can disable this behavior by setting this option:

#=========================
#enable pixelcontroller sound analyzer (disable it if you don't have a sound card)
#=========================
sound.analyze.enabled=true

There is a Generator called "Screen Capture" which is disabled by default. If you want to enable this generator, edit the following settings:

#x/y offset for screen capturing generator
#if you define screen.capture.window.size.x as 0, the screen capture generator will be disabled
screen.capture.offset=100
screen.capture.window.size.x=500
screen.capture.window.size.y=300

This enables the Screen Capture Generator which captures a region of 500 x 300 pixels. Potential use cases for this Generator are: YouTube videos, other movie players...

Or you can start PixelController in the random mode where PixelController changes the Visuals randomly:

#=========================
#start in random mode?
#=========================
startup.in.randommode=false

Or you can save a preset and load that one per default if you start PixelController (per default, preset 0 will be loaded)

#=========================
#load a preset if PixelController starts?
#Warning, this will overwrite your settings configured above (initial generator values)!
#=========================
#startup.load.preset.nr=1

You can define the size of the PixelController GUI, for example the size of the simulated LED Matrix (which is per default 16 pixels):

#=========================
#the size of the software output matrix
#=========================
led.pixel.size=16

Or define the window size, depending on this setting, the Visuals are displayed larger or smaller.

#=========================
#define the maximal window size (control window)
#=========================
gui.window.maximal.width=820
gui.window.maximal.height=600

You can define your own Colorsets, they are defined in the file data/palette.properties. A Colorset definition consists of a name and multiple RGB color values. Here is an example:

MiamiVice=0x1be3ff, 0xff82dc, 0xffffff

There are more options in the config file, take a look - each option is documented in the config file.

FRONTENDS

There are different frontends for PixelController (besides the GUI frontend). It doesn't matter how you control PixelController - you have the same functions. See chapter OSC Messages to get an overview.

  • PixConCli: Command Line Interface for PixelController, works also remote. The CLI tool is called PixConCli.cmd on Windows and PixConCli.sh on Linux/OSX.
  • OSC: The OSC interface of PixelController is listening (by default) on port 9876. Processing examples are included in the integration/Processing directory. You can send messages to control PixelController or you can send image content via OSC to PixelController. Of course you can create your own interfaces, for example with the great TouchOSC application or using PureData or MaxDSP.

PixConCli Examples

You can send OSC messages to PixelController to control the software. PixelController includes a simple CLI tool to control the software by console. Start PixelController, then open the console:

Randomize current Visual

    # ./PixConCli.sh -c RANDOMIZE

Select Image Generator as Generator A (0 is Passthru, 1 is Blinkenlights...) for current Visual:

    # ./PixConCli.sh -c CHANGE_GENERATOR_A 2

Load image gradient.jpg

    # ./PixConCli.sh -c IMAGE gradient.jpg

Processing Examples

I included some Processing example Sketches. Maybe you can use one or several of those examples for your need. Those file should help you integrate PixelController into your environment. You need the OscP5 Processing library and ControlP5 Processing library to run the examples.

  • OscSendImageData/OscSenderRandom: Randomize Visual 1 four times per second
  • OscSendImageData/OscSenderSelectVisual: Change Generator, Effect and Mixer of Visual 0
  • OscSendImageData/PixelControllerRemote: PixelController remote application to load presets via GUI
  • OscSendControllMessages/colorAdjust: Sketch to adjust RGB values for multiple panels
  • OscSendControllMessages/kinect_MSAFluidDemo: An example Sketch to use a MS Kinect together with PixelController
  • OscSendControllMessages/particleexample: Particlesystem that can be controlled with your mouse
  • OscSendControllMessages/PixlInvCamAndroid: Android application, use the camera of your Android phone and send a live video stream to PixelController
  • OscSendControllMessages/sendImageKreise: An example of OpenProcessing used in PixelController
  • OscSendControllMessages/sendImageKreise24bpp: The same example as above, but use the color settings of the Sketch, use the PixelController pass through mode where no effect, mixer and colorsets can be used.
  • OscSendControllMessages/sendImageSecretLifeOfTuring: Another great animation of OpenProcessing
  • AdapterApp: A more advanced Pixelcontroller example I used for an installation. Select a random preset after a specified time.

PureData Examples

PureData is a visual language, included are some examples.

  • PureData/ledgui5-onePanel.pd: The old PixelController GUI, use it to create a frontend for your case...
  • PureData/ledgui5.pd: The old PixelController GUI, use it to create a frontend for your case...
  • PureData/Midi2OSC.pd: MIDI to OSC bridge - control PixelController with a MIDI device

MORE HINTS

Run PixelController on a RPi

As the RPi isn't the beefiest CPU (and PixelController doesn't use the GPU) it's not really practical to run it with the graphical frontend. But you can run the console version of PixelController. You need to run PixelController as root user (or open the /var/lock directory for the running user), the rxtx library (serial communication) use this directory to create a lock file. Example:

pi@raspberrypi ~/pixelcontroller-distribution-2.0.0/console $ sudo ./PixelControllerRPi.sh 
Nov 24, 2013 1:53:27 PM com.neophob.sematrix.cli.PixelControllerCli <init>
INFO: 

PixelController v2.0.0 - http://www.pixelinvaders.ch

Nov 24, 2013 1:53:29 PM com.neophob.sematrix.core.glue.FileUtils <init>
INFO: Use root directory: /home/pi/pixelcontroller-distribution-2.0.0.RC1
Nov 24, 2013 1:53:29 PM com.neophob.sematrix.core.setup.InitApplication loadConfiguration
<...>

Make sure you configured your LED Matrix (See above), to control PixelController please check out the "FRONTENDS" chapter.

Non-rectangular LED matrix

If you have a non-rectangular LED matrix you want to use with PixelController you can use the custom mapping feature called output.mapping. While it's position define the target offset, the nr define the source, example:

output.mapping=5,8,2,...

This means the first pixel gets the content of 5th pixel, the second pixel gets the content of the 8th pixel, the third pixel gets the content of the 2nd pixel and so on.

For example you wired up this Christmas tree (Matrix resolution 9x12):

-- -- -- -- XX -- -- -- --         -- -- -- -- 01 -- -- -- -- ( 09)
-- -- -- XX XX XX -- -- --         -- -- -- 02 03 04 -- -- -- ( 18)
-- -- XX XX XX XX XX -- --         -- -- 09 08 07 06 05 -- -- ( 27)
-- -- -- XX XX XX -- -- --         -- -- -- 10 11 12 -- -- -- ( 36)
-- -- XX XX XX XX XX -- --         -- -- 17 16 15 14 13 -- -- ( 45)
-- XX XX XX XX XX XX XX --         -- 18 19 20 21 22 23 24 -- ( 54)
-- -- XX XX XX XX XX -- --         -- -- 29 28 27 26 25 -- -- ( 63)
-- XX XX XX XX XX XX XX --         -- 30 31 32 33 34 35 36 -- ( 72)
XX XX XX XX XX XX XX XX XX         45 44 43 42 41 40 39 38 37 ( 81)
-- -- -- XX XX XX -- -- --         -- -- -- 46 47 48 -- -- -- ( 90)
-- -- -- -- XX -- -- -- --         -- -- -- -- 49 -- -- -- -- ( 99)
-- -- -- -- XX -- -- -- --         -- -- -- -- 50 -- -- -- -- (108)
       led position                       wiring order

To create a valid mapping use this config:

output.mapping=4, 12,13,14, 24,23,22,21,20, 30,31,32, 42,41,40,39,38, 46,47,48,49,50,51,52 ...

With this feature you can use all kinds of matrices, for example a circle matrix.

How to use PixelInvaders.net

PixelController allows you to network enable the PixelInvaders panels. See my Blog post for details. Here is the Quick Guide:

  • Install ser2net on your RPi
  • configure ser2net: 5333:raw:500:/dev/ttyACM0:115200 8DATABITS NONE 1STOPBIT
  • connect the Teensy board via USB to the RPi
  • start ser2net daemon
  • configure the PixelInvaders.net IP address in the config.properties file
  • have fun

Send Image data via OSC to PixelController

You can control PixelController remotely by sending OSC Messages. But you can also send image data to PixelController via OSC (/OSC_GENERATOR1 and /OSC_GENERATOR2).

First you need to find out the resolution for your Output device. Start PixelController and switch to the INFO tab. Search for the Internal Buffersize setting, this is the internal resolution. Now you have two options

  • send 8bpp (greyscale) image data to PixelController (Resolution X * Resolution Y * 1bpp). You can use Effects, Mixer and Colorsets.
  • send 24bpp image data to PixelController (Resolution X * Resolution Y * 3bpp). PixelController activates the pass through mode and Effects, Mixer and Colorsets cannot be used.

See the Processing examples OscSendControllMessages/sendImageKreise and OscSendControllMessages/sendImageKreise24bpp.

Create Blinkenlights movie files

Links that help you create Blinkenlights files:

A note about BLIMP, if you save a file, make sure to add the ".bml" file extension, else it may fail.

##OSC MESSAGES

Here are all commands PixelController knows.

    CHANGE_GENERATOR_A          # of parameters: 1     <INT> change first generator for current visual
    CHANGE_GENERATOR_B          # of parameters: 1     <INT> change first generator for current visual
    CHANGE_EFFECT_A             # of parameters: 1     <INT> change first effect for current visual
    CHANGE_EFFECT_B             # of parameters: 1     <INT> change second effect for current visual
    CHANGE_MIXER                # of parameters: 1     <INT> change mixer for current visual
    CURRENT_VISUAL              # of parameters: 1     <INT> select actual visual
    CURRENT_COLORSET            # of parameters: 1     <INT> select actual ColorSet

    CHANGE_OUTPUT_VISUAL        # of parameters: 1     <INT> change visual for current output
    CHANGE_OUTPUT_FADER         # of parameters: 1     <INT> change fader for current output
    CHANGE_ALL_OUTPUT_VISUAL    # of parameters: 1     <INT> change visual for all outputs
    CHANGE_ALL_OUTPUT_FADER     # of parameters: 1     <INT> change fader for all outputs
    CURRENT_OUTPUT              # of parameters: 1     <INT> select current output

    BLINKEN                     # of parameters: 1     <STRING> file to load for the blinkenlights generator
    IMAGE                       # of parameters: 1     <STRING> image to load for the simple image generator
    TEXTDEF                     # of parameters: 1     <INT> select texture deformation option, 1-11
    ZOOMOPT                     # of parameters: 1     <INT> select zoom options 1-4
    COLOR_SCROLL_OPT            # of parameters: 1     <INT> select color scroll fading direction, 1-14
    TEXTWR                      # of parameters: 1     <STRING> update text for textwriter generator
    TEXTWR_OPTION               # of parameters: 1     <INT> set mode textwriter (pingpong scroller, left scroller)
    CHANGE_BRIGHTNESS           # of parameters: 1     <INT> output brightness 0 .. 100
    GENERATOR_SPEED             # of parameters: 1     <INT> generator speed 0 .. 200 (default speed is 100)
    BEAT_WORKMODE               # of parameters: 1     <INT> change beat workmode 0-2
    OSC_GENERATOR1              # of parameters: 1     <BLOB> contains Xres*Yres*8bpp bytes or Xres*Yres*24bpp bytes raw imagedata
    OSC_GENERATOR2              # of parameters: 1     <BLOB> contains Xres*Yres*8bpp bytes or Xres*Yres*24bpp bytes raw imagedata

    CHANGE_THRESHOLD_VALUE      # of parameters: 1     <INT> select current threshold for the threshold effect, 0-255
    CHANGE_ROTOZOOM             # of parameters: 1     <INT> select angle for the rotozoom effect, -127-127

    CHANGE_PRESET               # of parameters: 1     <INT> select current preset id
    CHANGE_SHUFFLER_SELECT      # of parameters: 18    <INT>, parameter contains 15 nibbles to enable or disable the shuffler option (gets changed in the random mode), 0=OFF, 1=ON, example: 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1
    SAVE_PRESET                 # of parameters: 0     <NO PARAM> save current preset settings
    LOAD_PRESET                 # of parameters: 0     <NO PARAM> load current preset settings
    RANDOM                      # of parameters: 1     <ON|OFF> enable/disable random mode
    RANDOM_PRESET_MODE          # of parameters: 1     <ON|OFF> enable/disable random preset mode
    RANDOMIZE                   # of parameters: 0     <NO PARAM> one shot randomizer
    PRESET_RANDOM               # of parameters: 0     <NO PARAM> one shot randomizer, use a pre-stored preset
    JMX_STAT                    # of parameters: 0     <NO PARAM> show JMX runtime statistic, default port: 1337 (use the -p switch)
    SCREENSHOT                  # of parameters: 0     <NO PARAM> save screenhot
    FREEZE                      # of parameters: 0     <NO PARAM> toggle pause mode
    TOGGLE_INTERNAL_VISUAL      # of parameters: 0     <NO PARAM> show/hide internal visual to save CPU

###OSC Parameter

If you want to select another Generator, Effect or Mixer via OSC Message, you need to specify it's ID. Here is the list of all Generator ID's:

	PASSTHRU(0)
	BLINKENLIGHTS(1)
	IMAGE(2)
	PLASMA(3)
	COLOR_SCROLL(4)
	FIRE(5)
	METABALLS(6)
	PIXELIMAGE(7)
	COLOR_FADE(8)
	TEXTWRITER(9)
	DROPS(10)
	CELL(11)
	PLASMA_ADVANCED(12)
	FFT(13)
	SCREEN_CAPTURE(14)
	OSC_GEN1(15)
	OSC_GEN2(16)
	VISUAL_ZERO(17)

Here is the list of all Effect ID's:

	PASSTHRU(0)
	INVERTER(1)
	ROTOZOOM(2)
	BEAT_HORIZONTAL_SHIFT(3)
	BEAT_VERTICAL_SHIFT(4)
	VOLUMINIZE(5)
	THRESHOLD(6)
	TEXTURE_DEFORMATION(7)
	ZOOM(8)
	FLIP_X(9)
	FLIP_Y(10)
	STROBO(11)
	ROTATE90(12)

Here is the list of all Mixer ID's:

	PASSTHRU(0)
	ADDSAT(1)
	MULTIPLY(2)
	MIX(3)
	NEGATIVE_MULTIPLY(4)
	CHECKBOX(5)
	VOLUMINIZER(6)
	EITHER(7)
	SUBSAT(8)
	HALFHALF(9)
	HALFHALFVERTICAL(10)
	MINIMUM(11)
	MAXIMUM(12)

IT DOES NOT WORK!

Try to understand WHAT does not work, which component? is it the frontend? PixelController itself? or no output?

Here are some common errors:

  • Is Java installed on your system? Open a terminal Windows (cmd.exe on Windows, terminal on OSX) and enter java -version.
  • Did you forgot to edit the configuration file config.properties. Take a look at the config examples files in the data/config.examples directory!
  • Did you flash the correct firmware to your Arduino/Teensy?
  • PixelInvaders panels: Make sure that the Panel shows an animated rainbow pattern when the panels are powered on (make sure that you also power the Arduino/Teensy board). If you don't see a animated rainbow, make sure the direction of the modules is correct and that the Arduino/Teensy, LED modules and PSU share common ground. Verify the Arduino IDE don't spit out errors when you upload the firmware to the teensy
  • PixelInvaders panels: Multiple users reported that the PixelInvader firmware did not work on a new Arduino UNO r3 board. I think the reason for this is the big serial latency. However using a Arduino UNO r1 worked flawlessly. Technically this is not a big deal, as the timeout value cold be adjusted in the firmware. Use a Teensy 2 board for best results.
  • Make sure you're using an up-to date Java Runtime (JRE), this usually helps if the JVM crashes.
  • If you use an extra long USB Cable (more than 5 meter) you might discover strange issues, try to use a short cable especially if you're uploading a firmware to the Arduino/Teensy.
  • The OSC Generator does not work: make sure you select the correct resolution for the OSC sender, take a look at the INFO tab, there you see the PixelController internal buffer size. Use this resolution in your OSC sender (or Processing sketch).

HOWTO BUILD PIXELCONTROLLER

Prerequisite:

Then run

# mvn initialize
to install the needed packages in your local repo and    
# mvn clean package
to build PixelController, the distribution directory is "target/assembly/PixelController-VERISON/".

Hint: if you're using eclipse and you see an error like this java.lang.NoClassDefFoundError: Could not initialize class gnu.io.RXTXVersionjava.lang.NoClassDefFoundError: Could not initialize class gnu.io.RXTXVersion make sure you add the lib/serial directory as "Native library location"

ADD NEW HARDWARE SUPPORT

It should be pretty simple to add support for new hardware. All Output code should go into the com.neophob.sematrix.output package (src/main/java/com/neophob/sematrix/output directory). All you need to do in the Output class is, take an array of int's (one int is used to store the 24 bpp) and send this buffer to your output device (via serial port, ethernet, bluetooth...). Maybe you need to reduce the color depth, flip each second scanline due hardware wiring, such helper methods should go into the OutputHelper.java class.

As a string point, add your hardware in the OutputDeviceEnum.java class and have a look where the other entries are referenced. Take a look at the existing Output classes, this should help you!

NEW RELEASE

Optional, license header check for all source files (http://code.mycila.com/license-maven-plugin/)

# mvn license:check -Dyear=2013 [email protected] -Dlicense.header=./../pixelcontroller-distribution/src/main/resources/header.txt 
# mvn license:format -Dyear=2013 [email protected] -Dlicense.header=./../pixelcontroller-distribution/src/main/resources/header.txt 

Use the Maven version plugin to update your POM’s versions:

# mvn versions:set -DnewVersion=2.0.0
# mvn versions:commit

Rebuild:

# mvn clean deploy

Test application, make sure the config.properties file is correct.

Update readme.pdf - use README.md as source.

Update Changelog, add git status:

# git diff v1.5.0 develop --stat

Commit and push new version:

# git commit pom.xml -m "release v1.5.1"
# git push

Tag the release branch:

# git tag -a v1.5.1
# git push --tags

Merge into the master branch and push:

# git checkout master
# git merge develop
# git push

Checkout the master branch (already done)

Do a deployment build:

# mvn clean deploy

Release

PERFORMANCE

With the JMX interface you can monitor the status of your PixelController instance in real time. This will provide you with useful data such as required time for each layer (generator, effect, mixer…), the frame rate of your instance, allowing you to diagnose problems or performance issues. To read the JMX data, you will need to use a JMX client or the PixConCli util.

Example how to use PixConCli:

localhost:PixelController-1.3-SNAPSHOT michu$ ./PixConCli.sh -c JMX_STAT -p 1337
Create an RMI connector client and connect it to the RMI connector server 127.0.0.1:1337
Get an MBeanServerConnection...

Generic:
server version           : 1.1
current fps              : 20,036 (100% of configured fps: 20)
frame count              : 1771
running since            : 0:01:28.980

The following average times have been collected during the last 10.007 seconds:
   generator             : 0,310ms
   effect                : 0,000ms
   output schedule       : 0,140ms
   fader                 : 0,000ms
   debug window          : 15,210ms
   output prepare wait   : 0,005ms
   output update wait    : 0,005ms
   matrix emulator window: 0,440ms

Ouput-specific average times for output #1: NULL (NullDevice)
   prepare               : 1,550ms
   update                : 0,000ms

Close the connection to the server

CREDITS

  • Michael Vogt: Project Lead, Main Developer
  • Markus Lang: Maven enhancements, Output enhancements, Performance enhancements, Rainbowduino V3 support
  • McGyver666: Contributor
  • Rainer Ostendorf: Artnet Output
  • Pesi: miniDMX Output, Tester
  • Scott Wilson: Arduino/Rainbowduino Howto
  • Noxx6: Bugfixes
  • okyeron: Stealth output device
  • Dr. Stahl: Documentation, Tester

pixelcontroller's People

Contributors

gpulido avatar jacksonic avatar markuslang79 avatar neophob avatar okyeron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pixelcontroller's Issues

bad pixel marker

add option to define bad pixels (int array). bad pixels are always black.

config option:
bad.pixel=4,5

Time triggered changes of Pixelcontroller possible with OSC-bundle messages?

hi, i am digging into OSC-Bundle messages and saw the specs about the timestamp in OSC-Bundle messages. it says, If the thimestap is in the future, the server will process it than. That means, one could send OSC-Messages as a timer, to change presets at a later time. do you ever experienced/tested this? Will it work on your implementation of an OSC-Server?

Frozen on "Initialize Output Device"

Hi there,

Im trying to use your PixelController with a chain of WS2801 pixels.
I grabbed the tpm2serial firmware, set it up for my arduino and LEDs.

When it starts up, it gives the gradual fade of white from the showInitImage().

Then I edited the config.properties to what I think should work for me:


font.filename=04B_03__.TTF
font.size=82

#x/y offset for screen capturing generator
#if you define screen.capture.window.size.x as 0, the screen capture generator will be disabled
screen.capture.offset=100
screen.capture.window.size.x=0
#screen.capture.window.size.x=500
screen.capture.window.size.y=300

fps=25

startup.in.randommode=false

additional.visual.screens=0

osc.listening.port=9876

sound.analyze.enabled=true
sound.silence.threshold=0.0005f

gui.window.maximal.width=620
gui.window.maximal.height=600

led.pixel.size=16

output.resolution.x=16
output.resolution.y=8

output.snake.cabling=true

panel.gamma.tab=GAMMA_22

tpm2.device=/dev/ttyUSB0
tpm2.baudrate=115200

#EOF

When I run the jar, it stops on "Initialize Output Device"...
If I use the null device, it works fine.

Log:

Mar 30, 2014 8:57:51 PM com.neophob.PixelController setup
INFO: 

PixelController Developer Snapshot - http://www.pixelinvaders.ch


Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.FileUtils <init>
INFO: Use root directory: /home/michaelc/software/pixelcontroller-distribution-2.0.0
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.setup.InitApplication loadConfiguration
INFO: Config loaded, 20 entries
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.properties.ApplicationConfigurationHelper <init>
INFO: found Tpm2 serial device: 1
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.Collector init
INFO: Initialize collector
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.helper.InitHelper getColorPalettes
INFO: ColorSets loaded, 35 entries
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.Collector init
WARNING: FAILED TO INITIALIZE SOUND INSTANCE (Error). Disable sound input.
java.lang.NoSuchMethodError: ddf.minim.spi.MinimServiceProvider.getAudioInput(IIFI)Lddf/minim/spi/AudioStream;
    at ddf.minim.Minim.getLineIn(Unknown Source)
    at ddf.minim.Minim.getLineIn(Unknown Source)
    at com.neophob.sematrix.core.sound.SoundMinim.<init>(SoundMinim.java:74)
    at com.neophob.sematrix.core.glue.Collector.init(Collector.java:199)
    at com.neophob.PixelController.asyncInitApplication(PixelController.java:176)
    at com.neophob.PixelController.draw(PixelController.java:275)
    at processing.core.PApplet.handleDraw(PApplet.java:1891)
    at processing.core.PApplet.run(PApplet.java:1788)
    at java.lang.Thread.run(Thread.java:701)
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.sound.SoundDummy <init>
INFO: Sound thread started, dummy implementation...
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.MatrixData <init>
INFO: screenSize: 128 (16 * 8), multiplication factor: 8 (128 * 64)
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.PixelControllerGenerator initAll
INFO: Start init, data root: /home/michaelc/software/pixelcontroller-distribution-2.0.0
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: BLINKENLIGHTS, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Blinkenlights <init>
INFO: Blinkenlights, found 20 movie files
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Blinkenlights loadFile
INFO: Load blinkenlights file /home/michaelc/software/pixelcontroller-distribution-2.0.0/data/blinken/bb-frogskin2.bml.
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.blinken.BlinkenLibrary loadFile
INFO: Loaded file /home/michaelc/software/pixelcontroller-distribution-2.0.0/data/blinken/bb-frogskin2.bml / 600 frames in 446ms
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Blinkenlights loadFile
INFO: DONE
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: IMAGE, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Image loadFile
INFO: load image /home/michaelc/software/pixelcontroller-distribution-2.0.0/data/pics/_logo.gif
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Image loadFile
INFO: resize to img _logo.gif 128, 64 using PIXEL_RESIZE
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Image <init>
INFO: Image, found 45 image files
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: PLASMA, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: PLASMA_ADVANCED, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: FIRE, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: PASSTHRU, resize option: PIXEL_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: METABALLS, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: PIXELIMAGE, resize option: PIXEL_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.PixelImage <init>
INFO: PixelImage resize value 16/8 [128/64]
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: TEXTWRITER, resize option: PIXEL_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Textwriter <init>
INFO: Loaded font 04B_03__.TTF, size: 82
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: CELL, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: FFT, resize option: PIXEL_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: DROPS, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: COLOR_SCROLL, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: COLOR_FADE, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: OSC_GEN1, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: OSC_GEN2, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.Generator <init>
INFO: Generator: internalBufferSize: 8,192 (128/64), name: VISUAL_ZERO, resize option: QUALITY_RESIZE 
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.generator.PixelControllerGenerator initAll
INFO: Init finished
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.Collector init
INFO: Initialize 2 Visuals
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.Collector init
INFO: Initialize output
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.glue.FileUtils loadPresents
INFO: Loaded 128 presets from file presets.led
Mar 30, 2014 8:57:52 PM com.neophob.sematrix.core.jmx.PixelControllerStatus <init>
INFO: Initialize the PixelControllerStatus JMX Bean
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.osc.PixelControllerOscServer <init>
INFO: Start OSC Server at port 9,876
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.osc.server.impl.OscServerImpl <init>
INFO: OSC Server initialized on port 9876, buffersize: 50000
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.osc.server.impl.OscServerImpl startServer
INFO: OSC Server started
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.layout.Layout <init>
INFO: Layout created: HORIZONTAL, size row 1: 1, row 2: 0
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.layout.HorizontalLayout <init>
INFO: HorizontalLayout created, size row1: 1, row2:0
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.output.Output <init>
INFO: Output created: TPM2, Layout: HORIZONTAL, BPP: 8, Gamma Correction: GAMMA_22
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.output.OnePanelResolutionAwareOutput <init>
INFO: Output Settings:
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.output.OnePanelResolutionAwareOutput <init>
INFO:   Resolution: 16/8
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.output.OnePanelResolutionAwareOutput <init>
INFO:   SnakeCabeling: true
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.output.OnePanelResolutionAwareOutput <init>
INFO:   Rotate: NO_ROTATE
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.output.OnePanelResolutionAwareOutput <init>
INFO:   ColorFormat: RGB
Mar 30, 2014 8:57:53 PM com.neophob.sematrix.core.output.OnePanelResolutionAwareOutput <init>
INFO:   Output Mapping entry size: 0

What might be wrong?

/dev/ttyUSB0 does exist, and I am in the "dialout" group.

Feature Suggestion: Generator FX for advanced/remote Audio Trigger

i know, Pixelcontroller processes Audio-Input. i.e. somehow takes beats into the generation of effects on the matrix. What about a generator/effect, which shows Audio-Input as simple (or complex) lights?

a picture shows more than thousand words, thas what inspired me: blowlight:
http://vimeo.com/23789276

One could think of an separate (lan/wlan) arduino/ethernet or iboard with mic-input transferring audio-level to Pixelcontroller to generate blowlight. Just as an suggestion. And i know: a lot of work to do ...

ERR -2 with tpm2serial

Hey friends, thanks for making this available! I'm very excited about getting this to work, but having a bit of trouble... I have an UNO with 7x7 2811 pixels. I uploaded tpm2serial and I get the test image show up... after that I get HI and when I run the PixelController I start getting ERR: -2. The RX/TX lights on the board flash rapidly when controller is running and Output Device in the top right corner is green TPM2

Any suggestions?

Thank you!

Here are the settings that I changed

led.pixel.size=7

output.resolution.x=7
output.resolution.y=7

tpm2.device=/dev/tty.usbmodem1411
tpm2.baudrate=115200

Here's my Arduino code

#include <FastSPI_LED2.h>

//---- START USER CONFIG ----

#define DEBUG 1

//how many led pixels are connected
#define NUM_LEDS 49

//How many "universe" are connected, used to calculate offset
#define TOTAL_PACKET_SIZE 4

// Teensy 3.0 has the LED on pin 13
const int ledPin = 11;

//---- END USER CONFIG ----

#define BAUD_RATE 115200
//#define BAUD_RATE 57600

//define some tpm constants
#define TPM2NET_HEADER_SIZE 4
#define TPM2NET_HEADER_IDENT 0x9c
#define TPM2NET_CMD_DATAFRAME 0xda
#define TPM2NET_CMD_COMMAND 0xc0
#define TPM2NET_CMD_ANSWER 0xaa
#define TPM2NET_FOOTER_IDENT 0x36
#define SERIAL_FOOTER_SIZE 1

//3 byte per pixel or 24bit (RGB)
#define BPP 3

//package size we expect.
#define MAX_PACKED_SIZE 520

#define PIXELS_PER_PACKET 7

// buffers for receiving and sending data
uint8_t packetBuffer[MAX_PACKED_SIZE]; //buffer to hold incoming packet
uint16_t psize;
uint8_t currentPacket;
uint8_t totalPacket;

CRGB leds[NUM_LEDS];

//********************************
// SETUP
//********************************
void setup() {
  Serial.begin(BAUD_RATE);
  Serial.flush();
  Serial.setTimeout(20);
#ifdef DEBUG
  Serial.println("HI");
#endif

  pinMode(ledPin, OUTPUT);
  debugBlink(500);

  memset(packetBuffer, 0, MAX_PACKED_SIZE);

  //LEDS.addLeds<WS2801>(leds, NUM_LEDS);
  LEDS.addLeds<WS2811, 13, RGB>(leds, NUM_LEDS); 

  LEDS.setBrightness(64);

  showInitImage();      // display some colors
}

//********************************
// LOOP
//********************************
void loop() {
  int16_t res = readCommand();
  if (res > 0) {
#ifdef DEBUG
    Serial.print("FINE: ");
    Serial.print(psize, DEC);
    Serial.print("/");
    Serial.print(currentPacket, DEC);

//    Serial.send_now();
#endif
    // digitalWrite(ledPin, HIGH);
    updatePixels();
    // digitalWrite(ledPin, LOW);
  }
#ifdef DEBUG
  else {
    if (res!=-1) {
      Serial.print("ERR: ");
      Serial.println(res, DEC);
//      Serial.send_now();
    }
  }
#endif
}

//********************************
// UPDATE PIXELS
//********************************
void updatePixels() {
  uint8_t nrOfPixels = psize/3;

  uint16_t ofs=0;
  uint16_t ledOffset = PIXELS_PER_PACKET*currentPacket;

  for (uint16_t i=0; i<nrOfPixels; i++) {
    leds[i+ledOffset] = CRGB(packetBuffer[ofs++], packetBuffer[ofs++], packetBuffer[ofs++]);
  }

  //update only if all data packets recieved
  if (currentPacket==totalPacket-1) {
#ifdef DEBUG
    Serial.println("DRAW!");
//    Serial.send_now();
#endif
    LEDS.show();
  } else {
#ifdef DEBUG
    Serial.print("NOTUPDATE: ");
    Serial.println(currentPacket, DEC);
//    Serial.send_now();
#endif
  }
}

//********************************
// READ SERIAL PORT
//********************************
int16_t readCommand() {
  uint8_t startChar = Serial.read();
  if (startChar != TPM2NET_HEADER_IDENT) {
    return -1;
  }

  uint8_t dataFrame = Serial.read();
  if (dataFrame != TPM2NET_CMD_DATAFRAME) {
    return -2;
  }

  uint8_t s1 = Serial.read();
  uint8_t s2 = Serial.read();
  psize = (s1<<8) + s2;
  if (psize < 6 || psize > MAX_PACKED_SIZE) {
    return -3;
  }

  currentPacket = Serial.read();
  totalPacket = Serial.read();

  //get remaining bytes
  uint16_t recvNr = Serial.readBytes((char *)packetBuffer, psize);
  if (recvNr!=psize) {
    return -5;
  }

  uint8_t endChar = Serial.read();
  if (endChar != TPM2NET_FOOTER_IDENT) {
    return -6;
  }

  return psize;
}


// --------------------------------------------
//     create initial image
// --------------------------------------------
void showInitImage() {
  for (int i = 0 ; i < NUM_LEDS; i++ ) {
    //leds[i] = CRGB(i&255, (i>>1)&255, (i>>2)&255);
    leds[i] = CRGB(255, 0, 0);
  }
  LEDS.show();
}

void debugBlink(uint8_t t) {
  digitalWrite(ledPin, HIGH);
  delay(t);
  digitalWrite(ledPin, LOW);
}

Speed of color-scroll, metaballs, plasma... (Feature-Request?)

hi,
me again. is the speed of color-scroll, metaball or plasma adjustable?
i mean not only the speed of the effect rotozoom. insted the speed how fast the plasma or the metaballs are moving? i could adjust it through fps, but not directly, right?

i changed pixelcontroller.jar to a virtual-machine with ubuntu13.10 and its running now very quick, fps are unchanged... i would like it more in slowmotion ...

cheers,
ozett

Rainbowduino IDs

Hi,

Yesterday I've finally found out why my Rainbowduino controllers didn't work at all. While flashing my controllers I gave then the IC2 IDs 0x11, 0x12, 0x13, etc. and I configured them in 'config.properties' to 'layout.row1.i2c.addr=11,12,13,..' without thinking a bit first.

What happens is that the current implementation of the PropertiesHelper.parseI2cAddress() method reads those values as Integer.parseInt(s); although it should be Integer.parseInt(s, 16);. So at the end PixelController tried to talk to Rainbowduinos with the IDs B, C, D, etc. which of course doesn't work.

I'd like to fix this issue since this sounds like a common pitfall for guys that try to use higher IDs than 0x01 -> 0x09. Just defining the radix value of Inteter.parseInt(); to 16 is just a hack since than the Rainbowduino classes will log messages with the integer value of the hexadecimal ID which again might lead to confusion. I'd suggest to change the format in 'config.properties' to 0x11, 0x12, 0x13, etc., check them via a regex for correct formatting and add them to a list of Strings. I personally would also change the method signatures of the Rainbowduino class from List to List till the openPort() method so that the correct ID values are logged.

Before applying any changes and sending pull requests I'd like to check with you first what you think about this change since it also affects the neorainbowduino projects which isn't part of the PixelController project.

Greetings,
Markus

2.0.0.RC1.1, OSC-Message FREEZE does not update GUI (Freeze)

If i send OSC-Messages to Pixelcontroller, i.e. the Generator-Layer1 is updated with new Value.

But if i send /FREEZE, the GUI-Checkbox for "FREEZE Update" in the upper right corner is not...

bug?


another one is the numbering of Generators. I have to send INTeger-Numbers via OSC-Messages, but on the GUI, there a no numbers in the long drop-down-box. An index-numbering would be helpfull...

Feature Request? Telnet-interface. cmd-Server?

hi,
i am using your extrem wonderfull pixelcontroler software to control a led-matrix on our wall in our home-automated house (knx/gira-homeserver). it would be phantastic, if i could send cmd from a plain linux cmd-line (bash) to the pixelcontroler. via netcut or socat or telnet or something alike. you know mpd (the music daemon)? it has a listener-service for simple commands to change sound, songs, etc. i would love to see something in pixel-controller. no to have to use your java-cmd-shell...

is there more to tell make this clear?
(how does github helps to communicate about a reques/issue? i wait for email...?)

cheers

Addition1: i thought over it. maybe i can use OSC-messages? i will investigate ...
Addition2: i found something similar here: https://github.com/jkroll20/moodpd


i drop a photo of our recent led-matrix, ok? (it is a bit to small, cabling will be changed to wireless tomorrow. sorry. it is running now for 1 day, but all are extremous enthusiastic about pixel-controller. so we will go further next days ...)

20131114_105234

Rainbowduino v3.0

Hello. First, thanks for the awesome looking project. Do you know if the project will work using Rainbowduino v3.0 hardware boards (specifically, I have a 3.0b, model ARD127D2P). I'm fairly sure I followed the Rainbowduino Readme perfectly, but it seems that I'm getting some errors finding my Rainbowduino when I run the shell script (PixelController.sh):

I see this hundreds of times:
Jan 15, 2012 11:17:54 PM com.neophob.sematrix.output.neorainbowduino.Rainbowduino waitForAck
INFO: No serial reply, duration: 51ms

Any ideas?

Serial communication

Hi,

I can't seem to get PixelController working with an arduino + LPD6803.
(Sketch is loaded, rainbow is showing.)
I get this when running PixelController.command:

22-jun-2012 16:05:13 com.neophob.sematrix.output.lpd6803.Lpd6803
INFO: Initialize LPD6803 lib v1.0
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre5
native lib Version = RXTX-2.2pre4
22-jun-2012 16:05:13 com.neophob.sematrix.output.lpd6803.Lpd6803
INFO: open port: /dev/tty.usbmodemfa131
22-jun-2012 16:05:14 com.neophob.sematrix.output.lpd6803.Lpd6803 waitForAck
INFO: #### No serial reply, duration: 36ms ###
22-jun-2012 16:05:14 com.neophob.sematrix.output.lpd6803.Lpd6803 openPort
WARNING: No response from port /dev/tty.usbmodemfa131
22-jun-2012 16:05:14 com.neophob.sematrix.output.lpd6803.Lpd6803 openPort
WARNING: Failed to open port /dev/tty.usbmodemfa131: com.neophob.sematrix.output.NoSerialPortFoundException: No response from port /dev/tty.usbmodemfa131
22-jun-2012 16:05:14 com.neophob.sematrix.output.lpd6803.Lpd6803
INFO: open port: /dev/cu.usbmodemfa131
22-jun-2012 16:05:16 com.neophob.sematrix.output.lpd6803.Lpd6803 waitForAck
INFO: #### No serial reply, duration: 36ms ###
22-jun-2012 16:05:16 com.neophob.sematrix.output.lpd6803.Lpd6803 openPort
WARNING: No response from port /dev/cu.usbmodemfa131
22-jun-2012 16:05:16 com.neophob.sematrix.output.lpd6803.Lpd6803 openPort
WARNING: Failed to open port /dev/cu.usbmodemfa131: com.neophob.sematrix.output.NoSerialPortFoundException: No response from port /dev/cu.usbmodemfa131

Tried with Arduino UNO v2 and Arduino Nano.

Do you have any idea what's going worng?

Daan

Feature Request? Random-Mode with selectable time-life

hi,
Random mode changes the actual visualisation-setting by detetion of an incoming beat, right?

It would be wonderfull, if one could configure a timespan for the change of visualisation-
setting. i.e. switch visualisation every 60 sec. / 10 min...

cheers

OSC-Message: Save state (Feature Request)

As i interrupt a running Pixecontroller an an event-triggered base, i wanted to return to the previous state before the interruption. And as the actual running state is somehow unpredictable while pixelcontroller is running with randomly choosen presets, a save-state OSC-Message would be helpful. And of course the load state message.

Surely one could consider, if there a some exections to what elements should belong to a complete/half STATE, or STATE1,STATE2, ... and which may not ? (Visual/Speed...?)

Rainbowduino v3.0b freezes after a few seconds

First, awesome work. I love what your doing with light and sound and I love even more that you are putting it out here for the public to enjoy.

I see in the other issues here that you are working on getting the v3.0b Rainbowduino to jive with the Pixelcontroller, so this may be what you are currently working on, but I thought I'd throw it out any way.

I've been able to use Pixelcontroller to light up my homemade LED matrix (64 RGB LEDs) via the Rainbowduino v3.0b for about 5 to 10 seconds, at which point it freezes. The RX light on the board continues to flash red, but the image on the matrix does not change.

I've had the same results when I run the program from my Mac and from my PC.

I made the changes to the wire.h and twi.h files (increased frequency to 400 kHz, and buffer size to 98).

Again, if this is the same issue you are already working on with the RainbowduinoV3, feel free to ignore this post, but if you see something simple that I'm doing, I'd love to hear what it is! I feel like I'm so close to having this awesomness up and running!

Here is the log from the last time I ran Pixelcontroller:

Aug 9, 2013 6:23:54 PM com.neophob.PixelController setup
INFO:
Aug 9, 2013 6:23:54 PM com.neophob.sematrix.setup.InitApplication loadConfiguration
INFO: Config loaded, 21 entries
Aug 9, 2013 6:23:54 PM com.neophob.sematrix.properties.ApplicationConfigurationHelper
INFO: found RainbowduinoV3 device: 1
Aug 9, 2013 6:23:54 PM com.neophob.sematrix.setup.InitApplication getColorPalettes
INFO: ColorSets loaded, 35 entries
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.input.SoundMinim run
INFO: Sound thread started...
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.glue.MatrixData
INFO: screenSize: 64 (8 * 8),
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.PixelControllerGenerator initAll
INFO: Start init
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: BLINKENLIGHTS
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Blinkenlights
INFO: Blinkenlights, found 20 movie files
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.blinken.BlinkenLibrary loadFile
INFO: Loaded file blinken/torus.bml / 250 frames in 209ms
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: IMAGE
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Image loadFile
INFO: resize to img logo.gif 64, 64
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Image
INFO: Image, found 46 image files
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PLASMA
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PLASMA_ADVANCED
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: FIRE
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PASSTHRU
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: METABALLS
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PIXELIMAGE
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: TEXTWRITER
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Textwriter
INFO: Loaded font 04B_03__.TTF, size: 82
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: CELL
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: FFT
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: DROPS
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: COLOR_SCROLL
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: COLOR_FADE
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: OSC_GEN1
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: OSC_GEN2
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: VISUAL_ZERO
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.generator.PixelControllerGenerator initAll
INFO: Init finished
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.properties.ApplicationConfigurationHelper loadPresents
INFO: Loaded 101 presents from file data/presents.led
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.jmx.PixelControllerStatus
INFO: Initialize the PixelControllerStatus JMX Bean
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.listener.TcpServer
INFO: Server started at port 3,448
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.listener.TcpServer run
INFO: Ready receiving messages...
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.listener.TcpServer connectToClient
INFO: Pure Data Client not found at 127.0.0.1:3449
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.listener.TcpServer
INFO: Pure Data Client not available yet!
Aug 9, 2013 6:23:55 PM com.neophob.sematrix.listener.OscServer
INFO: Start OSC Server at port 9,876
Aug 9, 2013 6:23:56 PM com.neophob.sematrix.layout.Layout
INFO: Layout created: HORIZONTAL, size row 1: 1, row 2: 0
Aug 9, 2013 6:23:56 PM com.neophob.sematrix.layout.HorizontalLayout
INFO: HorizontalLayout created, size row1: 1, row2:0
Aug 9, 2013 6:23:56 PM com.neophob.sematrix.output.Output
INFO: Output created: RAINBOWDUINO_V3, Layout: HORIZONTAL, BPP: 8, Gamma Correction: GAMMA_25
Aug 9, 2013 6:23:56 PM com.neophob.sematrix.output.RainbowduinoV3Device
INFO: Try to open serial port /dev/tty.usbserial-A901LS8Z
Aug 9, 2013 6:23:57 PM de.programmerspain.rv3sf.api.RainbowduinoV3
INFO: Created RainbowduinoV3 instance using serial port: '/dev/tty.usbserial-A901LS8Z'
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.output.RainbowduinoV3Device
INFO: Rainbowduino output initialized sucessfully
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.layout.Layout
INFO: Layout created: HORIZONTAL, size row 1: 1, row 2: 0
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.layout.HorizontalLayout
INFO: HorizontalLayout created, size row1: 1, row2:0
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.output.gui.GeneratorGuiCreator
INFO: create GUI, nr of screens: 2
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.output.gui.GeneratorGuiCreator
INFO: create frame with size 820/650, aspect: 1.0
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.output.gui.GeneratorGui setup
INFO: Create GUI Window with size 820/650
Aug 9, 2013 6:23:57 PM com.neophob.PixelController asyncInitApplication
INFO: --- PixelController Setup END ---
Aug 9, 2013 6:23:57 PM com.neophob.PixelController asyncInitApplication
INFO: ---------------------------------
Aug 9, 2013 6:23:57 PM com.neophob.PixelController asyncInitApplication
INFO:
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.output.gui.GeneratorGui setup
INFO: GUI logo loaded
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.output.gui.P5EventListener controlEvent
INFO: CURRENT_VISUAL Value: 0.0
Aug 9, 2013 6:23:57 PM com.neophob.sematrix.output.gui.P5EventListener controlEvent
INFO: CURRENT_OUTPUT: 0.0
Aug 9, 2013 6:23:57 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 0 after waiting for 50ms. Serial port has only 0 bytes available.
Aug 9, 2013 6:23:57 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: Controller has returned error code: 'STATE_INCOMPLETE_FRAME', error value: '1'
Aug 9, 2013 6:23:57 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: Controller has returned error code: 'STATE_INCOMPLETE_FRAME', error value: '2'
Aug 9, 2013 6:23:57 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: Controller has returned error code: 'STATE_INCOMPLETE_FRAME', error value: '3'
Aug 9, 2013 6:23:59 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 3 after waiting for 50ms. Serial port has only 0 bytes available.
Aug 9, 2013 6:23:59 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 0 after waiting for 50ms. Serial port has only 0 bytes available.
Aug 9, 2013 6:23:59 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 1 after waiting for 50ms. Serial port has only 0 bytes available.

RainbowduinoV3 hanging

I have a rainbowduino V3 that hangs a few seconds after pixel controller connects.
This is what's in my log file

Feb 25, 2013 8:00:12 PM com.neophob.PixelController setup
INFO:

PixelController v1.3.1-SNAPSHOT - http://www.pixelinvaders.ch

Feb 25, 2013 8:00:12 PM com.neophob.PixelController setup
INFO:
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.setup.InitApplication loadConfiguration
INFO: Config loaded, 21 entries
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.properties.ApplicationConfigurationHelper
INFO: found RainbowduinoV3 device: 1
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.setup.InitApplication getColorPalettes
INFO: ColorSets loaded, 35 entries
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.input.SoundMinim run
INFO: Sound thread started...
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.glue.MatrixData
INFO: screenSize: 64 (8 * 8),
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: BLINKENLIGHTS
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Blinkenlights
INFO: Blinkenlights, found 20 movie files
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.blinken.BlinkenLibrary loadFile
INFO: Loaded file blinken/torus.bml / 250 frames in 119ms
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: IMAGE
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Image loadFile
INFO: resize to img logo.gif 64, 64
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Image
INFO: Image, found 15 image files
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PLASMA
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PLASMA_ADVANCED
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: FIRE
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PASSTHRU
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: METABALLS
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PIXELIMAGE
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: TEXTWRITER
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Textwriter
INFO: Loaded font 04B_03__.TTF, size: 82
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: CELL
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: FFT
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: DROPS
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: COLOR_SCROLL
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: COLOR_FADE
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: OSC_GEN1
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: OSC_GEN2
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.properties.ApplicationConfigurationHelper loadPresents
INFO: Loaded 60 presents from file data/presents.led
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.jmx.PixelControllerStatus
INFO: Initialize the PixelControllerStatus JMX Bean
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.listener.TcpServer
INFO: Server started at port 3,448
Feb 25, 2013 8:00:13 PM com.neophob.sematrix.listener.TcpServer run
INFO: Ready receiving messages...
Feb 25, 2013 8:00:14 PM com.neophob.sematrix.listener.TcpServer connectToClient
INFO: Pure Data Client not found at 127.0.0.1:3449
Feb 25, 2013 8:00:14 PM com.neophob.sematrix.listener.TcpServer
INFO: Pure Data Client not available yet!
Feb 25, 2013 8:00:14 PM com.neophob.sematrix.listener.OscServer
INFO: Start OSC Server at port 9,876
Feb 25, 2013 8:00:15 PM com.neophob.sematrix.layout.Layout
INFO: Layout created: HORIZONTAL, size row 1: 1, row 2: 0
Feb 25, 2013 8:00:15 PM com.neophob.sematrix.layout.HorizontalLayout
INFO: HorizontalLayout created, size row1: 1, row 2:0
Feb 25, 2013 8:00:15 PM com.neophob.sematrix.output.Output
INFO: Output created: RAINBOWDUINO_V3, Layout: HORIZONTAL, BPP: 8, Gamma Correction: GAMMA_25
Feb 25, 2013 8:00:16 PM de.programmerspain.rv3sf.api.RainbowduinoV3
INFO: Created RainbowduinoV3 instance using serial port: 'COM3'
Feb 25, 2013 8:00:16 PM com.neophob.sematrix.layout.Layout
INFO: Layout created: HORIZONTAL, size row 1: 1, row 2: 0
Feb 25, 2013 8:00:16 PM com.neophob.sematrix.layout.HorizontalLayout
INFO: HorizontalLayout created, size row1: 1, row 2:0
Feb 25, 2013 8:00:16 PM com.neophob.sematrix.output.gui.GeneratorGuiCreator
INFO: create frame with size 820/650, aspect: 1.0
Feb 25, 2013 8:00:16 PM com.neophob.sematrix.output.gui.GeneratorGui setup
INFO: Create GUI Window with size 820/650
Feb 25, 2013 8:00:17 PM com.neophob.PixelController asyncInitApplication
INFO: --- PixelController Setup END ---
Feb 25, 2013 8:00:17 PM com.neophob.PixelController asyncInitApplication
INFO: ---------------------------------
Feb 25, 2013 8:00:17 PM com.neophob.PixelController asyncInitApplication
INFO:
Feb 25, 2013 8:00:17 PM com.neophob.sematrix.output.gui.GeneratorGui setup
INFO: GUI logo loaded
Feb 25, 2013 8:00:17 PM com.neophob.sematrix.output.gui.P5EventListener controlEvent
INFO: CURRENT_VISUAL Value: 0.0
Feb 25, 2013 8:00:17 PM com.neophob.sematrix.output.gui.P5EventListener controlEvent
INFO: CURRENT_OUTPUT: 0.0
Feb 25, 2013 8:00:17 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 0 after waiting for 50ms. Serial port has only 0 bytes available.
Feb 25, 2013 8:00:17 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: Controller has returned error code: 'STATE_INCOMPLETE_FRAME', error value: '1'
Feb 25, 2013 8:00:17 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: Controller has returned error code: 'STATE_INCOMPLETE_FRAME', error value: '2'
Feb 25, 2013 8:00:17 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: Controller has returned error code: 'STATE_INCOMPLETE_FRAME', error value: '3'
Feb 25, 2013 8:00:48 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 1 after waiting for 50ms. Serial port has only 0 bytes available.
Feb 25, 2013 8:00:48 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 2 after waiting for 50ms. Serial port has only 0 bytes available.
Feb 25, 2013 8:00:48 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 3 after waiting for 50ms. Serial port has only 0 bytes available.
Feb 25, 2013 8:00:48 PM de.programmerspain.rv3sf.api.RainbowduinoV3 waitForACK
WARNING: No serial ACK reply received for frame fragment 0 after waiting for 50ms. Serial port has only 0 bytes available.

Feature Request: Color-Control for Blinken-Lights images

hi,
as i have control over each pixel of my 8x12 matrix within blimp (the editor for blinkenlights). i can paint every pixel in this editor with 1 out of 8 grayshades.

Is there a way to map these 8 values to RGB values, so that i can control to paint each pixel in (1 out of) 8 colours (through transforming of 8 grayshades to RGB)?

this could mean to create a own colorset, doesnt this?

at the moment i can choose colorsets, but i cannot see which gray is related to which color within the colorset ...

(background: i draw a horizontal line in a certain color, to show the daily temperature for a time-period. the rest of the day pixelcontroller is doing its normal generator-work ...)

Box Layout Issue

The Box Layout has a bug that occur if 6 panels are used:

O X X
O X X

-> where O is visual 1 and X is visual 2.

now the X visual gets distorted, as the start offset is wrong!

BoxLayout, maybe function getXOffsetForScreen

Chain errors after 128 pixels

Im trying to run 512 leds (lpd6803) using spi pins (11,13) on arduino uno. Seems no matter what combination of pixels and panels i set the chain does odd things after the first 128 pixels. I have tried setting number of panels to

define NR_OF_PANELS 16

define PIXELS_PER_PANEL 32

define NR_OF_PANELS 8

define PIXELS_PER_PANEL 64

define NR_OF_PANELS 12

define PIXELS_PER_PANEL 128

Nothing works. Sometimes it works but some of the pixel colors are off (a couple of random rows) if i change it back to another setting it works up until 128 pixels then the rest of the chain is a static color.

Please help??

Im also getting 104 and 105 invalid serial data errors in the command output window

Rainbowduino Assembled 4 x 4 RGB Cube

The cube works when plugged in but any new sketch does not compile. Here are the error messages I receive. I downloaded the appropriate libraries and they are installed correctly. Please help. Thanks

/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp: In member function 'void Rainbowduino::init_timer1()':
/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp:120: error: 'sei' was not declared in this scope
/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp: In member function 'void Rainbowduino::latchData()':
/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp:149: error: 'delayMicroseconds' was not declared in this scope
/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp: In member function 'void Rainbowduino::drawLine(unsigned int, unsigned int, unsigned int, unsigned int, uint32_t)':
/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp:300: error: 'abs' was not declared in this scope
/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp: At global scope:
/Users/xxxxxx/Documents/Arduino/libraries/Rainbowduino/Rainbowduino.cpp:369: error: expected constructor, destructor, or type conversion before '(' token

Feature Request? Integrate StripInvaders?

Hi,
as i originally wanted the Stripinvader running on an arduino with an LED-Strip as a Wall-Washer, but i found the Pixelcontroller. Actually pixelcontroller is now running at my home with an 96 pixel ws2811-strip as a snake-matrix. The strip is solderd to an arduino, running as an art-net client with a sketch from deskcontrol. it was setup in minutes and everything runs smooth.

wonderfull!

Now i was thinking over it. If i design a matrix with 96x1, i could possibly do all with pixelcontroller what i originally wanted to do with stripInvader. but better, as it could run as an art-net-client on ethernet/wlan.

Only very Little is missing, That is some running and color-scroll effects for a matrix with only 1 row. Possible to integrate it in next version?

and as i checked Glediator as an alternative, i saw the preview-window automagically and better reszing to the length of 96 pixel in 1 row.

What about to put this as feature for the next version?
(only a suggestion ...;-))

cheers,
ozett

----addition:
i put 2 pictures here, to show how a 1-line matrix is handled by jinx and glediator.
(glediator 2.1 doesent work on art-net, but resizes 96 pixel very well,
and jinx looks good, but will not go unter 4 rows for a matrix (so only 96/4 is adressed)... puhh)

zwischenablage01
zwischenablage02

Random Mode doesn't change the colorset

Random Mode isn't changing the colorset. Occurs in the PixelController UI and when I send the RANDOM ON message via TCP. All the other options get randomized except color. I took a look in Shuffler.java and the shuffleStuff method doesn't mention ShufflerOffset.COLORSET, which might be the cause of the bug.

Ambient Light

sort of ambient light, use the average color of the panel as colour. all panels have ONE ambient colour - it doesn't matter how much panels are used - there is only one ambient color.
there is no need for another controller, the same controller should be used to control the ambient light using 3 analog output signals.
pixelcontroller sends the additional data as 24bit value to the controller. the additional 3 byte value should be part of the regular data transfer.
"dumb" led modules are used for the ambient light (4 wires, RGB + GND)

Bug? Generator Speed=0 still moving

I mentioed my impression somewhere before, that the Generator-Speed settings seems not linear affecting the visual movement. But if i set Speed=0, the visual output is not standing still. as i assumed. Is this intended, or a bug?

i am running 2.0.0 distribution. an the window-title is still developer preview.
a attach a screenshot.

by,
ozett
zwischenablage01

Push changes?

Still trying to figure out how to use GitHub.

Do you need to push new changes to me, or is there some kind of update mechanism so I can pull down your new changes?

2.0.0.RC1.1, Generator Speedsetting not linear on Textwriter?

hi,
if i change the global generator-speed within the "textwriter"-generator, i have the impression that it doesnt seam to change the text-scrolling speed in a linar way. somehow under "50" it is the same slowness as the same above "50". is is an impression, or somewhat of an issue?

Rainbowduino 3.0

Can someone explain how to configure the output to work on a rainbowduino 3.0. I cannot find anywhere how to do it. I tried to follow the example, but I couldn't understand it. Also as you can probably I am really new to programming in general.

Feature Suggestion: Generator like Qix...?

hi,
as i experimented with a horizontal scrollbar, it reminded me at Qix (->http://de.wikipedia.org/wiki/Qix). What about a Generator, which animates a line like "the Quix"? I dont know if its desirable for anyone else, but in wikipedia is a link to a flash-version which shows this line-animation, called qix.

i gooled and found an algorithmen.
https://www.google.de/search?q=qix+game+algorithm&ie=utf-8&oe=utf-8&rls=org.mozilla:de:official&client=firefox-a&gws_rd=cr&ei=DhGuUvGMG8fnywOD_YGYDQ

Thats the end for me, as i am no coder, sorry,,,

how to leave Colorset (of image) unchanged

Hi,
is it possible to show an image without changing its native colors. i mean to disable the colorset-setting, which always changes all colors?

in the image-folder is an rgb example. how to show this exactly in its colors on the matrix? the colorset setting always overlays all colors, or am i wrong?

cheer, ozett

ver2.1.0snapshot, OSC-message load/save presets broken?

hi,
as i start pixelcontroller everything is working.

if i send send via OSC-messages

oscsend 192.168.14.25 9876 /CHANGE_PRESET i 140
oscsend 192.168.14.25 9876 /LOAD_PRESET

everything is working. i can do it over again..

but if i than save it with

oscsend 192.168.14.25 9876 /SAVE_PRESET

i cannot change presets anymore. neither load them..

(i crosschecked with ver2.0.0: its working, not broken there ...)

Feature Request? Rotate 45 degree, or free degree

hi,
as i use often color-scroll, it would be a nice effect, if it would scroll diagonal over the screen. so a Rotate 45° would be nice. Or even a rotation with free to configure degrees?

cheers, ozett

Serial Port Names

Hello! Thank you so much for the great software!
I’ve been trying to get PixelController to work on my demo LED panel which uses TLC5940s as the LED drivers. As the uC only requires serial input, I tried to use the Adavision output setting. The software was having trouble sending the output, and I noticed that it makes the serial port name all capitalized within the software, which prevents it from recognizing the serial port on my macbook. The problem’s in line 62 of Adavision.java:
String serialPort = ph.getAdavisionSerialPort().toUpperCase();
Once I removed toUpperCase() from the line, it works fine!
I didn’t know how to use gethub, so I apologize for posting this here on the blog.

TCP/IP Output Device Support

I've written a python RGB driver for the Raspberry Pi (WS2801 and LDP8806); I'm working on supporting incoming TCP packets containing a frame buffer (or similar). Any thoughts on supporting a TCP/IP output device? Something where you could specify and IP and Port and have it send the display request there? Doesn't really need a full bidirectional protocol; even UDP would be fine (so long as its sending periodically.

Forum missing? Still searching for Help to send OSC-Messages via Bash

I can send OSC Messages via oscsend from unix-liblo-tools.
I am no Programmer. I am wondering if it could be made possible, to send the OSC-Message directly to the listening port from bash with some helper tools.

Anybody with any idea are greatly welcome...

my trials here...
zwischenablage10

OSC_GENERATOR interface not working

This may be a local issue for me as I have not been able to do comprehensive tests, but it seems that the OSC_GENERATOR interface is not working.

The rest of the osc interface seems to be working. I can run the processing sample for generating random effects, but when I try to do osc generator output, it is not working for me. I have tried the particleexample and the coloradjust example.

Bot of these examples did work for me before, though I couldn't say for sure if that was on a previous version of PixelController or not.

Looking at the info page when I am generating osc output, the counter does increase, so it seems that packets are getting to the PixelController software.

Blinkenlights-Editor? Blimp 1.4.3 error - alternativen?

Hi, habe jetzt auch die Blinkenlights-Movies für mich entdeckt. Super. Bin auf Blimp als Editor gestossen, kann aber in der version 1.4.3 nicht speichern. habe mal stefan eine mail geschrieben. Vielleicht mache ich auch was falsch.

Man freut sich immer,wenn der erste Schritt gleich schnell gelingen könnte ...

Aber warum auch nicht gleich beilegen? Mal Stefan fragen?

Wie kommt man noch zu mehr .bml ? Scheint kein Archiv im Netz zu geben. Gibts noch andere gute Editoren? Wenns Links gibt wäre in Tip super (oder im Readme). Ein CCC-windows Editor ist zu alt, mann kann die dimensionen nicht definieren.

Rainbowduino multple devices configured?

Ok I have a rainbowduino v3.0, installed rv3sf01.ino, but I'm completely stuck with that configuration file that I have to change (config.properties)... somehow I'm missing something and I just don't see it. Pixelcontroller fault says : "SEVERE: Configuration Error:
java.lang.IllegalArgumentException: Multiple devices configured, illegal configuration!"

Here is the config.properties file:

Copyright (C) 2011-2013 Michael Vogt [email protected]

This file is part of PixelController.

PixelController is free software: you can redistribute it and/or modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation, either version 3 of the License, or

(at your option) any later version.

PixelController is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License

along with PixelController. If not, see http://www.gnu.org/licenses/.

=========================

default values for generators

=========================

initial.image.simple=logo.gif
initial.blinken=torus.bml
initial.text=PIXELINVADERS

font.filename=04B_03__.TTF
font.size=82

x/y offset for screen capturing generator

if you define screen.capture.window.size.x as 0, the screen capture generator will be disabled

screen.capture.offset=100
screen.capture.window.size.x=0

screen.capture.window.size.x=500

screen.capture.window.size.y=300

=========================

network port config

=========================

fudi protocol config, used to communicate with pure data sketch

net.listening.port=3448
net.listening.addr=127.0.0.1
net.send.port=3449

osc protocol config

osc.listening.port=9876

=========================

frames per second

=========================

fps=25

=========================

display internal gui window and debug buffer?

=========================

show.debug.window=true
maximal.debug.window.xsize=600

=========================

per default you get # of output windows + 1 visuals

maybe you need more, so add them here if you want...

=========================

additional.visual.screens=0

=========================

the size of the software output matrix

=========================

led.pixel.size=20

=========================

start in random mode?

=========================

startup.in.randommode=false

=========================

load a preset if PixelController starts?

Warning, this will overwrite your settings configured above (initial generator values)!

=========================

startup.load.preset.nr=1

=========================

use audio as input setting (true)

or just regular fps (false)

=========================

update.generators.by.sound=true

### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###

OUTPUT SETTINGS

enable only ONE output device (PixelInvaders, RainbowduinoV2, RainbowduinoV3, Art-Net, TPM2, UDP, Adafruit or Minidmx)

### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ###

=========================

optional, defines the color order of the output device

this option is used for ALL output devices, if you have multiple panels you must define

multiple entries, for example if you have 3 panels you need to define "BRG,BRG,BRG"

if this setting is commented out, RGB color order is assumed for all panels

=========================

panel.color.order=RGB

=========================

Apply gamma correction for output panels

Valid options

- NONE

- GAMMA_20: apply gamma 2.0 correction

- GAMMA_25: apply gamma 2.5 correction

- SPECIAL1: apply special gamma correction

=========================

panel.gamma.tab=GAMMA_25

=========================

Settings for PixelInvaders panels, valid options:

=========================

NO_ROTATE,

ROTATE_90,

ROTATE_90_FLIPPEDY,

ROTATE_180,

ROTATE_180_FLIPPEDY,

ROTATE_270,

=========================

HINT: you define how many PixelInvaders panels are in use, in this example we use four panels.

pixelinvaders.layout.row1=NO_ROTATE,NO_ROTATE

pixelinvaders.layout.row2=NO_ROTATE,NO_ROTATE

do not try this device for autodetection

pixelinvaders.blacklist.devices=/dev/ttyUSB000

if you have multiple pixelinvaders panels wired up special, you can define this here.

if you don't define this setting, the "default wiring" is expected

example (the number define the wiring direction):

+---+---+---+

| 0 | 3 | 4 |

+---+---+---+

| 1 | 2 | 5 |

+---+---+---+

HINT: the first panel is 0!

pixelinvaders.panel.order=0,3,4,1,2,5

networked pixelinvader settings, use with ser2net

pixelinvaders.panel.ip=192.168.111.22

pixelinvaders.panel.port=5333

=========================

settings for null output

=========================

nulloutput.devices.row1=2
nulloutput.devices.row2=0

=========================

settings for rainbowduinoV2

=========================

i2c destination address + layout definition

layout.row1.i2c.addr=5,6

layout.row2.i2c.addr=8,9

=========================

settings for rainbowduinoV3

=========================

serial device names + layout definition

layout.row1.serial.devices=COM4
layout.row2.serial.devices=COM4

=========================

settings for stealth panel

=========================

stealth.layout.row1=NO_ROTATE

=========================

settings for Art-Net, Null output, Minidmx, UDP, TPM2 and Adavision

=========================

output.resolution.x=8

output.resolution.y=8

flip each second scanline

output.snake.cabling=true

OR use manual image mapping, instead of the snake cabling setting.

the output mapping table should contain output.resolution.x * output.resolution.y entries

REMEMBER: the first outputs starts at 0 NOT 1!

output.mapping=0,1,4,5,2,3...

optional rotate image, valid options:

NO_ROTATE (default),

ROTATE_90,

ROTATE_90_FLIPPEDY,

ROTATE_180,

ROTATE_180_FLIPPEDY,

ROTATE_270

output.layout=NO_ROTATE

=========================

settings for Art-Net

Info: PixelController supports more than 1 universe

do NOT FORGET to define the output resolution above!

=========================

artnet.ip=192.168.1.2

define how many rgb pixels are used on a universe, maximal 170 (=510 Channels)

artnet.pixels.per.universe=170

define the first universe id

artnet.first.universe.id=1

define the default artnet broadcast address, default is 2.255.255.255

artnet.broadcast.address=255.0.0.0

=========================

settings for udp "device"

do NOT FORGET to define the output resolution above!

=========================

send to this address

udp.ip=192.168.111.25

udp.port=6803

=========================

settings for tpm2 device

do NOT FORGET to define the output resolution above!

=========================

Where is the TPM2 device connected?

on Linux/OSX use names like "/dev/ttyUSB1"

on Windows use names like "COM1"

tpm2.device=/whatever/youwant

tpm2.baudrate=115200

=========================

settings for tpm2.net device

do NOT FORGET to define the output resolution above!

=========================

tpm2net.ip=192.168.111.25

define layout, valid options:

NO_ROTATE (default),

ROTATE_90,

ROTATE_90_FLIPPEDY,

ROTATE_180,

ROTATE_180_FLIPPEDY,

ROTATE_270

HINT: you define how many Tpm2Net panels are in use, in this example we use four panels.

tpm2net.layout.row1=NO_ROTATE,NO_ROTATE

tpm2net.layout.row2=NO_ROTATE,NO_ROTATE

=========================

settings for miniDmx (like the SEDU board)

do NOT FORGET to define the output resolution above!

=========================

minidmx.baudrate=115200

=========================

settings for adavision

do NOT FORGET to define the output resolution above!

=========================

define serial port

on Linux/OSX use names like "/dev/ttyUSB1"

on Windows use names like "COM1"

adavision.serial.port=/dev/tty.Whatever

optional: define serial speed

adavision.baudrate=115200

EOF

and here is the log file:

20-apr-2013 14:55:51 com.neophob.PixelController setup
INFO:

PixelController v1.3.1 - http://www.pixelinvaders.ch

20-apr-2013 14:55:51 com.neophob.PixelController setup
INFO:
20-apr-2013 14:55:51 com.neophob.sematrix.setup.InitApplication loadConfiguration
INFO: Config loaded, 25 entries
20-apr-2013 14:55:51 com.neophob.sematrix.properties.ApplicationConfigurationHelper
INFO: found RainbowduinoV3 device: 2
20-apr-2013 14:55:51 com.neophob.sematrix.properties.ApplicationConfigurationHelper
INFO: found Null device: 2
20-apr-2013 14:55:51 com.neophob.sematrix.properties.ApplicationConfigurationHelper
SEVERE: Multiple devices configured, illegal configuration!: 2
20-apr-2013 14:55:51 com.neophob.sematrix.setup.InitApplication loadConfiguration
SEVERE: Configuration Error:
java.lang.IllegalArgumentException: Multiple devices configured, illegal configuration!
at com.neophob.sematrix.properties.ApplicationConfigurationHelper.(ApplicationConfigurationHelper.java:218)
at com.neophob.sematrix.setup.InitApplication.loadConfiguration(InitApplication.java:89)
at com.neophob.PixelController.asyncInitApplication(PixelController.java:158)
at com.neophob.PixelController.draw(PixelController.java:297)
at processing.core.PApplet.handleDraw(PApplet.java:1891)
at processing.core.PApplet.run(PApplet.java:1788)
at java.lang.Thread.run(Unknown Source)

I just don't see it...and believe me I've spend hours over it...help ;)

output.mapping does not work for E1.31 devices

I am unable to make any setting for output mapping work. It always defaults to the natural order 0,1,2.

I am using E1.31 output in unicast mode.

To test, I set:

output.resolution.x=2
output.resolution.y=1

Then experimented with various values for output.mapping such as:

output.mapping=0,10

It always displays as if output.mapping was set to 0,1.

Feature Suggestion: Generator like Art ?

hi,
as i am still fascinated by pixelcontroller - in my special use of it this leads me to re-think on similar cases. so: are you interested in art? if that, you may want to have a look at installations of leo villareal?

at the moment i use pixelcontroller to show somethin like leo villareals artwork "invisable hands". you can see what i mean at the video nr.6 on his gallery here:

http://www.connersmith.us.com/artists/leo-villareal/?view=video

something linke this is already inside pixelcontoller (somehow), but maybe you like leo villareals artworks and it inspires you to more generators in such stil?
maybe you want to crawl around his gallery-videos or google him for inspirations ...?

greetings,
ozett

Feature Request? Return Info/Objects from OSC-Messages?

Hi, I managed to control Pixelcontroller via some simple OSC-Messages, send via osc-send from the toolkit. I change Presets with this. Is there a way to query Pixelcontroller which Preset or Generator is actually running?
I dont see some Return-Objects or any method to query actual Infos from running Instance, instead of perfomance.

Thanx, Pixelcontroller is running great !!
ozett

v 1.5.1 color-scroll, flip-90 on matrix 8x13

hi, i transfered my overservation (bug-or-not?) to this git-hub issuetracker. i am new to this, so hope i do it right.

if i flip color-scroll on 90 degrees, it shows rectangles. i attach a picture. you can see this right in visualisation, if you define a 8x13 matrix. is it an issue of division for 13 lines? still present in 1.5.1 ..

cheers

addition: same with 8x12 matrix on plama with effect rotate-90...

zwischenablage06

zwischenablage07

PixelController.Command Hangs when running

I've been trying to get this running for a few days now and can't figure out why. Com port is setup as /dev/tty.usbserial-A100N00B as that is the port for my rainbowduino. I run the API and it freezes. If I change back to the null output it starts up fine. Any help would be greatly appreciated. Here is the Log file.
Nov 14, 2012 2:16:39 PM com.neophob.PixelController setup
INFO:

PixelController v1.3-SNAPSHOT - http://www.pixelinvaders.ch

Nov 14, 2012 2:16:39 PM com.neophob.PixelController setup
INFO:
Nov 14, 2012 2:16:39 PM com.neophob.PixelController setup
INFO: -----------------------------------
Nov 14, 2012 2:16:39 PM com.neophob.PixelController setup
INFO: --- PixelController Setup START ---
Nov 14, 2012 2:16:39 PM com.neophob.PixelController getApplicationConfiguration
INFO: Config loaded, 20 entries
Nov 14, 2012 2:16:39 PM com.neophob.sematrix.properties.ApplicationConfigurationHelper
INFO: found RainbowduinoV3 device: 1
Nov 14, 2012 2:16:39 PM com.neophob.PixelController getColorPalettes
INFO: ColorSets loaded, 26 entries
Nov 14, 2012 2:16:39 PM com.neophob.sematrix.input.SoundMinim run
INFO: Sound thread started...
Nov 14, 2012 2:16:39 PM com.neophob.sematrix.glue.MatrixData
INFO: screenSize: 64 (8 * 8),
Nov 14, 2012 2:16:39 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: BLINKENLIGHTS
Nov 14, 2012 2:16:39 PM processing.lib.blinken.BlinkenLibrary
INFO: blinkenlights v0.63
Nov 14, 2012 2:16:40 PM processing.lib.blinken.BlinkenLibrary loadFile
INFO: Loaded file blinken/torus.bml, contains 250 frames
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: IMAGE
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Image loadFile
INFO: resize to img logo.gif 64, 64
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PLASMA
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PLASMA_ADVANCED
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: FIRE
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PASSTHRU
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: METABALLS
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: PIXELIMAGE
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: TEXTWRITER
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Textwriter
INFO: Loaded font 04B_03__.TTF, size: 82
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: CELL
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: FFT
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: DROPS
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: COLOR_SCROLL
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.generator.Generator
INFO: Generator: internalBufferSize: 4,096 name: COLOR_FADE
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.properties.ApplicationConfigurationHelper loadPresents
INFO: Loaded 30 presents from file data/presents.led
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.listener.TcpServer
INFO: Server started at port 3,448
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.listener.TcpServer run
INFO: Ready receiving messages...
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.listener.TcpServer connectToClient
INFO: Pure Data Client not found at 127.0.0.1:3449
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.listener.TcpServer
INFO: Pure Data Client not available yet!
Nov 14, 2012 2:16:40 PM com.neophob.sematrix.listener.OscServer
INFO: Start OSC Server at port 9,876
Nov 14, 2012 2:16:41 PM com.neophob.sematrix.jmx.PixelControllerStatus
INFO: Initialize the PixelControllerStatus JMX Bean
Nov 14, 2012 2:16:41 PM com.neophob.sematrix.layout.Layout
INFO: Layout created: HORIZONTAL, size row 1: 1, row 2: 0
Nov 14, 2012 2:16:41 PM com.neophob.sematrix.output.Output
INFO: Output created: RAINBOWDUINO_V3, Layout: HORIZONTAL, BPP: 8

Documentation needs a (little) check?

i wanted to comprehend the explanations in the readme of 2.0.0 for non-rectangular matrices, and counted the rows and sums. i was wondering, why you start counting from 0-8, and sum up a total of 9. i was a little bit puzzled, but maybe thats intended?
maybe its a little bit more logic to sum up a total of 8, if you start counting from 0?

a picture to demonstrate:
zwischenablage03

Beat Detection

I'm trying to figure out the beat detection. Is this still integrated in the current version? In my terminal I get this error:
2012-11-30 17:07:21.393 java[7418:b507] Error loading /Library/Audio/Plug-Ins/HAL/SeratoVirtualAudioPlugIn.plugin/Contents/MacOS/SeratoVirtualAudioPlugIn: dlopen(/Library/Audio/Plug-Ins/HAL/SeratoVirtualAudioPlugIn.plugin/Contents/MacOS/SeratoVirtualAudioPlugIn, 262): no suitable image found. Did find:
/Library/Audio/Plug-Ins/HAL/SeratoVirtualAudioPlugIn.plugin/Contents/MacOS/SeratoVirtualAudioPlugIn: mach-o, but wrong architecture
2012-11-30 17:07:21.395 java[7418:b507] Cannot find function pointer New_SHP_PlugIn for factory 834FC054-C1CC-11D6-BD01-00039315CD46 in CFBundle/CFPlugIn 0x7fd69ea2b260 </Library/Audio/Plug-Ins/HAL/SeratoVirtualAudioPlugIn.plugin> (bundle, not loaded)

2.0.0.RC1, Matrix of 96x1, Color-Scroll freezes, only Visual 2

hi,
i gave your RC1 a try. I defined my 96 leds on my ws2811-Leds (as an arduino-artnet-client) as a matrix of 96x1. From Start it runs, but if i change the generator to "color-Scroll" and tried different options of this generator the output freezes. also the visual of pixelcontroller freezes/stops. If i change the generator than, it still stands and dont comes up again.
Also i only have visual 2 in Pixelcontroller, as if i define the matrix of 8x12 in snake-cabeling (so it is), i had visual 1 and 2 an all is normal.

A Bug in RC1?
i put a screenshot here...

cheers,
ozett
zwischenablage03

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.