Fugio Friday – 30th September 2016

Happy Fugio Friday!

This week I’m in Irvine, California installing of my Fugio based artwork “Shadows of Light” at the Beall Center for Art + Technology.  The exhibition “Embodied Encounters” is open from October 1st 2016 to January 21st 2017 and features work by seven international contemporary artists.

There is an opening reception on Saturday, October 1st, 2-5pm – I’ll be there!

As I’ve been busy doing that, and the V&A show last weekend, there is no binary release this week, but there are some goodies to be had in the source code, if you’re compiling along at home:

  • NEW Kinect plugin (Kinect version 1 for Microsoft Windows only)
  • NEW MatrixInverse and MatrixOrthographic nodes
  • UPDATED Serial Port device configuration with many more options
  • FIXED rendering to OpenGL depth buffers
  • FIXED missing GL_INT_SAMPLER_2D support from ShaderCompiler
  • FIXED OpenGL command line option to make windows full screen

I’m not expecting to do a Fugio Friday next week as I’m taking a sort of holiday after the show opens, but I’ll be around to answer questions and such.

Fugio 1.8.0 – Serial port and Firmata plugins

Arduino Uno

Happy Fugio Friday!

Today we have two new plugins that enable Fugio to talk to hardware that uses a serial port interface, which includes the Arduino range of open source hardware (like the Arduino Uno above), which means that we can control LED lights, motors, servos, and use sensors for touch, magnetism, temperature, and many more!

The serial plugin handles the raw data communication between the Arduino and Fugio, and can be used to implement any kind of custom protocol between the two, but we can go one further and use the rather nice Firmata plugin to talk directly to the Arduino pins without writing any Arduino code at all.

Download Fugio 1.8.0 for Windows and OS X

Get the source code on GitHub

I haven’t had time to do a tutorial video (yet), but here’s some pointers to get you started:

Setting up a Serial Port

  • In the new Devices menu, choose Serial Ports
  • Add an entry for your Arduino.  Make sure you choose the right port, and set the baud rate (the speed the serial port will work at) to 57600 (bits per second)
  • Remember to press the Enable button for the entry you’ve just added

Arduino Serial Configuration

Reading from the Arduino (without Firmata)

Upload the following code to your Arduino:

void setup()
{
  Serial.begin( 57600 );
  
  while( !Serial )
  {
    // wait for serial port to connect.
  }
}

void loop()
{
  Serial.println( "Hello, World!" );
  
  delay(1000);              // wait for a second
}

Create the following:

Fugio reading from Arduino

And use the following Lua program:

fugio = require "fugio"

PinInputStrings = fugio.input( "Strings" )

function main()
	local Strings = PinInputStrings:get()

	for i = 1,#Strings do
		fugio.log( i .. ": " .. Strings[ i ] )
	end
end

Setting up Firmata

Instructable for installing Firmata on Arduino

And here’s what you have to do in Fugio:

Quit the Arduino software and load Fugio:

  • Add a Serial Input node, a Firmata node, and a Serial Output node
  • Connect the Serial input and Serial output to the Firmata node
  • Connect a button to the Reset pin

Firmata setup

If everything is connected and configured properly, you should see the pins appearing on the Firmata node.  Check the logger window for additional messages.

Firmata with pins

If this doesn’t happen first time, you may need to close the patch and reload it.

At this point you should be able to read and write to the Arduino pins!

Click the Edit Pins button to configure pins for inputs (digital INPUT (true/false) and ANALOG input (0-1023)), and outputs (digital OUTPUT (true/false), and PWM mode is supported):

Firmata pins

I’m going to be showing a couple of artworks at the prestigious V&A Museum in London for the next few days with the High Altitude Bioprospecting team (and fellow members of the Institute of Unnecessary Research) for the Digital Design Weekend as part of the London Design Festival.

23rd September: 6-8pm
24th and 25th September: 10:30am-5pm

I’ll have Fugio on hand (creating music from genomic data) so come and say hello!

Fugio on Raspberry Pi detailed guide

 

Happy Fugio Friday!

This week I have written a detailed guide for getting Fugio up and running on a Raspberry Pi using cross compiling:

Cross Compile Fugio to Raspberry Pi (bigfug wiki)

This guide covers installing a virtual Linux machine (if you need one), compiling Qt 5.7 with accelerated OpenGL support, and building Fugio with all the currently supported libraries.

Have fun…

Fugio Tutorial 8 – OpenGL live coding, Spout and Syphon

New Fugio video tutorial covering OpenGL shader live coding, sharing OpenGL textures between many applications in real time using Spout (Windows) and Syphon (OS X), and rendering to texture for complex, multi-stage shader processing. Not expecting to get too much coding done this week as I’m off to Ars Electronica this week in Linz, Austria this week. Have fun with the update!

Download Fugio 1.7.0 for Windows and OS X

Get the source code for compiling on Linux

NEW

  • Spout and Syphon plugins
  • Added live coding support to OpenGL shader compiler
  • Added trigger and buffer pins to Text Editor
  • Added Brew install/update script for OS X
  • Added LuaVector3D

UPDATED

  • Progress on building on Raspberry Pi 3, including cross compile

FIXED

  • Fixed some issues with MIDI Channel Input listening
  • Fixes some update issues in PinPrivate
  • Image Loader wasn’t always showing the thumbnail

Fugio Friday – 19th August 2016

This is the most significant release for Fugio since its initial launch. Finally, after more than a year, I can share the OpenGL plugin, which brings the raw power of the graphics card to Fugio for high resolution, real-time graphics.

Download Fugio for Windows and OS X (build the source code on Linux, including Raspberry Pi)

I’ve also recorded an hour long video tutorial that will get you started working with OpenGL shaders.

This has been a massive amount of work.  Please share the word, and if you’re feeling very generous, you can always make a donation towards the project here.

2016-08-19

NEW

  • OpenGL plugin – 24 new nodes with several shader examples
  • Mouse node and input events support for windows
  • Mouse Painter example
  • Nodes: Time, Date, JoinVector4Node, SplitVector4Node

UPDATED

  • LuaPainter::drawLine can take two points
  • Added $ORIGIN to path on Linux to fix launching (reported by Luca)
  • Text Editor now highlights Lua errors

FIXED

  • Image Save had a hard coded path
  • Fixed mouse zooming
  • Fixed Network deployment (reported by Артем)

Fugio Friday – 12th August 2016

Happy Fugio Friday!

It’s been a long term goal for me to get Fugio running on Raspberry Pi.

If you’ve not come across them before, they are cheap, credit-card size computers than can run a full desktop experience with mouse and keyboard support, networking, HD video playback, and even a GPU for 3D graphics.

I use them a lot for installations where I need seamlessly looping video playback, but I really want to develop artworks on them, so I can use them instead of leaving bulky and expensive computers in a gallery for months.

So, this week I’ve updated the source code to allow it to compile and run on a Raspberry Pi 2 (and 3).  Everything works apart from PortAudio, which I’ll get to in due course.

Download Fugio for Windows and OS X

Get the source code for Linux (including Raspberry Pi)

NEW

  • Compiles and runs on Raspberry Pi
  • New Dial GUI node with example
  • National Grid example for getting real-time data from the Internet
  • Zoom in and out of patches with your trackpad
  • Websocket server (still testing)
  • Settings dialog with ‘My Snippets’ location (I set mine to my Dropbox)
  • qt.matrix4x4 with ortho, perspective, rotate, scale, translate methods
  • Fast JSON parser in Lua – examples to follow
  • Added COBS encode/decode nodes to Network
  • Get Size node for getting the size of data (deprecating Image Size)
  • Added Line Buffer node

UPDATED

  • LED now has a new, smarter look
  • PortMidi supports setting the default input and output devices
  • Snippets window has two views, and supports drag/drop/rename on ‘My Snippets’
  • Text Editor remembers visibility when you save and load

FIXED

  • Passing strings with zeros in them from Lua to Fugio now works
  • Context wasn’t always calling frameFinalise()

TESTED

  • Windows 10
  • OS X 10.11
  • Ubuntu 16.04
  • Raspberry Pi 2 (Jessie)

Fugio Friday – 5th August 2016

Fugio-Friday-2016-08-05

Download Fugio 1.5.1 for Windows, OS X (get the source code)

NEW

  • Lots of new examples including network stock checker and audio processing nodes
  • Added group breadcrumb widget to the bottom of the editor window
  • fillRect() method to qt.painter
  • PortAudio input and output now have default device options
  • Added LuaMatrix4x4
  • Save images from NumberMonitorForm by right-clicking on its window
  • Added FileLoadNode
  • Added AutoRangeNode
  • Added MinMaxNode
  • Added RingModulatorNode
  • Added ArrayListPin, VariantListPin
  • Added extra include paths for Lua

UPDATED

  • NetworkRequestNode saves data to a temporary file, rather than always into memory
  • Renamed NetworkRequestNode to GetNode
  • Added RegExp pin to RegExpNode
  • ScaleImageNode can scale to width/height/size
  • Cut/copy/paste now works between patches
  • You can also paste as plain text in any text editor or window

FIXED

  • Lots of work on cut/copy/paste/delete functionality
  • Fixed all colour selections in editor
  • Fixed StringNode not showing loaded value
  • Fixed StringJoinNode

TESTED ON

  • Windows 10 (x86)
  • OS X 10.11 (x64)
  • Ubuntu 16.04 (x64)

Fugio Tutorial 6 – MIDI

This Fugio Friday we have two new plugins that provide MIDI input and output for integrating with musical instruments, MIDI controllers, and the huge range of MIDI enabled software and hardware.

Use the maintenance tool to update your existing installation, or download the updated installers.

NEW

  • PortMidi plugin for cross-platform MIDI support on Windows/OS X/Linux
  • MIDI plugin with a range of creating nodes for MIDI input, output, and processing
  • Example: Core/Envelope
  • Lots of new methods for qt.color()
  • Added connected pin to TCPReceiveRaw
  • Added reset pin to SLIPEncoder
  • Added shift pin to FFT for sliding windows
  • Added clear feature to log window – right-click or control-click to bring up the context menu (suggestion: @braedenf)
  • Added –clear-settings command line argument that will remove all settings
  • Settings colours is now undo-enabled

UPDATED

  • Added more user feedback in TCPReceiveRaw
  • EnvelopeNode uses paired pins
  • NumberMonitorNode updates:
    • Set default range to 0.0 – 1.0
    • Changing the node name updates the dock widget name
    • Added an update trigger rather than just hard-coding 25fps
    • Setting auto rename to input pins

FIXED

  • PortAudio input wasn’t working so well after last week’s update
  • Fixed crash when trying to copy groups (reporter: @braedenf)
  • Fixed many grouping issues!
  • Fixed Number Monitor rendering
  • Smooth fixed
  • SLIPEncoder wasn’t enabled
  • TCPSendRaw wasn’t working
  • Fixed crash on exit due to network manager
  • The recent files menu was displaying placeholder entries

Fugio Friday – 22nd July 2016

 

Fugio 1.4.1 is now available for download (source code)

Join us in the new Fugio Users Group on Facebook!

If you encounter any bugs or want to suggest new features, head over to the issue tracker.

NEW

  • Fugio optionally records some anonymous data as you use it, which will really help me get an idea about how you’re all using it, where it could use some work, and also gives me some active user figures I can tell people about!
  • Added tabs for patches to make switching between them easier (suggestion: @braedenf)
  • LuaPainter::drawPoint()
  • Transforms (rotate, translate, shear, scale) added to LuaPainter
  • Added link to new Fugio Users Group to the Help menu
  • Added Save All to File menu
  • More examples: Lorenz Attractors, Rotating Text

UPDATED

  • Right-click (or ctrl-click) on nodes in the editor to get a link to their online help page
  • Started adding auto pin renaming to a few nodes
  • More changes to the audio system to improve latency handling
  • Open multiple patches at once (suggestion: @braedenf)
  • Text Editor:
    • Updating now takes place in frameStart
    • Removed buttons at bottom
    • Added toolbar with new menu and update button
    • Won’t clear text if connected to empty pin
    • Save implemented
    • Alt + U keyboard shortcut to update
  • Various build updates, mainly for using Homebrew on OS X

FIXED

  • LED node wasn’t firing properly for some types of inputs

Fugio Friday – 15th July 2016

 

No video this week as I’ve been away in Bournemouth University showing my “Shadows of Light” installation (made with Fugio, of course) as part of the HCI 2016 conference.

Despite this, we have a very big update for Fugio today.  No less than *FIVE* new plugins, including the 2D drawing plugin, and also FFT (for converting audio into frequency bands – great for visualisations like the one above), and Image, File, and Colour.

Download version 1.4.0 now for Windows and OS X, or if you have already installed it, you can run the maintenance tool to upgrade the software.

I’ve also brought the Ubuntu version back up to speed, and updated the build instructions.

Finally, please sign up to the Fugio Friday mailing list to get the weekly news delivered straight to your inbox just in time for the weekend: