Andiamo reference manual – Part 6   2 comments

I’d like to conclude this reference by briefly discussing a the objectives of Andiamo. Its main goal  is to serve as an open experimentation and research platform for:

  • custom graphical interfaces for live performance.
  • real-time editing and mixing of video (live and pre-recorded) using GStreamer.
  • techniques of real-time animation using gestural input through graphic tablets and MIDI controllers.
  • inter-application communication with the OSC protocol.
  • OpenGL-accelerated image filters for real-time processing of video.


As an experimentation platform, it doesn’t attempt to ever reach the status of a “finished” or a “complete” application, but it will rather stay as a fluid, open source project available for anyone who finds it useful in any way and might be interested in trying it out, learning and hacking algorithms and techniques, adding his or her own modules and hacks and/or adapting it for specific uses. Code contributions are welcome, and I will consider them to be included in the main development trunk. But since the Artistic License was adopted to release this software, you are free to make your own derivatives as you see fit or extract parts of it to use in your own projects.

Successful ideas and approaches tested and protyped within Andiamo will hopefully find their way into platforms more suitable for real-time, high performance graphics, such as Moldeo or Open Frameworks. On the other hand, Andiamo also serves an example on how the use of the GStreamer and OpenGL libraries allow for a certain degree of real-time capabilities within the context of the Processing language and programming environment. Expanding the applicability of Processing into real-time video and live performance certainly is an useful project, since Processing serves as the first step into programming for many artists, designers and other creative people who might later want to transition into more advanced/efficient platforms.

A first application of Andiamo was for my final MFA project at the Design|Media Arts department. A video excerpt of a live animation performance using Andiamo can be seen below:

The process involved in this project is discussed in detail in this blog.

Advertisements

Posted June 6, 2009 by ac in Programming

Tagged with

2 responses to “Andiamo reference manual – Part 6

Subscribe to comments with RSS.

  1. Hola!

    Thanks 4 all the documentation.
    Now I have a MacBookPro and I can test Andiamo!

    I Installed the CG Toolkit and the libraries but i have this error:
    In line 122:
    mov = new GSMovie(parent, filename);

    In Libraries021 directories:
    * libraries / gsvideo / library / macosx
    * libraries / gsvideo / library / linux
    Are empty, there are only files in windows directory
    (I think this is the error)

    Processing output:

    Starting setup…
    Setting up graphics tablet…

    20-jul-2009 19:11:01 jpen.provider.NativeLibraryLoader$4 run
    INFO: loading JNI library: jpen-2 …
    20-jul-2009 19:11:01 jpen.provider.NativeLibraryLoader$4 run
    INFO: jpen-2 loaded

    Setting up resources…
    Setting up dynamics…
    Setting up tracker…

    Error: Frame buffer is incomplete (GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT) at pyramid texture buffer
    Error: Frame buffer is incomplete (GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT) at pyramid texture buffer

    Setting up dynamics filters…
    Setting up layers…
    video layer…

    Exception in thread “Animation Thread” java.lang.UnsatisfiedLinkError: can’t load library intl (intl|libintl|libintl-0) with -Djna.library.path=/Users/lot/Documents/sketchbook/libraries/gsvideo/library/macosx. Last error:java.lang.UnsatisfiedLinkError: Unable to load library ‘intl’: dlopen(libintl.dylib, 9): image not found
    at codeanticode.gsvideo.JnaLibLoaderChain.loadLibrary(JnaLibLoaderChain.java:230)
    at codeanticode.gsvideo.JnaLibLoaderChain.load(JnaLibLoaderChain.java:193)
    at codeanticode.gsvideo.JnaLibLoaderChain.preLoadLibs(JnaLibLoaderChain.java:155)
    at codeanticode.gsvideo.JnaLibLoaderChain.getInstance(JnaLibLoaderChain.java:242)
    at codeanticode.gsvideo.GSVideo.init(GSVideo.java:63)
    at codeanticode.gsvideo.GSMovie.(GSMovie.java:70)
    at codeanticode.gsvideo.GSMovie.(GSMovie.java:50)
    at Andiamo021$MovieSource.(Andiamo021.java:6680)
    at Andiamo021$VideoLayer.setupSources(Andiamo021.java:8958)
    at Andiamo021$VideoLayer.(Andiamo021.java:8899)
    at Andiamo021$LayerManager.setupLayerList(Andiamo021.java:5714)
    at Andiamo021$LayerManager.(Andiamo021.java:5518)
    at Andiamo021.setupLayers(Andiamo021.java:290)
    at Andiamo021.setup(Andiamo021.java:144)
    at processing.core.PApplet.handleDraw(PApplet.java:1400)
    at processing.core.PApplet.run(PApplet.java:1328)
    at java.lang.Thread.run(Thread.java:613)

    Thanks 4 all!!

    lot.

    • Hello! There are a couple of different things going on here. One, GSVideo (the gstreamer-based video library), the other proGPUKLT (the GPU-accelerated tracking library). Regarding the latter, it seems that some OpenGL error is occurring, which I’m not sure what could it be since I haven’t had the change to test proGPUKLT on Mac yet. So this could be a good chance to start some debugging in that area. For the time being, you might just want to disable proGPUKLT in Andiamo by setting the global sketch variable DISABLE_KLT_GPU_TRACKER to true.
      As for the GSVideo/GStreamer thingy, I haven’t managed yet to create a version of GSVideo with GStreamer-OSX bundled with it. You could try the GStreamer stand-alone installation package for OSX I prepared a while ago. However, video capture is still quite crude in that release. I’m currently working with the people from the OSSBuild team in order to improve the GStreamer situation on OSX. We will see what comes out of it. It would be great if you have some spare time to test new GSVideo-OSX releases within Andiamo.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: