loading

Archive for April, 2007

Peter Kirn

Why is Apple’s Support for Java Multimedia So Poor?

It’s ironic to me that so many users of the superb, Java-based Processing multimedia tool seem to prefer the Mac, because Mac Java support seems downright anemic. Mac users have long complained that, since Apple develops their own Java support for Mac OS X, the platform tends to lag behind Sun’s releases. That to me doesn’t seem like such a problem — early adoption of each new Java to leap out of Sun is generally a bad idea anyway. A more significant issue, though, is that Java performance tends to lag on the Mac in multimedia apps and that Apple has dropped support for two of the most important multimedia APIs.

On the music side, Apple dumped its com.apple.audio.midi java package with 10.4.8. Result: not only do you lose all the features that make the Mac great for MIDI, like the IAC bus for inter-application MIDI routing, but your external devices also spontaneously disappear. Nice.

On the video side, QuickTime for Java has long been vaporware. Following an update for QuickTime 6.4 and Java 1.4, Apple seems to have abandoned the platform altogether. Note that again, the common theme is Mac OS X 10.4.x. Video sometimes works under QuickTime 7, but there are many potential issues. And each time Apple releases some new QT update, apparently in the interest of supporting the iTunes ecosystem rather than actual video production, stuff often breaks.

Maybe I’m missing something, and maybe I’m being overly harsh (there are platform-specific issues on Linux, Windows, and from Sun themselves), but I would like to learn more about how these issues can addressed to make the Mac a more robust Java multimedia development platform.

(…)
Read the rest of Why is Apple’s Support for Java Multimedia So Poor? (689 words)


© Peter Kirn for Create Digital Motion, 2007. |
Permalink |
No comment

Add to del.icio.us

Want more on these topics ? Browse the archive of posts filed under News.

Lovebytes 2007 generative ident

Over at Universal Everything, Matt just published the furry fruits of our most recent combined efforts, an identity generator for this year’s edition of the Lovebytes digital arts festival, suitably themed: Process.

Ms. Caaciwa Senor Vivagisu Mr. Mic

The theme couldn’t have been more fitting this time, since even though the project had to be turned over quite quickly, it yet again involved an interesting process and journey till the final execution (Not even mentioning Processing as tool used ;). Initially inspired by some of my old experiments with hairy aesthetics and driven by the idea of generating a large(ish) population of (at least 20,000) unique, cuddly, cute monsters, we started thinking how to best allow enough variations to emerge and ensure every generated monster “feels” like an individual…

We looked at some “classic” examples by Jared Tarbell using a templated approach and also some of the more interesting recent spin-off’s dealing with online identity inspired by this and another of Jared’s experiments

Hairy potato Monster process Monster process

Yet, being someone who prefers using code (over predefined assets) for as many parts of a project as possible, I started with my usual approach of isolating and defining a set of suitable design parameters and then went on choosing value ranges for each: head shape (radius, subdivisions, curvaceousness), eyes (count, shape, pupils, direction), colour ways (head vs. hair), hair properties (position, spread, density, curl, gravity, gradient etc.)… Not all of the parameters listed in the sketch were actually used in the end, because most of them are interdependent in some form and having too few or too many such parameters would possibly limit the number of possible outcomes or alternatively explode that “search space” beyond your control and you’ll end up spending most of your time literally searching for an optimal “region of interest” in which your chosen parameters work nicely together and complement each other. That case is then pretty much the inversion of the Pareto principle if you spend 80% of your time getting 20% right…

In any way, I like thinking about design as this space of opportunities and this parametric approach allows me to separate the design process from the design model. It also allows me to test parameter combinations at their extreme values and so narrow down the “search space” of possible design outcomes created by these parameters and align it with my expectations. The approach is based on defining designs as choices and can be far more powerful and flexible when it comes to art direction requests and/or automation. In many cases it helped me avoiding to change any real code last minute and so possibly introduce new bugs.

Since we wanted to create true characters we needed to define and assign another important parameter to each monster: Names. Each name is generated using a few very basic rules, sometimes resulting in hilarious outcomes and unexpectedly suitable names…

Our basic rule of naming is consonant-vowel-consonant, plus a few more extra rules as filters applied on top, e.g.:

* Not every letter (but both vowels and consonants) can be doubled up
* There’s usage limit of every letter per name
* Monsters do have gender. Female names end with “a” or “i”, males are ignorant about that aspect…
* Letter “q” is always followed by “u”
* Names vary in length between 3 and 11 chars
* etc.

In hindsight, some of these rules definitely seem to be enforcing (unintentionally) a White-European naming convention… No offence, please! (Here am too wondering if spammers are using similar non-list based name generators for their products. Well, do you?!)

Last but not least, there’re currently 20,000 postcards circulating around the globe and I’d absolutely appreciate if proud owners of these cards could contribute pictures of them to this specially created flickr group… Thank you kindly!

toxi

Lovebytes 2007 generative ident

Over at Universal Everything, Matt just published the furry fruits of our most recent combined efforts, an identity generator for this year’s edition of the Lovebytes digital arts festival, suitably themed: Process.

Ms. Caaciwa Senor Vivagisu Mr. Mic

The theme couldn’t have been more fitting this time, since even though the project had to be turned over quite quickly, it yet again involved an interesting process and journey till the final execution (Not even mentioning Processing as tool used ;). Initially inspired by some of my old experiments with hairy aesthetics and driven by the idea of generating a large(ish) population of (at least 20,000) unique, cuddly, cute monsters, we started thinking how to best allow enough variations to emerge and ensure every generated monster “feels” like an individual…

We looked at some “classic” examples by Jared Tarbell using a templated approach and also some of the more interesting recent spin-off’s dealing with online identity inspired by this and another of Jared’s experiments

Hairy potato Monster process Monster process

Yet, being someone who prefers using code (over predefined assets) for as many parts of a project as possible, I started with my usual approach of isolating and defining a set of suitable design parameters and then went on choosing value ranges for each: head shape (radius, subdivisions, curvaceousness), eyes (count, shape, pupils, direction), colour ways (head vs. hair), hair properties (position, spread, density, curl, gravity, gradient etc.)… Not all of the parameters listed in the sketch were actually used in the end, because most of them are interdependent in some form and having too few or too many such parameters would possibly limit the number of possible outcomes or alternatively explode that “search space” beyond your control and you’ll end up spending most of your time literally searching for an optimal “region of interest” in which your chosen parameters work nicely together and complement each other. That case is then pretty much the inversion of the Pareto principle if you spend 80% of your time getting 20% right…

In any way, I like thinking about design as this space of opportunities and this parametric approach allows me to separate the design process from the design model. It also allows me to test parameter combinations at their extreme values and so narrow down the “search space” of possible design outcomes created by these parameters and align it with my expectations. The approach is based on defining designs as choices and can be far more powerful and flexible when it comes to art direction requests and/or automation. In many cases it helped me avoiding to change any real code last minute and so possibly introduce new bugs.

Since we wanted to create true characters we needed to define and assign another important parameter to each monster: Names. Each name is generated using a few very basic rules, sometimes resulting in hilarious outcomes and unexpectedly suitable names…

Our basic rule of naming is consonant-vowel-consonant, plus a few more extra rules as filters applied on top, e.g.:

* Not every letter (but both vowels and consonants) can be doubled up
* There’s usage limit of every letter per name
* Monsters do have gender. Female names end with “a” or “i”, males are ignorant about that aspect…
* Letter “q” is always followed by “u”
* Names vary in length between 3 and 11 chars
* etc.

In hindsight, some of these rules definitely seem to be enforcing (unintentionally) a White-European naming convention… No offence, please! (Here am too wondering if spammers are using similar non-list based name generators for their products. Well, do you?!)

Last but not least, there’re currently 20,000 postcards circulating around the globe and I’d absolutely appreciate if proud owners of these cards could contribute pictures of them to this specially created flickr group… Thank you kindly!

Andreas

Processing in Eclipse - Schneller Schreiben

So, nach dem wir soweit sind das unsere Processing Sketche auch in Eclipse laufen, nun zu den Vorteilen von Eclipse. Beim Tippen kann ich mir mit der Tastenkombination ctrl+Space mögliche Routinen oder Funktionen anzeigen lassen und mit Return bestätigen. Wenn ich also “for” schreibe und dann ctrl+Space und Enter schreibt mir Eclipse folgendes:

for (int i = 0; i length; i++) {
   
}

Wenn ich das dann in der for Schleife wiederhole bekomme ich das:

for (int i = 0; i length; i++) {
    for (int j = 0; j
length; j++) {
       
    }
}

Auch auf die Processing Methoden kann ich zugreifen. “MousePr” und ctrl+Space liefert mir:

@Override
public void mousePressed() {
    // TODO Auto-generated method stub
    super.mousePressed();
}

Habe ich jetzt bestimmte Strukturen die ich immer wieder verwenden will kann ich mir unter Window -> Preferences -> Java -> Editor -> Templates ein neues Template anlegen. Will ich in mein Sketch z.B. immer bestimmte Libraries importieren legen ich mir ein neues Template an, in dem dann z.B. folgendes steht:

import processing.core.*;
import processing.opengl.*;
import javax.media.opengl.GL;

und nenne es importOpenGL. Das ganze abspeichern und wenn ich jetzt in meinem Sketch “import” eingebe, ctrl+Space klicke, dann kann ich das neue Template auswählen.

In Templates kann man Variablen verwenden. Wenn ich das Grundgerüst eines Sketches als Template erstellen will, weiß ich ja noch nicht wie die Klasse heißt und ob und wenn ja in welchem Package sich die Klasse befindet. Folgendes Template beinhaltet die Grundstruktur eines OpenGl Sketches. Die beiden Variablen ${enclosing_package} und ${primary_type_name} sorgen dafür, dass Klassen- und Packagename immer richtig ausgefüllt werden.

package ${enclosing_package};

import processing.core.*;
import processing.opengl.*;
import javax.media.opengl.GL;

public class ${primary_type_name} extends PApplet {

    static public void main(String args[]) {
        PApplet.main(new String[] { /* “–present”, */ “${enclosing_package}.${primary_type_name}” });
    }

    public void setup() {
        size(500, 500, OPENGL);
    }

    public void draw() {

    }
}

Das ganze nenne ich dann sketchOpenGl und schwuppdiwupp mit ein paar Klicks hab ich eine neues Sketch ohne Tippfehler und fertig zum Einsatz.

Um eine neue Methode zu schreiben reicht es aus, den Aufruf dafür zuschreiben. Wenn ich folgendes schreibe:

int x=sign(3.4f);

wird es mir erstmal als Fehler rot unterstrichen da die Methode noch nicht existiert. Drücke ich jetzt Apfel+1 dann werden mir mehrere Vorschläge unterbreitet das Problem zu lösen. Wenn ich dann “create methode sign(float)” auswähle wird, wer hätte das gedacht, eine neue Methode angelegt:

private int sign(float f) {
    // TODO Auto-generated method stub
    return 0;
}

Zwischen den umrandeten Feldern kann ich mittels Tab springen und mit den Pfeiltasten z.B. von privat zu public wechseln.

Andreas

Processing in Eclipse - Schneller Schreiben

So, nach dem wir soweit sind das unsere Processing Sketche auch in Eclipse laufen, nun zu den Vorteilen von Eclipse. Beim Tippen kann ich mir mit der Tastenkombination ctrl+Space mögliche Routinen oder Funktionen anzeigen lassen und mit Return bestätigen. Wenn ich also "for" schreibe und dann ctrl+Space und Enter schreibt mir Eclipse folgendes:

for (int i = 0; i <array.length; i++) {
   
}

Wenn ich das dann in der for Schleife wiederhole bekomme ich das:

for (int i = 0; i <array.length; i++) {
    for (int j = 0; j <array.length; j++) {
       
    }
}

Auch auf die Processing Methoden kann ich zugreifen. "MousePr" und ctrl+Space liefert mir:

@Override
public void mousePressed() {
    // TODO Auto-generated method stub
    super.mousePressed();
}

Habe ich jetzt bestimmte Strukturen die ich immer wieder verwenden will kann ich mir unter Window -> Preferences -> Java -> Editor -> Templates ein neues Template anlegen. Will ich in mein Sketch z.B. immer bestimmte Libraries importieren legen ich mir ein neues Template an, in dem dann z.B. folgendes steht:

import processing.core.*;
import processing.opengl.*;
import javax.media.opengl.GL;

und nenne es importOpenGL. Das ganze abspeichern und wenn ich jetzt in meinem Sketch "import" eingebe, ctrl+Space klicke, dann kann ich das neue Template auswählen.

In Templates kann man Variablen verwenden. Wenn ich das Grundgerüst eines Sketches als Template erstellen will, weiß ich ja noch nicht wie die Klasse heißt und ob und wenn ja in welchem Package sich die Klasse befindet. Folgendes Template beinhaltet die Grundstruktur eines OpenGl Sketches. Die beiden Variablen ${enclosing_package} und ${primary_type_name} sorgen dafür, dass Klassen- und Packagename immer richtig ausgefüllt werden.

package ${enclosing_package};

import processing.core.*;
import processing.opengl.*;
import javax.media.opengl.GL;

public class ${primary_type_name} extends PApplet {

    static public void main(String args[]) {
        PApplet.main(new String[] { /* "–present", */ “${enclosing_package}.${primary_type_name}” });
    }

    public void setup() {
        size(500, 500, OPENGL);
    }

    public void draw() {

    }
}

Das ganze nenne ich dann sketchOpenGl und schwuppdiwupp mit ein paar Klicks hab ich eine neues Sketch ohne Tippfehler und fertig zum Einsatz.

Um eine neue Methode zu schreiben reicht es aus, den Aufruf dafür zuschreiben. Wenn ich folgendes schreibe:

int x=sign(3.4f);

wird es mir erstmal als Fehler rot unterstrichen da die Methode noch nicht existiert. Drücke ich jetzt Apfel+1 dann werden mir mehrere Vorschläge unterbreitet das Problem zu lösen. Wenn ich dann "create methode sign(float)" auswähle wird, wer hätte das gedacht, eine neue Methode angelegt:

private int sign(float f) {
    // TODO Auto-generated method stub
    return 0;
}

Zwischen den umrandeten Feldern kann ich mittels Tab springen und mit den Pfeiltasten z.B. von privat zu public wechseln.

eskimoblood

lovebytes 2007 Ident 3

Digital Beings.

Matt Pyke of Universal Everything has created the Lovebytes festival identity for the last 4 years. This has evolved from a digital / pixelated aesthetic in a more friendly, accessible direction. The underlying theme of this year’s festival is ‘process’. Lovebytes commissioned Universal Everything to create a new, forward thinking design process to relate to this theme and to reflect the growing accessibility of Lovebytes and digital art with an approachable look that would appeal to a broad audience.

The concept of ’simple, warm, soft technology’ resulted in a
population of unique friendly furry faces which would appear across all our festival literature.

This generative approach challenges the role of the designer, who designs the ’seed’ which spawns these designs automatically within parameters such as hair colour, hair length, head shape, eye shape and name.

Matt worked with the programmer Karsten Schmidt (Toxi.co.uk) to
design an automated, generative design process to create 20,000
unique designs. Each piece you see is one of a kind. This customised application is based on the open-source Processing (processing.org) software, as featured in Access Spaces’ Processing Workshop, led by David Muth 17/18 May 2007.

A special preview of Universal Everything’s HD DVD sound sculpture project, Advanced Beauty, takes place 19 May 2007, 6-7pm at the Showroom Cinema, introduced by Matt Pyke.

www.lovebytes.org.uk

Author: likebytes

Keywords: lovebytes Festival 2007 Digital Media Arts Matt Pyke Universal Everything

Added: April 25, 2007

eskimoblood

Lovebytes 2007 Ident 2

Digital Beings.

Matt Pyke of Universal Everything has created the Lovebytes festival identity for the last 4 years. This has evolved from a digital / pixelated aesthetic in a more friendly, accessible direction. The underlying theme of this year’s festival is ‘process’. Lovebytes commissioned Universal Everything to create a new, forward thinking design process to relate to this theme and to reflect the growing accessibility of Lovebytes and digital art with an approachable look that would appeal to a broad audience.

The concept of ’simple, warm, soft technology’ resulted in a
population of unique friendly furry faces which would appear across all our festival literature.

This generative approach challenges the role of the designer, who designs the ’seed’ which spawns these designs automatically within parameters such as hair colour, hair length, head shape, eye shape and name.

Matt worked with the programmer Karsten Schmidt (Toxi.co.uk) to
design an automated, generative design process to create 20,000
unique designs. Each piece you see is one of a kind. This customised application is based on the open-source Processing (processing.org) software, as featured in Access Spaces’ Processing Workshop, led by David Muth 17/18 May 2007.

A special preview of Universal Everything’s HD DVD sound sculpture project, Advanced Beauty, takes place 19 May 2007, 6-7pm at the Showroom Cinema, introduced by Matt Pyke.

www.lovebytes.org.uk

Author: likebytes

Keywords: lovebytes Festival 2007 Digital Media Arts Matt Pyke Universal Everything

Added: April 24, 2007

eskimoblood

Lovebytes 2007 Ident

Digital Beings.

Matt Pyke of Universal Everything has created the Lovebytes festival identity for the last 4 years. This has evolved from a digital / pixelated aesthetic in a more friendly, accessible direction. The underlying theme of this year’s festival is ‘process’. Lovebytes commissioned Universal Everything to create a new, forward thinking design process to relate to this theme and to reflect the growing accessibility of Lovebytes and digital art with an approachable look that would appeal to a broad audience.

The concept of ’simple, warm, soft technology’ resulted in a
population of unique friendly furry faces which would appear across all our festival literature.

This generative approach challenges the role of the designer, who designs the ’seed’ which spawns these designs automatically within parameters such as hair colour, hair length, head shape, eye shape and name.

Matt worked with the programmer Karsten Schmidt (Toxi.co.uk) to
design an automated, generative design process to create 20,000
unique designs. Each piece you see is one of a kind. This customised application is based on the open-source Processing (processing.org) software, as featured in Access Spaces’ Processing Workshop, led by David Muth 17/18 May 2007.

A special preview of Universal Everything’s HD DVD sound sculpture project, Advanced Beauty, takes place 19 May 2007, 6-7pm at the Showroom Cinema, introduced by Matt Pyke.

www.lovebytes.org.uk

Author: likebytes

Keywords: lovebytes Festival 2007 Digital Media Arts Matt Pyke Universal Everything

Added: April 24, 2007

eskimoblood

lovebytes 2007 Ident

Digital Beings.

Matt Pyke of Universal Everything has created the Lovebytes festival identity for the last 4 years. This has evolved from a digital / pixelated aesthetic in a more friendly, accessible direction. The underlying theme of this year’s festival is ‘process’. Lovebytes commissioned Universal Everything to create a new, forward thinking design process to relate to this theme and to reflect the growing accessibility of Lovebytes and digital art with an approachable look that would appeal to a broad audience.

The concept of ’simple, warm, soft technology’ resulted in a
population of unique friendly furry faces which would appear across all our festival literature.

This generative approach challenges the role of the designer, who designs the ’seed’ which spawns these designs automatically within parameters such as hair colour, hair length, head shape, eye shape and name.

Matt worked with the programmer Karsten Schmidt (Toxi.co.uk) to
design an automated, generative design process to create 20,000
unique designs. Each piece you see is one of a kind. This customised application is based on the open-source Processing (processing.org) software, as featured in Access Spaces’ Processing Workshop, led by David Muth 17/18 May 2007.

A special preview of Universal Everything’s HD DVD sound sculpture project, Advanced Beauty, takes place 19 May 2007, 6-7pm at the Showroom Cinema, introduced by Matt Pyke.

www.lovebytes.org.uk

Author: likebytes

Keywords: lovebytes Festival 2007 Digital Media Arts Matt Pyke Universal Everything

Added: April 24, 2007

eskimoblood

Lovebytes 2007 Ident

Digital Beings.

Matt Pyke of Universal Everything has created the Lovebytes festival identity for the last 4 years. This has evolved from a digital / pixelated aesthetic in a more friendly, accessible direction. The underlying theme of this year’s festival is ‘process’. Lovebytes commissioned Universal Everything to create a new, forward thinking design process to relate to this theme and to reflect the growing accessibility of Lovebytes and digital art with an approachable look that would appeal to a broad audience.

The concept of ’simple, warm, soft technology’ resulted in a
population of unique friendly furry faces which would appear across all our festival literature.

This generative approach challenges the role of the designer, who designs the ’seed’ which spawns these designs automatically within parameters such as hair colour, hair length, head shape, eye shape and name.

Matt worked with the programmer Karsten Schmidt (Toxi.co.uk) to design an automated, generative design process to create 20,000 unique designs. Each piece you see is one of a kind. This customised application is based on the open-source Processing (processing.org) software, as featured in Access Spaces’ Processing Workshop, led by David Muth 17/18 May 2007.

A special preview of Universal Everything’s HD DVD sound sculpture project, Advanced Beauty, takes place 19 May 2007, 6-7pm at the Showroom Cinema, introduced by Matt Pyke.

www.lovebytes.org.uk

Author: likebytes

Keywords: Lovebytes 2007

Added: April 23, 2007

Daniel

Wiiiiiiidescreen

Some stills from the multi-screen particles project:

stitched30

stitched60

stitched450

stitched510

stitched840

stitched870

stitched900

stitched930

Andreas

Processing in Eclipse - Libraries und Data

So im zweiten Teil der Serie Processing in Eclipse geht’s darum wie ich Libraries und Daten so wie in Processing in meinen Sketch bekomme. Ich werde das ganze am Beispiel der Candy Lib und einer SVG Datei erklären.

Zuerst erstellen wir mal ein neues Projekt wie in Teil 1 beschrieben. Dann laden wir die Candy Library und die Xml Library in unser Projekt. Das funktioniert im Prinzip wie bei dem core.jar Package von processing. Also rechte Maustaste auf den Projekt Ordner und Build Path -> Add External Archives auswählen. Abschließend noch import processing.candy.* und import processing.xml.*; zu den import Statements hinzufügen.

import processing.core.*;
import processing.candy.*;
import processing.xml.*;
public class Test extends PApplet {

}

Als nächstes legen wir den Ordner an aus dem die SVG Datei in unseren Sketch geladen wird. Dazu mit der Maus auf unserer Package (das mit dem Paket Icon) klicken und New -> Folder auswählen. Der Folder muss den Namen data bekommen. Unsere SVG Datei können wir jetzt einfach per drag’n drop in den Ordner packen.

Von hier an läuft dann wieder alles wie in Processing.

import processing.core.*;
import processing.candy.*;
import processing.xml.*;
public class Test extends PApplet {

    SVG m;

    public void setup(){
      size(400,400);
      // The file “moo.svg” must be in the data folder
      // of the current sketch to load successfully
      m = new SVG(this, “moo.svg”);
    }

    public void draw(){
      m.draw();
      m.draw(200, 200);
    }
}

User Libraries

Wenn die Anzahl der Projekte wächst und man immer wieder die selben Libraries einbindet, macht es Sinn sich für bestimmte Anwendungen User Libraries (UL) einzurichten. In eine UL kann ich einzelne oder mehrere Libraries packen und diese dann einen Projekt hinzufügen. Nehmen wir an ich habe viele Projekte in denen ich OpenGL und Surfaces einsetzte. Jedesmal muss ich meinem Projekt die Packages core.jar, opengl.jar, jogl.jar und surface.jar hinzufügen. Ich kann aber auch unter Projekt -> Properties -> Java Build Path -> Add Library eine neue UL anlegen. Dazu User Library auswählen und Next > klicken. Dann auf User Library -> New und dem ganzen einen Namen geben. Danach kann ich mit Add JARs verschiedene Libraries hinzufügen. Wenn ich das ganze dann abschließe wird die neue UL meinem aktuellen Projekt hinzufügen. Eine einmal erstellte UL kann ich aber auch jedem anderem Projekt anhängen. Ein weiterer Vorteil ist, dass wenn einmal eine neue Version einer Library erscheint, der Pfad für das neue jar File nur noch einmal in der UL angepasst werden muss und dann für alle Projekte übernommen wird.

Andreas

Processing in Eclipse - Libraries und Data

So im zweiten Teil der Serie Processing in Eclipse geht’s darum wie ich Libraries und Daten so wie in Processing in meinen Sketch bekomme. Ich werde das ganze am Beispiel der Candy Lib und einer SVG Datei erklären.

Zuerst erstellen wir mal ein neues Projekt wie in Teil 1 beschrieben. Dann laden wir die Candy Library und die Xml Library in unser Projekt. Das funktioniert im Prinzip wie bei dem core.jar Package von processing. Also rechte Maustaste auf den Projekt Ordner und Build Path -> Add External Archives auswählen. Abschließend noch import processing.candy.* und import processing.xml.*; zu den import Statements hinzufügen.

import processing.core.*;
import processing.candy.*;
import processing.xml.*;
public class Test extends PApplet {

}

Als nächstes legen wir den Ordner an aus dem die SVG Datei in unseren Sketch geladen wird. Dazu mit der Maus auf unserer Package (das mit dem Paket Icon) klicken und New -> Folder auswählen. Der Folder muss den Namen data bekommen. Unsere SVG Datei können wir jetzt einfach per drag’n drop in den Ordner packen.

Von hier an läuft dann wieder alles wie in Processing.

import processing.core.*;
import processing.candy.*;
import processing.xml.*;
public class Test extends PApplet {

    SVG m;

    public void setup(){
      size(400,400);
      // The file "moo.svg" must be in the data folder
      // of the current sketch to load successfully
      m = new SVG(this, “moo.svg”);
    }

    public void draw(){
      m.draw();
      m.draw(200, 200);
    }
}

User Libraries

Wenn die Anzahl der Projekte wächst und man immer wieder die selben Libraries einbindet, macht es Sinn sich für bestimmte Anwendungen User Libraries (UL) einzurichten. In eine UL kann ich einzelne oder mehrere Libraries packen und diese dann einen Projekt hinzufügen. Nehmen wir an ich habe viele Projekte in denen ich OpenGL und Surfaces einsetzte. Jedesmal muss ich meinem Projekt die Packages core.jar, opengl.jar, jogl.jar und surface.jar hinzufügen. Ich kann aber auch unter Projekt -> Properties -> Java Build Path -> Add Library eine neue UL anlegen. Dazu User Library auswählen und Next > klicken. Dann auf User Library -> New und dem ganzen einen Namen geben. Danach kann ich mit Add JARs verschiedene Libraries hinzufügen. Wenn ich das ganze dann abschließe wird die neue UL meinem aktuellen Projekt hinzufügen. Eine einmal erstellte UL kann ich aber auch jedem anderem Projekt anhängen. Ein weiterer Vorteil ist, dass wenn einmal eine neue Version einer Library erscheint, der Pfad für das neue jar File nur noch einmal in der UL angepasst werden muss und dann für alle Projekte übernommen wird.

flight404

Magnetic structure w/audio, pt 2.

3000 particles and 1 invisible gravity orb.

Quick little side test. Managed to kill the main delay bug for the audio responsiveness. It still seems to be a little behind the audio, but much better than before.

Additionally, the particles respond to the audio in order from high x position to low x position with a little sine wave adjustment thrown in to make the three petaled flower pattern.

Check out the 72 Meg Quicktime version or view the Vimeo one below. The audio is 90 seconds pulled from a Karri O. mix.

Magnetic Sphere (audio by Karri O.) on Vimeo