visuals

Pure Data example: The Ethical eMarket logo animation

The Ethical eMarket logo was animated by Webel using the GEM visual synthesis extensions for the PureData synthesis environment:

DranceWare.pd

DranceWare.pd

The 1st-level virtual instrument user interface for the system. It is just enough to manage a few fundamental Drancing operations modes, to manage conditioning and control of 2 Drancel virtual 3D synthesis atoms (fed here by 2 Wiimotes), as well as offering some global controls, some output filters, some monitors, and a simple recording system. (It also fits nicely into a 1280x960 screencast when combined with Drancel monitor visuals side-by-side.)

It looks of course almost exactly like the 0th-level "wrapper" for the skin, except it shows the (rather tedious) connections, and some initialisations, as well as some OSC dump feeds from specific ports "pragmatically hardwired" into A0.pd (5600) and A1.pd (5602) (yes, this is indeed a rapid prototype).

SysML and UML abstractions (used as typed parts with ports) are so much easier to model, diagram, and connect up than this. I am working on forward-engineering from SysML tools to PureData and also $jsyn_$, i.e. SysML tools becomes a real-time synthesis patch editors !

MonoToStereoPanned.pd

MonoToStereoPanned.pd

Here the (X,Y,Z) signals are stereo panned, so that an entire Drancel is panned. This works well if an accelerometer is worn on the left/right hands/feet of a performer.

Drancel.pd

Drancel.pd

A Drancel is the virtual synthesis 3D "atom" of the Drancing accelerometer music system (where "music" means here both real-time sound and light synthesis).

A Drancel is designed to work with ANY triaxial accelerometer (of which the WiiTM Remote is a convenient example, thanks to its leverage of Bluetooth™ wireless technology).

It is the calibrated, conditioned, "homed", virtual Drancel that is considered to synthesise, not the triaxial accelerometer, which is merely a source of (X,Y,Z) acceleration signals that are mapped to synthesis channel triads and (R,G,B) (or other) light components.

A Drancel RGB (drancing light element) is to Drancing synthesis what a "pixel" (picture element) is to a picture.

Imagine hundreds of "Drancers" (Drancing performers), each with 5 Drancel RGB units, each synthesising sound and light, and you get the picture ! Can you hear it ? Can you see it ? That's the Drancing vision !

Drancels can act as independent synthesis units or they can be combined (multiplexed) to create arbitrarily complex syntheses. In this PureData prototype there are, however, only 2 Drancels, for 2 hand-held $Wiimotes$ as wireless accelerometer sources. (The original Drancing accelerometer suit (since 1997) had 5 triaxial accelerometers in a "body star" pattern.)

Currently the PureData synthesis prototype offers the following elementary synthesis units:

  • AM: modulation of the amplitudes of a triad of "fixed-frequency" oscillators,
    which frequencies can be set by the user using the sliders.
  • VFO: variable frequency oscillators: the user can set the scale of frequency driving, a frequency offset, the overall gain of the oscillations, and whether or not the frequencies are discretised to lock-on to MIDI note frequencies (as opposed to arbitrarily fine continjous frequency variation).
  • Drums: simple sample drums (I currently use the free AudioPervert CR-78 drum samples) which will probably be replaced soon with completely synthetic PureData drums.

PlaySample.pd

PlaySample.pd

Not pretty, and not as flexible as a generative programming approach. It's just enough to separate the set of chosen samples (visit DrumSamples.pd) from the playing via triggers and/or radio buttons. It's a rapid prototype after all !

Drancing.pd

Drancing.pd

The "executable" 0th level Drancing.pd is just a wrapper for the PureData version of the DranceWare GUI for Drancing. It does not show any connections, so it acts more like a skin than the wrapped 1st level <a href="https://www.webel.com.au/image/drancewarepd">DranceWare.pd</a>. Note the use of deep nesting of UI canvases from nested abstractions.

Syndicate content
randomness