1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229
|
-----------------
FreeJ 0.3 "PRATERHIMMEL" - http://freej.dyne.org
-----------------
jaromil@dyne.org
-----------------
28 Jan 2002
{OVERVIEW}
FreeJ is a digital instrument for video livesets, featuring realtime
rendering of multilayered video and chained effect filtering directly on
the screen (thru dinamicly loadable plugins). FreeJ threats every video
source as a layer, making then possible to dynamically apply on each a
chain of filters, loadable as effect plugins and easily customizable.
Layers are planned for rendering of analog video input, digital movie
files (avi/mpeg), image bitmaps, sound scopes, texts and eventually
more.
FreeJ is being developed in the hope to provide the GNU community with a
free, modular and highly customizable application to perform video
livesets, based on a GPL'ed framework that lets anybody implement his
own filters concentrating simply on the dsp algorithm developed and
furthermore to combine them over any supported layer.
FreeJ is Free Software and his sourcecode is released under the Gnu
Public License.
{BACKGROUND}
As a precedent to FreeJ some of us surely know the GPL'ed software that
Andreas Schiffler wrote in '99 called
{{{ftp://esc2.zkm.de/pub/libbgrab/README}libbgrab}}, implementing some
effects and following the analog idea of giving an easy to use and
optimized API for programmers willing to use video4linux devices. His code
does'nt go further in implementing a multilayered engine, alltough all his
brilliant effects can be easily integrated into FreeJ (without problems
according to GPL license) and can be even combined multiplying the
achievable results.
More recently, on the 16 april 2001, another brilliant programmer known
as Fukuchi Kentarou released a GPL'ed free software called
{{{http://freshmeat.net/redir/effectv/12883/url_homepage/}EffecTV}},
implementing many new realtime video effects which showed good performance
and quality over a live video signal captured from video4linux devices.
Even those effects can be easily implemented and combined in FreeJ, making
it possible to apply them on any video layer supported.
Exactly the same day FreeJ has been employed for the first time in a
theatre piece performed in the Palazzo della Civilta' Italiana (EUR) in
Rome, in collaboration with the company Giardini Pensili and the actress
Anna Bonaiuto: {{http://giardini.sm/projects/metamorfosi}}. In that context
has been used an effect ported from libbgrab plus other effects coded from
scratch live on the set.
Allready at the time of this 0.3 release FreeJ has been allready employed by
the author in several events: presented in a performance in Bologna at the
{{{http://www.d-i-n-a.org}digital_is_not_analog01}} festival, misused at the
{{{http://www.hackmeeting.org}hackmeeting[0x7d1]}} in Catania, employed
in {{http://www.poetrybox.net}Stanze D'ascolto}} and at the
{{{http://residence.aec.at/liquidmusic}LiquidMusic-Checkpoint}}, into the
{{{http://tubocatodico.dyne.org}TUBOCATODICO}} theatre piece on tour in
Italy and by the live performances of {{{http://mitocondri.dyne.org}The
Mitocondri}}.
{INTERNALS}
FreeJ, as a free modularized GNU/Linux based framework, permits unified
quality control over the rendering of digital video processing and makes it
much easier to write DSP filter algorithms keeping them compatible with
as much devices as possible and making them relying on optimized code.
Every filter is a plugin coded in C language respecting a defined API,
it can be chained with other filter plugins and applied on every layer
implemented.
FreeJ is being developed in c++ respecting POSIX.1b compliance, releases
will be made available in a packaging permitting easy compilation with
standard GNU free development tools. For rendering to screen is being
linked shared the {{{http://www.libsdl.org}Simple Direct Media Layer}}
library, allready employed by {{{http://www.lokigames.com}lokigames.com}}
for his high performance in porting games under GNU/Linux platform. As a
realtime architecture FreeJ aims to make efficient use of multithreading
optimizing the usage of hardware resources, also requiring
{{{http://www.kernel.org/pub/software/devel/nasm/}NASM}} Netwide
Assembler to compile the included MMX/SSI optimized assembler code.
There's only one layer implemented yet wich makes use of the video4linux
abstracted device for capturing live video input from the many linux
supported hardware devices (which includes bttv, usb cams and more).
Alltough possible, is not planned any porting to platforms other than
GNU/Linux at least in the earliest development phases.
{REQUIREMENTS}
* a working GNU/Linux workstation :)
* {{{http://www.libsdl.org}Simple Directmedia Layer}} library
* a {{{http://roadrunner.swansea.linux.org.uk/v4l.shtml}video4linux}}
supported capture card
* {{{http://www.kernel.org/pub/software/devel/nasm}NASM}} netwide
assembler compiler
* an x86 CPU supporting MMX instructions, even better SSI (PentiumIII or
more)
* {{{http://www.xfree86.org}XFree86}}, possibly 4.1 running on
a accelerated supported card
{FEATURES}
* multilayered video engine
* layer filtering thru chainable dsp algorithms
* dinamicly loadable DSO plugin architecture for filters
* MMX/SSI assembler accelerated engine lubrifications
* efficient triple-buffered multithreaded video grabbing layer
* modular c++ code structure
* multithreaded architecture (POSIX.1b compliant)
* (ab)user friendly OnScreenDisplay interface
* 100% GNU public licensed Free Software
{ROADMAP}
At the moment FreeJ is being released since it's early stages of
development according with GPL software tradictions, seeking
collaborations of developers interested in being involved and support
from anybody else. The actual 0.3 release (codename PRATERHIMMEL) it
reveals to be very stable, implements a new API to code filter plugins
and is going to offer documentation to make it possible for developers
to join the code and code their own plugins in a simple way, just using
C language.
Within the PRATERHIMMEL series they will be developed more layers:
AVI/MPEG is being experimented and text will follow. Also the way to
blit them on the screen might change implementing chrome keying /
addition / multiplication etc. between layers.
Development of more chainable effects and documentation about how to develop
them is going on keeping a good rithm, porting publicly available
algorithms to FreeJ's framework. A main goal on which the project keeps
focusing it's to raise a community of developers implementing filter
effects, contributing in this way to further spread realtime digital
signal processing research in the video field and of course keeping such
a research into the domain of Free Software.
Also user documentation will be extensively produced in the hope that
such an application will be useful in enhancing creativity of video
artists, specially those independent artists that finally will decide to
take the political choice of Free Software and avoid investment into
hardware/software proprietary and corporate solutions.
{AVAILABILITY}
Updated informations and FreeJ releases are made available on
{{http://freej.dyne.org}}. The bleeding edge sourcecode is also publicly
available thru CVS on
{{{http://savannah.gnu.org/cvs/?group_id=494}savannah.gnu.org}}
The latest sourcecode package is also submitted to the ibiblio.org (once
metalab.unc.edu) ftp archive: latest FreeJ release can be found into the
/pub/linux/apps/video directory on any sunsite mirror worldwide.
{SUPPORT}
As allready mentioned, support is crucial for succesfully achieve the
implementation of planned features.
Any organization or individual can give significant support contributing
funds for involved developers, bandwidth for project hosting, hardware
for development, timespace where to present FreeJ thru public workshops
and/or performances and more generally credits and citations.
FreeJ development staff is available to run formation courses about
usage, customization and reuse/abuse of the software in particular
circumstances. Even adhoc setup and/or warranty that FreeJ fits to
anybody's particular purpose can be requested: feel free to contact
<<freej-team@dyne.org>> for any further information.
Have a look at our recent project
{{{http://dynebolic.dyne.org}DyneBolic}}: we are shipping this live
bootable CD as a whole operating system working out of the box with our
major softwares on it including FreeJ and automatic hardware recognition
of your sound card, BTTV card, video card, network device and more. No
need to install or delete something from your harddisk to use FreeJ,
even if you don't have GNU/Linux installed! DyneBolic is distributed in
order to support development of our softwares: if you use FreeJ and find
it useful please consider making a donation ordering a copy or becoming
a redistributor!
{DISCUSSION}
A mailinglist for further discussion about FreeJ is running as
<<freej@dyne.org>>, subscription is opened and anybody interested can send
a mail to <<freej-subscribe@dyne.org>> to join. Online archive and
mailinglist interface is made available on
{{http://dyne.org/cgi-bin/ml.cgi?4}}.
{COPYING}
FreeJ is Copyright (c) 2001 Denis Roio aka
{{{http://korova.dyne.org}jaromil}} other code included is copyrighted
by respective authors, for further informations refer to the sourcecode
itself and to the AUTHORS file included in every package.
+-------------------------------------------------------------------------
FreeJ is Free Software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version
+-------------------------------------------------------------------------
+-------------------------------------------------------------------------
Permission is granted to copy, distribute and/or modify this
documentation under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
Foundation; with the Invariant Sections being TITLE, AUTHOR, OVERVIEW,
BACKGROUND, AVAILABILITY, SUPPORT, DISCUSSION and with the Front-Cover
Texts including "FreeJ - http://freej.dyne.org". Permission is granted to
make and distribute verbatim copies of this manual page provided the above
copyright notice and this permission notice are preserved on all copies.
+-------------------------------------------------------------------------
|