Differences between revisions 1 and 2
Revision 1 as of 2009-03-05 12:01:58
Size: 11432
Editor: asbesto
Comment:
Revision 2 as of 2009-03-05 12:10:49
Size: 15714
Editor: asbesto
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:
   ''Freej'' is a tool for being VJ. As documentation says, it is a vision mixer, a tool for realtime video manipulation.
 
   FreeJ is a vision mixer: a digital instrument for realtime video manipulation used in the fields of dance teather, veejaying, online streaming, medical visualisation and TV.

It runs a video engine in which multiple layers can be filtered thru effect chains and then mixed together with images, movies, live cameras, particle generators, text scrollers and vector graphics. All the resulting video mix can be shown on a screen, encoded into a movie and streamed live to the internet.

FreeJ can be controlled locally or remotely, also from multiple places at the same time, using its ascii console interface; operations can be scripted in javascript and triggered live via keyboard, mouse, MIDI controllers, Joysticks, OSC clients, Wiimotes and more devices.

FreeJ's sourcecode is written in portable C and C++ and it works on most platforms supported by the GNU C compiler, including 32bit and 64bit processors, PowerPC and various ARM flavours.

FreeJ is released free under the GNU General Public License (v3).

Line 6: Line 15:


== FEATURES ==

 * reads and renders layers from multiple sources: webcams, TV, divx/avi movies, images, txt files and more
 * can encode in Ogg/Theora video, recording on local file and streaming live to an online Icecast server
 * can be controlled from remote: VJoE - VeeJay over Ethernet
 * can be scripted in object oriented javascript
 * supports frei0r and freeframe video plugins
 * very efficient video engine with multithreaded layers
 * Emacs/Vi style console with hotkeys and completion
 * multiple controllers at the same time (Midi,Joystick etc.)
 * 100% Free and open source, GCC 4 compliant portable code


== HISTORY ==

This software started being developed as a digital instrument Jaromil used in dance-theater performances. Since 2001 ongoing development took inspiration from various artists and programmers: Andreas Schiffler, Roberto Paci Dalo', Tom Demeyer, Francescopaolo Isidoro,
Kentaro Fukuchi, Luigi Pagliarini, Isabella Bordoni, to name just a few.

Set the VeeJay Free! was the first motto for this software.

In 2003 Kysucix joined development contributing the streaming feature and helping to include the javascript parser. He employed FreeJ in interactive installations while working with Studio Azzurro.

Since 2004 development has received support from the Netherlands Media Art Insitute.

In 2005 Mr.Goil joined development, writing programmable controllers, reviewing the scripting environment and adding more features.

In 2007 the austrian initiative Netculture lab supported Jaromil and Mr.Goil developing the BeTV release: it enhanced scriptability and streaming, with a major cleanup of the code and wider support of video plugins.

In 2008 both Jaromil and Mr.Goil are meeting regularly in code sessions which are rapidly driving the project towards a stable 1.0 release of FreeJ engine and javascript API. Meanwhile Blender2Crystal developer Caedes is experimenting with python bindings and uses of the FreeJ engine in a 3d environment.

For the time being, FreeJ is employed in various video performances, interactive installations and online TV streams, as well used for visualisations in medical analysis.

Developers are keen to accept projects and propositions in order to sustain the development activity and involve more developers, please join our mailinglist on http://lists.dyne.org to collaborate and be part of our history :)

== GET STARTED ==

To start rolling with FreeJ you can have a look also to the README, INSTALL and other files distributed with the package or source code. Also, check the online documentation on http://freej.dyne.org

Most powerful uses of FreeJ involve scripting for live interaction with devices and video compositing, still a first look at the console controller can give an initial picture of how the software works.

Tutorials, examples and scripting reference are available from the website as well along with the distributed sourcecode, in the doc/ and scripts/ directories. GNU/Linux distributions usually ship these files inside /usr/share/freej and /usr/doc/FreeJ*

As development unrolls suggestions and feedback are welcome, join uson the freej mailinglist on http://lists.dyne.org and let us know your impressions and ideas.


Freej beginner tutorial

FreeJ is a vision mixer: a digital instrument for realtime video manipulation used in the fields of dance teather, veejaying, online streaming, medical visualisation and TV.

It runs a video engine in which multiple layers can be filtered thru effect chains and then mixed together with images, movies, live cameras, particle generators, text scrollers and vector graphics. All the resulting video mix can be shown on a screen, encoded into a movie and streamed live to the internet.

FreeJ can be controlled locally or remotely, also from multiple places at the same time, using its ascii console interface; operations can be scripted in javascript and triggered live via keyboard, mouse, MIDI controllers, Joysticks, OSC clients, Wiimotes and more devices.

FreeJ's sourcecode is written in portable C and C++ and it works on most platforms supported by the GNU C compiler, including 32bit and 64bit processors, PowerPC and various ARM flavours.

FreeJ is released free under the GNU General Public License (v3).

  • http://freej.dyne.org/tut/img/00.jpg

FEATURES

  • reads and renders layers from multiple sources: webcams, TV, divx/avi movies, images, txt files and more
  • can encode in Ogg/Theora video, recording on local file and streaming live to an online Icecast server
  • can be controlled from remote: VJoE - VeeJay over Ethernet

  • can be scripted in object oriented javascript
  • supports frei0r and freeframe video plugins
  • very efficient video engine with multithreaded layers
  • Emacs/Vi style console with hotkeys and completion
  • multiple controllers at the same time (Midi,Joystick etc.)
  • 100% Free and open source, GCC 4 compliant portable code

HISTORY

This software started being developed as a digital instrument Jaromil used in dance-theater performances. Since 2001 ongoing development took inspiration from various artists and programmers: Andreas Schiffler, Roberto Paci Dalo', Tom Demeyer, Francescopaolo Isidoro, Kentaro Fukuchi, Luigi Pagliarini, Isabella Bordoni, to name just a few.

Set the VeeJay Free! was the first motto for this software.

In 2003 Kysucix joined development contributing the streaming feature and helping to include the javascript parser. He employed FreeJ in interactive installations while working with Studio Azzurro.

Since 2004 development has received support from the Netherlands Media Art Insitute.

In 2005 Mr.Goil joined development, writing programmable controllers, reviewing the scripting environment and adding more features.

In 2007 the austrian initiative Netculture lab supported Jaromil and Mr.Goil developing the BeTV release: it enhanced scriptability and streaming, with a major cleanup of the code and wider support of video plugins.

In 2008 both Jaromil and Mr.Goil are meeting regularly in code sessions which are rapidly driving the project towards a stable 1.0 release of FreeJ engine and javascript API. Meanwhile Blender2Crystal developer Caedes is experimenting with python bindings and uses of the FreeJ engine in a 3d environment.

For the time being, FreeJ is employed in various video performances, interactive installations and online TV streams, as well used for visualisations in medical analysis.

Developers are keen to accept projects and propositions in order to sustain the development activity and involve more developers, please join our mailinglist on http://lists.dyne.org to collaborate and be part of our history :)

GET STARTED

To start rolling with FreeJ you can have a look also to the README, INSTALL and other files distributed with the package or source code. Also, check the online documentation on http://freej.dyne.org

Most powerful uses of FreeJ involve scripting for live interaction with devices and video compositing, still a first look at the console controller can give an initial picture of how the software works.

Tutorials, examples and scripting reference are available from the website as well along with the distributed sourcecode, in the doc/ and scripts/ directories. GNU/Linux distributions usually ship these files inside /usr/share/freej and /usr/doc/FreeJ*

As development unrolls suggestions and feedback are welcome, join uson the freej mailinglist on http://lists.dyne.org and let us know your impressions and ideas.

  • This is a tutorial for beginners who want to learn using Freej. This is the first part of tutorial – I plan to write next parts if I see somebody uses and needs it. In this part you will learn:

    • what is the basic idea of using freej, how its user interface is organized

    • how to use freej to show movies and static images

    • how to use layers, so you can use more than one movie
    • how to mix layers with each other
    • how to add visual effects to displayed movies
    However, I assume that you:
    • can use Linux (command line)
    • will really do all the exercises from this tutorial -- if you only read it, you'll learn nothing
    • will let me me know about any problems, comments and suggestions, so I can make this tutorial better


contents


installation

  • The installation of Freej is out of the scope of this document. Freej's website is: http://freej.dyne.org/. Take a look there.

    If you want to try Freej without installing it, just use dynebolic live CD.

    http://dynebolic.org/img/cd_small.jpg


the first start

  • [01] Create directory freej_tmp. We will put our images, movies etc in this directory and we will play inside it:

     $ mkdir freej_tmp
     $ cd freej_tmp 

    [02] Download this image to freej_tmp directory. Now start freej:

     $ freej ipernav.png 

    As a result, freej starts and shows the picture ipernav.png.

    http://freej.dyne.org/tut/img/01.png


user interface

  • Freej consists of two windows:

    • output window – in this window our movies, pictures etc are shown,
    • console window – this window is used to interact with freej – give commands, load new pictures, movies etc,

    http://freej.dyne.org/tut/img/02.jpg

    [03] In console window, press [?] key (quotation mark). You will see the list of shortcuts.

    http://freej.dyne.org/tut/img/03.png

    [04] As you can see, [ctrl+c] means quit. Press [ctrl+c]. You are prompted to confirm that you really want to quit freej. Type yes [enter]

    http://freej.dyne.org/tut/img/04.png


some more fun – movies

  • So far we just used static image – not so much fun. But the very same way we can use a movie.

    [05] Download this movie to freej_tmp directory. Then start freej:

     $ freej kury.avi 

    As a result, freej starts and shows the movie kury.avi.

    http://freej.dyne.org/tut/img/05-mini.jpg

    Quit the freej (remember? [ctrl+c]).


more layers

  • We can load both static image and the movie.

    [06] Start freej with both movie and static image:

     $ freej kury.avi ipernav.png 

    http://freej.dyne.org/tut/img/06.png

    As you can see, only chicken movie is visible (and the static image – file ipernav.png – is invisible). We are going to understand why...

    Now, when we opened two images (static image and a movie) in freej, we have them on two layers. You can see the list of layers in the console. As you can see, that layers are called VID (which means: video layer) and IMG (static image layer).

    http://freej.dyne.org/tut/img/06-lista.jpg The list of layers is also shown in output window. As you can see (below), the video layer is on top of static image layer. This is why we can't see the image.

    http://freej.dyne.org/tut/img/06-output.png

    Take a look at the console window. As you can see, one of layers (VID) is highlighted. It is the current layer. You can see the detailed information about that layer in the top of console window. You can see there the name of the file (kury.avi) and some other info, which we will understand later.

    Notice that current layer doesn't mean top layer or the layer which is visible now. Current layer means just current layer.

    http://freej.dyne.org/tut/img/06-details.png

    [07] While in the console window, you can use left and right arrow keys to change the current layer. Press the right arrow key to change the current layer to IMG layer. Notice that now at the top of the console window you can see the details of static image layer.

    http://freej.dyne.org/tut/img/07.png

    [08] While in the console window, you can use page up and page down keys to move the current layer up and down. So now, when the current layer is IMG layer, press page up. As you can see, the static image layer went to the top. Now the static image is visible and the chicken movie became invisible.

    http://freej.dyne.org/tut/img/08.png

    Close the freej ([ctrl+c], as you remember).


mixing two movies

  • As I previously told, freej is about mixing images. Now we will start doing that.

    [09] Download another movie to freej_tmp directory. Then start freej:

     $ freej kury.avi term.avi 

    As a result, freej starts. kury.avi is on the top layer, and is visible. term.avi is on the bottom layer and thus is invisible.

    http://freej.dyne.org/tut/img/09.png

    [10] Press key [2] in output window. The effect should look like that:

    http://freej.dyne.org/tut/img/10.png

    Pressing key [2] we made red blit on active layer. You can see it in layer details, in the top of console window.

    http://freej.dyne.org/tut/img/10-info.png

    As you know, each picture an a computer screen has three channels: red, green and blue. Red blit means that now only red channel of the kury.avi layer is visible. Green and blue channels of this layer became transparent, so now we can see:

    • the red channel of kury.avi

    • the green channel of term.avi

    • the blue channel of term.avi

    In very similar fashion we can use green blit (it's [3] key) or blue blit ([4] key). You can also try using other blits (keys [1]-[9]). Also try switching [0] on and off – I don't know what does it do, but you will see the difference.


alpha blit

  • [11] And now press key [9].

    http://freej.dyne.org/tut/img/11.png

    As you can see, now we use alpha blit (you can read it in the info on current layer in the console window). With alpha blit, the current layer becames partly transparent. As you can see, now the layer kury.avi became fully transparent and only term.avi is visible. This is because alpha parameter is zero:

    http://freej.dyne.org/tut/img/11-alpha.png

    We can change the alpha parameter with mouse. Just press [ctrl+v] in the output window. Now you can move the mouse up and down and alpha will change. When you are done, press [ctrl+v] again. Notice what happens when alpha is about 127 – the current layer becomes half transparent.

    http://freej.dyne.org/tut/img/11_alpha_127.png


Effects

  • [12] Start freej with term.avi:

     $ freej term.avi 

    [13] In console window press [ctrl+e] (e like effect). You will see the prompt like that:

    http://freej.dyne.org/tut/img/13.png

    [14] So just press [tab] and you will see the list of available effects:

    http://freej.dyne.org/tut/img/14.png

    [15] Vertigo effect is a nice one. So just type vertigo [enter]. You will see something like that:

    http://freej.dyne.org/tut/img/15.png


disabling and deleting effects

  • [16] Take a look at the console window. As you can see, the current layer is video layer with file term.avi:

    http://freej.dyne.org/tut/img/16.png

    You can also see that this current layer has the effect vertigo:

    http://freej.dyne.org/tut/img/16-effect.png

    [17] Press down arrow key in the console window to see the details on this filter:

    http://freej.dyne.org/tut/img/17.png

    [18] Press [insert] key to temporarily disable and enable this effect. Press [delete] to delete this effect from this layer.


that's all, folks

  • I think it's enough for the first lesson. You already know how to mix video and static images using different blits and effects. The next thing to learn will be using freej in fullscreen mode (hint: [ctrl+f]), but I will probably show that in the next tutorial.

    [19] If you have some comments, drop them in the guestbook: http://www.rozrywka.jawsieci.pl/materialy/slowo/freej_tutorial/index.php#koniec


metainfo

  • License: you can do whatever you want with this document, except one thing: you can not distribute it under more strict (more close) license.

    Author: my name is Piotr Sobolewski. You can read more about me. You can also contact me.

    Main revision: Asbesto, Wintercamp 09.


CategoryTemplate

FreejTutorial (last edited 2011-03-06 21:44:03 by 0v0x)