Participating in Moving Buildings 2008

November 11th, 2008

I am pleased to announce that I’ll be part of this years Moving Buildings event by P60 in Amstelveen.
Moving Buildings is a project that will decorate the city-square of Amstelveen with light effects, visuals in buildings and interactive installations. I’m really looking forward to get my hands on this project and bring some video interactivity.

An impression of last years Moving Buildings:

Moving Buildings 2007 from moving buildings on Vimeo.

VJ-ing on mac

September 27th, 2008

Since two to three years I have been playing around with a couple of VJ-ing tools and have performed on a couple of gigs. During my first experiences with vj-ing I was struggling allot with all the different tools that are available. I am a mac user so I limited my choices to the mac software (though I have checked pc software like resolume which is real nice) and eventually I ended up with four choices for purchase:

Arkaos

Arkaos Screenshot 

I started off checking out ArKaos. They had a downloadable demo with performing limitations (30 days trial if I recall correctly). Looking at the features I must say it quite a decent application, it runs stable, it had a bunch of filters and effects, you could do all the basic vj stuff. But then the interface… simply horrible. They start of by using this bright shade of  blue that just dominates the global look, then you have these windows looking buttons that map you keyboard (and believe me mac users don’t like apps that look like windows apps). Next annoying thing is that they use floating windows, this is not strange on a mac, but not desired when you are using a dedicated application like VJ-ing software. So in general I must say that this application can generate stunning visuals and really gets allot of performance out of your hardware, but it handles and looks quite ’shitty’. 

Grid Pro

Grid Pro 

Next stop was Grid Pro. At my internship company I met a video editor that was doing some VJ-ing on weekends. He told me that he was using VDMX 4 from vidvox. VDMX, later to be merged with Grid Pro is a modular vj application that allows the user to connect any data output to an input. When I fist saw the application I didn’t get it at all, it had allot of confusing similar looking sliders and somewhat reminded me of the MAX/MSP interface. While browsing the vidvox website, I found out that there also was a more understandable application by vidvox called Grid Pro. It had a widescreen optimized interface that was fullscreen and it delivered nice visual results within a couple of minutes. I really liked the simplicity of the interface and soon found out that the application was capable of allot of things. One of the things that really stood out was the audio and video analysis. You could select an input source and then filter within this input a certain region that you wanted to use (so in audio you could isolate the bass or a high hat). The other great thing about this application was that the demo was for an unlimited period of time, it only stopped showing fullscreen after 20 minutes, so you could keep on playing with it for quite some time. A negative aspect of this application was that it crashed allot, but at the time I was testing this software it was still in Beta so this was somewhat understandable.

Modul8 

 Modul8

While I was searching for the most suiting VJ application a company called garageCube launched their application called modul8. As the name suggests it is a modular VJ-tool with a 2-way mixer with for each channel five layers. I was amazed by the performance of this application, it was capable of allot of live layer effects/blending and also did some 3d rendering. Though this application was quite stunning I really missed some features like the audio analysis and some effects that I couldn’t easily reproduce with this program, also the media bin was way too small and limited to a maximum number of video’s.

A big plus is that the product provides an API that allows users to write their own components, building a community and expanding the product’s capabilities.

In conclusion, a versatile VJ application with allot of potential, it is only missing out one some key features though this can be solved by getting the right plugins.

Check the website. 

Motion Dive Tokyo 

Motion Dive Tokyo 

Motion Dive Tokyo is the most straightforward VJ-tool I have seen. The interface consists of a two way mixer and a media bin and some additional effects. The effects a quite limited and the performance relies on the quality of your VJ material, not the live effort. As limited as it is, it does allow anyone to get into contact with basic VJ-ing and the use of it feels like you are DJ-ing.

A major flaw of this app is the performance when using 640×480 px  (photoJPEG), the sample video’s provided with this app are all 320×240 which runs just fine, but as soon as you add 640×480 material and start blending, the output just starts stuttering. Another negative aspect is the pricing. You have to pay $349,- for the software (special offer) for a piece of software that is very limited compared to its competitors and hasn’t been update for three years (they still recommend a G4…). 

Check the website. 

VDMX 5

I spent allot of time on exploring the Grid Pro application and really liked the filters and effects that came with it. At the time I was working with Grid Pro, it was still in Beta (I also believe it never became RC). I didn’t found any serious bugs until I started to create complex compositions with lots of combined effects. From that moment, when interacting with the interface at the wrong moment, the application would completely crash. I always brought two laptops and a mixer to make sure that I was able to switch when one laptop crashed. After this a few updates came, but fewer kept coming  and the application kept crashing.

Then all of the sudden vidvox announced VDMX 5, with the aplha version available for download. I downloaded the alpha version, and tried to experiment a bit with it. The interface was a mess and stuff had not really been labeled yet, the positive thing was that it looked quite stable and was able to do allot of simultanious effects. Couple of months later the beta is released, it now had a nice organized interface with allot of features. 


VDMX 5

Because I purchased Grid Pro earlier I got a free serial for VDMX 5, which was quite generous of the vidvox team but also fair in a way since Grid Pro wasn’t really a finished product. 

I needed some time to get the hang of it, but when understood how to builda Grid Pro like setup, I really started to love this application. I believe VDMX 5 is one of the most versatile and powerful VJ application I have ever worked with and can be used in very many ways cause of its modular interface. VDMX in contrary to other VJ software allows you to create you own interface with technically unlimited scalability options (as long as your hardware is capable of rendering it). Which when using a Mac Pro can really handle allot of mixed effects.

You are not limited to a 2-way mixer setup like in most other applications, you can add unlimited sources and use blending effects in the layering. The downloadable demo comes with a limited number of filters, but has full program capabilities to allow users to explore the possibilities.

A feature that I thought really stood out is the MIDI device setup. When using external hardware to control your components you simply hit the midi detect button in the context menu of the desired parameter and dial your knob on the MIDI controller to set it up. Also the latest version supports wii controller input.

The full version also comes with a wide variety of filters and effects that are all optimized for intel based macs and gets more of them each update of the application.

 Check out the website. 

 

Flash Media Server Eclipse/Flex Builder plugin

August 22nd, 2008

I stumbled upon this FMS plugin for Eclipse. Unfortunately it is beta and never finished, but it still helps enough to write your FMS apps allot faster. It was originally available on fczone.net but for some reason that site is no longer part of the internets.To install, just drop it in you Eclipse/Flex Builder plugin folder.

Download FMS Eclipse plugin .

fmsplugin2     fmsplugin1

 

Awesome Flash tool

April 11th, 2008

My colleague Remco sent me a link of an awesome online audio hardware simulator, pretty impressive!

hobnox

 

Click the image to check it out. 

Simple way to protect your SWF from being ripped

April 7th, 2008

When making a Flash component most of us try to make it as dynamic as possible, often to using XML to configure and feed the application. I personally sell small Flash components on FlashDen that all use XML to get image addresses or global settings. The FlashDen website requires you to submit a preview file to show how the application works, but in most cases this also gives you the key to the product. Although the SWFs are obfuscated, you still can download the XML and the swf, fill the XML with your own data and use it without purchasing the source. In order to prevent this one of the FlashDen member (Alex Pica) wrote a class to check the current domain and returns a false Boolean if the file is not on the right domain. The AS 2.0 class by Alex Pica: 

/**
* @author Alex PICA
* @version 1.0
*
* Class: FlashDenPreviewFileProtection
* Description: I made this class to prevent the theft of the preview files from flashden.net
*/
import mx.utils.CollectionImpl;
import mx.utils.IteratorImpl;
 
class net.alexandrup.common.FlashDenPreviewFileProtection {
 
    //this var will be set to true when compiling preview files
    public static var IsPreviewFile:Boolean = false;
 
    /**
     * Tests if the current SWF file is stolen
     * @return TRUE if it is a stolen swf
     */
    public static function isStolenSWF():Boolean {
        //do not check if this is the fullversion file
        if (IsPreviewFile === false) return false;
 
        var _domain:String = (new LocalConnection()).domain();
        var _allowedDomainList:CollectionImpl = new CollectionImpl();
 
        //------- add here all strings that would have to be found in allowed domain names --------o
        _allowedDomainList.addItem("flashden");
        _allowedDomainList.addItem("localhost");    //add localhost and 127.0.0.1 to be able to run locally
        _allowedDomainList.addItem("127.0.0.1");
        //--------------------------------------------o
 
        var _it:IteratorImpl = IteratorImpl(_allowedDomainList.getIterator());
        while (_it.hasNext()) {
            if (_domain.toLowerCase().indexOf(_it.next().toString().toLowerCase(), 0) > -1) {
                return false;
            }
        }
 
        return true;
    }
 
    //private constructor to prevent instantiation
    private function FlashDenPreviewFileProtection() { };
}
Just copy/paste it and change the package to whatever you like.
 
Usage:
 
net.alexandrup.common.FlashDenPreviewFileProtection.IsPreviewFile = true;
if (!net.alexandrup.common.FlashDenPreviewFileProtection.isStolenSWF()) {
    this.Init();//here is where you initialize your application
} else {
    var txt:TextField = _root.createTextField("err_txt", 1, 0, 0, Stage.width, Stage.height);
    txt.multiline = true;
    txt.textColor = 0xFF0000;
    txt.text = "This file is stolen from www.flashden.net.";
}

AS3 Rewrite by me:

/**
 * @author Boy Carper - Toybot Interactive
 * @version 1.0
 *
 * Class: 			FlashDenPreviewFileProtection
 * Description: 	This is a AS3 rewrite of the original AS2 class by Alex PICA.
 * 					The class prevents the theft of the preview files from flashden.net
 *
 * Usage:			var loader:URLLoader = new URLLoader();
					FlashDenPreviewFileProtection.addAlowedDomain("www.flashden.com");
					FlashDenPreviewFileProtection.addAlowedDomain("flashden.com");
					FlashDenPreviewFileProtection.addAlowedDomain("localhost");
					FlashDenPreviewFileProtection.addAlowedDomain("127.0.0.1");
					if(!FlashDenPreviewFileProtection.isStolenSWF(root)) loader.load(new URLRequest("pathtoyourxml.xml"));
 *
 * */
 
package com.toybot.flashden
{
	public class FlashDenPreviewFileProtection
	{
		private static var _isPreviewFile:Boolean = true;
		private static var _allowedDomains:Array = new Array();
 
		public static function isStolenSWF(_root:Object):Boolean
		{
			var i:int;
			for(i=0;i<_allowedDomains.length;i++)
			{
				if(String(_root.loaderInfo.url).indexOf(_allowedDomains[i])!=-1) return false
			}
			return true;
		}
 
		public static function addAlowedDomain(domain:String):void
		{
			_allowedDomains.push(domain);
		}
    }
}

AS3 File

The examples are focussed on the flashden domain, but can of course be used for any domain.

BitmapData/draw() and checkPolicyFile

March 19th, 2008

Today I ran into the following error:

SecurityError: Error #2122: Security sandbox violation: BitmapData.draw: http://exampledomain.com/file.swf cannot access http://exampledomain.com/images/image.jpg. A policy file is required, but the checkPolicyFile flag was not set when this media was loaded.

The error was generated by a class in our util folder that we use quite much, but we never had this problem. Well as the error is mentioning, the checkPolicyFile is not set because the LoaderContext is set to null when you don’t supply one in the Loader.load(request:URLRequest, context:LoaderContext = null):void. The strange thing is that the browser is loading the images, only when I create a bitmap and want to draw() the bitmapData I get the above error. I don’t get why it doesn’t check the policyfile when I request the image from a different domain. In order to get rid of the error I did the following:  

1
2
3
var loaderContext:LoaderContext = new LoaderContext();
loaderContext.checkPolicyFile = true;
Loader(_loader).load(_req,loaderContext)

So adding the loaderContext with checkPolicyFile on true does the trick.

onBWDone problem Flash Media Server with AS3

February 19th, 2008

I ran into a small problem today while testing FMS 3, and had some problems finding the solution. I eventually found it and would like to share it with you.if you get the error:

ReferenceError: Error #1069: Property onBWDone not found on StreamTest and there is no default value.

Make sure that you map your NetConnection.client to a client class or the class you are working from. Then create the method onBWDone in the target Class. :

1
2
3
4
5
6
7
8
9
10
11
12
13
private function setConnection():void
 
{
 nc = new NetConnection();
 nc.client = this;
 nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
 nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, onAsyncError);
 nc.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
 nc.connect(appURL);
}
 
public function onBWDone():void{
}

 Why is this happening?
Well if you look into the VOD application on the FMS server you will see that the application performs a BandWidth check and invokes this function on the client when it is done. You can measure the bandwidth speed in order to select a proper stream (assuming you have encoded multiple bitrates of one video). How to use this?
Take a look here.

Director 11

February 19th, 2008

OMG!! Yes they really did it! Adobe announced Director 11 . I really don’t know what to think now… during my study I was infested by Director while it was quite clear Flash was becomming the new standard for online interactivity. For a moment it looked like Director died together with Macromedia, but NO! Adobe actually thinks they can reanimate it again. And what are the stunning new features? I like these ones the most:
- Enhanced user interface!! Thats great, because the interface really could use that.. so what does it look like??Director castpicture-3.png
 That is one hell of a change compared to mx 2004  - Windows® support (now includes Windows Vista®)  Are these features???? duh, ofcourse it needs to run on the current Operating Systems.- Mac support (now includes Intel® processors) Wow, intel support!!- DirectX 9 support .. ok that’s kewl- Advanced physics with included AGEIA™ PhysX™ engine .. also kewl  So in general I can’t really tell what the idea of this version of Director is, I think that they wan’t to make an easy game develop environment, which is cool. But in the meantime Flash and AS3 are also getting a high performance on 3d (like papervision) and the flash player is widely supported. So what is going to happen to Director? Will Director be able to create AIR applications? Will there be a decent Flash Director Meshup or is it just a wast of shitloads of money? We’ll see.  

AS3 onReleaseOutside

January 25th, 2008

It seems to be that the ReleaseOutside we all know from Actionscript 2 is no more in AS3. Why? I don’t know. I noticed allot of people having problems with this lack of feature. The work around has been published all over the web, another reference here will help spread the word. The idea of an onReleaseOutside MouseEvent is that you detect if the mouse is not over the object when it is up. So what you simply need to do is relocate the MouseEvent.MOUSE_UP from the object you want to detect to the stage. So what does this look like? 

// constructor
public function MyClass()
{
	//we use this event to obtain the stage object 
	addEventListener(Event.ADDED_TO_STAGE, onAdded); 
} 
 
// stage object is now available
private function onAdded(e:Event):void
{
	addChild(_yourbutton);
	_yourbutton.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);	
}
 
private function onMouseDown(me:MouseEvent):void
{
 	trace("mouse down");
	stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUp)
}
 
private function onMouseUp(me:MouseEvent):void
{
	trace("mouse up"); 
	stage.removeEventListener(MouseEvent.MOUSE_UP, onMouseUp)
}

I hope you find this useful.

Tutorial: Scripted Scene Selection - DVD Studio Pro 4

January 21st, 2008

DVD Authoring
In this tutorial I describe how you can make a scene selection in DVD Studio Pro (DVDSP) without having to make all the connections by hand. The big advantage of doing this is that you can modify the behavior of all the buttons in one script and you won’t accidently set a wrong link.

Dowload Tutorial [<1.0 mb](current version is Dutch, english coming up)
Download DVDSP Project [1.0 mb].