Category Archives: Development

Coders Codex::Command Line Arguments Example for JUCE C++

INTRODUCTION

I base this article around the need to pass command line parameters to a running program. Please note this does not seem to work with Windows yet (working in Linux and OSX not tested).

DISCUSSION

The idea is to use a set of command line parameters to execute a set of built in software tests between two or more instances of a given software and then automatically generate unit test reports. The whole thing can be automated via the sequencing of various tests in a bash script or batch file.

FINDINGS

LINKS
Command Line Arguments discussion on the JUCE forum
JUCEApplicationBase Class docs

Coders Codex::How to Generate C++ Code from a UML Class Diagram in Linux

INTRODUCTION

UML Class Generated in Dia

DISCUSSION

FINDINGS

LINKS
C++ Code Generation from UML on Stack Overflow

Coders Codex::Decoding Video Streams to Textures in Unity 3d

INTRODUCTION

Here we will decode an Ogg Theora file streaming from the internet onto a plane surface scripted in Unity 3d.

DISCUSSION

The fastest method to do this as of writing is to look here and then attach this to the camera in a new unity 3d scene.

FINDINGS

The Unity docs do not seem to show a C# source example, so in full Blue Peter (UK) style: Here is one I made earlier.

And the screenshot:

WWWVideoTexture.cs in Unity 3d

LINKS

WWW.movie in Unity 3d Scripting API
Video Streaming solutions for Unity3d on Stack Overflow
C# pixelInset problem on UnityAnswers
Streaming Textures in Unity3d
Video Playback Speed Discussion on Unity 3d Forums

Coders Codex::Reverse Engineering and Binary Auditing Tools

INTRODUCTION

DISCUSSION

This Needs a 64 bit Debugger/Diassembler (Hex Rays IDA Pro)

FINDINGS

LINKS

Binary Auditing Training Material
Detect it Easy Packer Identifier
Cheat Engine Debugger / Disassembler
IDA Pro Disassembler / Debugger 32 and 64 Bit

Divide To Infinity Incorporates ‘Mind Biorhythm Dataspace’ with Daksyba Arts Collective

ABOUT
Daksyba are a collective of audio and visual artists from a range
of creative disciplines, combining voice, percussion, strings, didgeridoo, digital sound and video.

Daksyba Performance @ OV London Festival 2013

“Art is mostly experienced as the aftermath of the creative process. It may be composed, rehearsed, performed or recorded and as such it is but a reflection of that process. Improvisation, as a premise, invites the artist and spectator to share a moment and witness art as a unique event as it emerges, truly in the here and now” – Illi Adato, Artistic Director, Art of the Moment.

Art of The Moment is a 2 day event integrating music, dance and visual arts in fresh new ways and re-examining the relationship between the different medium. It is a celebration of art created in the glorious uncertainty of the here and now, deep in the heart of spontaneous composition.

The festival will feature contributions from the likes of the amazing Oren Marshall (collaborations include Radiohead and Charlie Haden), Maggie Nicols, Anton Mobin, Phil Minton, The Irrepressibles, Matt Black (Ninja Tune, Coldcut), h2dance, Mixmaster Morris and many other leading artists in the field.

It takes place in one of London’s most fascinating art hubs, The Albert in Queen’s Park, and is open to everyone to come and enjoy, explore, experience and get involved.
Live stream here

Daksyba - OV London Festival 2013 Interactive Multisensory Playground @ The Albert

LINKS
http://www.thealbert.org.uk/
http://ovlondon.weebly.com/art-of-the-moment.html
http://ovlondon.weebly.com/
Daksyba blog here.
http://video.twicsy.com/i/zrfDf videohackspace
http://ktokradio.com/?p=1082

Divide To Infinity – Advanced Audiovisual Processing with OpenFrameWorks C++ Libraries

MIDI Maximilian Scope Synth

This program requires the use of a MIDI controller to work – compiled example can be found in the /bin folder. This requires .NET framework 4 (not 4.5) and Visual Studio 2010 libraries to be installed if you are on Windows. The program features a scope adapted from the ofxMaxim example in OpenFrameWorks and comprises of a mono legato triggering synthesizer. Filter cutoff is controlled by momentary on velocity switching and oscillator gate is permanantely on due to having no ADSR and quick and dirty MIDI triggering logic.

Bubblesort:

This program fills an array with random values based on the screen height and iterates through sending the value to a sawtooth oscillator. This implements switch cases – pressing 1 will Bubblesort the array to give a saw glissandi – while pressing 2 will randomise the array data again.

EEG Maximilian:

This was intended to be the main project however due to the nature of how the Emotiv headset examples are organised, I was sadly unable to suitably map the functionality to the way that OpenFrameWorks operates – this code is provided only as a means to see where I am with implementing this. The majority of the code is cut up examples from the emotiv library mixed in with MIDI and Maximilian.

MIDI Example:

I have modified this code slightly from the original supplied by the ofxMidi author Chris O’Shea. I added to the example by listing all MIDI ports by pressing ‘l’ for list and changing midi ports on the fly using a switch case with numeric input for easy testing.

videoPlayerTestModified:

This is a simple test to see how well the Quicktime library works on windows 7 x64, I simply looked into the API and set up a few cases by pressing 1,2,3 and 4 – video play speed, pause and play direction. Sadly this not work with my original video which had a higher bandwidth (had an error code -50 – I could not find the solution anywhere) so this uses the standard ‘fingers’ video.

The link to all of the above source code and materials can be found here.

Unzip these archives into your ‘myApps’ directory in OpenFrameworks.

For more info on OpenFrameWorks and creative coding as an art form, go here.

If you are on Windows, you can execute the debug app in the ‘bin’ folder provided you have all the correct Microsoft C++ Redistributable installed.

Precomplied versions of all projects can be found in their associated /bin folder for easy testing.