All Projects → macumbista → Vectorsynthesis

macumbista / Vectorsynthesis

Licence: mit
This library allows the creation and manipulation of vector shapes using audio signals sent directly to oscilloscopes, modified Vectrex consoles, ILDA laser displays, and oscilloscope emulation software using the Pure Data programming environment. Please scroll down for more info in the README below.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Vectorsynthesis

Fidocadj
FidoCadJ is a free user-friendly vector graphic editor for MacOSX, Linux, Windows and Android
Stars: ✭ 76 (-61.81%)
Mutual labels:  vector-graphics
Svg.skia
An SVG rendering library.
Stars: ✭ 122 (-38.69%)
Mutual labels:  vector-graphics
Macterm
Terminal emulator for macOS with 24-bit color, bitmap and vector graphics.
Stars: ✭ 162 (-18.59%)
Mutual labels:  vector-graphics
Scalable Vector Graphics Plugin For Paint.net
Paint.NET filetype plugin for loading SVG (Scalable Vector Graphics) and its compressed variant SVGZ files.
Stars: ✭ 109 (-45.23%)
Mutual labels:  vector-graphics
Pixelfarm
From Vectors to (sub) Pixels, C# 2D Rendering Library
Stars: ✭ 120 (-39.7%)
Mutual labels:  vector-graphics
Dvisvgm
A fast DVI, EPS, and PDF to SVG converter
Stars: ✭ 134 (-32.66%)
Mutual labels:  vector-graphics
Cacao
Pure Swift Cross-platform UIKit (Cocoa Touch) implementation (Supports Linux)
Stars: ✭ 1,040 (+422.61%)
Mutual labels:  vector-graphics
Text Attention Heatmap Visualization
Plot the vector graph of attention based text visualisation
Stars: ✭ 181 (-9.05%)
Mutual labels:  vector-graphics
Rad Lines
Beautiful Vector Generator Tool
Stars: ✭ 121 (-39.2%)
Mutual labels:  vector-graphics
Method Draw
Method Draw, the SVG Editor for Method of Action
Stars: ✭ 2,109 (+959.8%)
Mutual labels:  vector-graphics
Tove2d
Animated vector graphics for LÖVE.
Stars: ✭ 113 (-43.22%)
Mutual labels:  vector-graphics
Svg
Composer and parser for SVG
Stars: ✭ 119 (-40.2%)
Mutual labels:  vector-graphics
Svglib
Read SVG files and convert them to other formats.
Stars: ✭ 139 (-30.15%)
Mutual labels:  vector-graphics
Pathrenderinglab
Repository for research on complete SVG rendering
Stars: ✭ 83 (-58.29%)
Mutual labels:  vector-graphics
Gerbolyze
Render high-resolution bitmap images to PCB gerber files
Stars: ✭ 169 (-15.08%)
Mutual labels:  vector-graphics
Synfig
This is the Official source code repository of the Synfig project
Stars: ✭ 1,056 (+430.65%)
Mutual labels:  vector-graphics
Ragg
Graphic Devices Based on AGG
Stars: ✭ 127 (-36.18%)
Mutual labels:  vector-graphics
Compose.jl
Declarative vector graphics
Stars: ✭ 196 (-1.51%)
Mutual labels:  vector-graphics
Psvg
Programmable Scalable Vector Graphics -- drawings that draw themselves
Stars: ✭ 177 (-11.06%)
Mutual labels:  vector-graphics
Tangram
WebGL map rendering engine for creative cartography
Stars: ✭ 1,964 (+886.93%)
Mutual labels:  vector-graphics

::::::::::VECTOR SYNTHESIS LIBRARY ::::::::::

Click through image for ""Vector Synthesis: Divisions of a Circle" by Macumbista on Vimeo

The Vector Synthesis library allows the creation and manipulation of 2D and 3D vector shapes, Lissajous figures, and scan processed image and video inputs using audio signals sent directly to oscilloscopes, Vectrex game consoles, ILDA laser displays, or oscilloscope emulation softwares using the Pure Data programming environment.

Audio waveforms control the vertical and horizontal movements as well as the brightness of a single beam of light, tracing shapes, points and curves with a direct relationship between sound and image.

The technique is based on the well-known principle of Lissajous figures, which are a mathematical representation of complex harmonic motion. Originally displayed by reflecting light between mirrors attached to a pair of vibrating tuning forks, we are most used to seeing them on the screen of an oscilloscope, where they can be produced using pairs of electronic oscillators tuned to specific ratios.

There is a wealth of such experiments from the 1950s onward by major figure such as Mary Ellen Bute, John Whitney, Larry Cuba, Manfred Mohr, Nam June Paik, Ben Laposky, Bill Etra, Gary Hill, and Steina & Woody Vasulka, which were all highly inspiration to the development of this library.

Tutorials, announcements, and testing here:

https://www.facebook.com/groups/vectorsynthesis/

Demo videos here:

https://vimeo.com/macumbista

If this library has been useful, please consider making a donation towards the development:

paypal

Or you can support my research by ordering a copy of the Vector Synthesis book:

http://www.lulu.com/shop/derek-holzer/vector-synthesis-a-media-archaeological-investigation-into-sound-modulated-light/paperback/product-24379956.html

You can also take a workshop from me. My workshops are annouced on the Facebook group above or on my website:

http://macumbista.net

REQUIREMENTS

——SOFTWARE

Pure Data "Vanilla", version 0.49 or newer: 

https://puredata.info/downloads/pure-data

Gem 0.93.3 (OPTIONAL, used in scan processor only). 
Gem is installed via deken, Pd’s externals manager (Menu bar: Help-->Find Externals)

NOTE: Pd-Extended is too old for some features of this library. Do not rely on it.
Purr-Data is also not explicitely supported.

——AUDIO INTERFACE

DC-coupled audio interface: 

https://www.sweetwater.com/sweetcare/articles/which-audio-interfaces-are-dc-coupled/#dc-coupled-interfaces

Minimum 3 output channels (horizontal, vertical, brightness)
5 output channels recommended if seperate stereo audio channels are desired
6 balanced audio outputs recommended for ILDA laser control 
8 balanced audio outputs recommended for ILDA plus seperate stereo audio
High sampling rate also recommended (192 kHz if possible)
Tested with MOTU UltraLite mk3 USB2 audio interface (Ten DC coupled, balanced outputs)

——DISPLAYS

Oscilloscope or vector monitor (not vectorscope!) with X/Y/Z inputs (all DC-coupled):

https://web.archive.org/web/20190825120849/http://vectorvgapro.com/XY_Displays.html

—or—

Vectrex game console modified for X/Y/Z input (all DC-coupled) according to these instructions:

http://users.sussex.ac.uk/~ad207/adweb/assets/vectrexminijackinputmod2014.pdf

I also recommend modifying the Vectrex to disable the so-called "spot killer", which is 
a safety feature designed to prevent burning a spot in the phosphor of the Cathode Ray 
Tube of your Vectrex. Unfortunately, this spot killer is quite conservative and tends to 
shut down your image if the frequency and/or amplitude of the XY signals are too small. 
Disabling the spot killer is simply a matter of bridging two pins of a transistor on the 
CRT driver board, as shown in the following image:

https://github.com/macumbista/vectorsynthesis/blob/master/spot%20killer%20mod.JPG

Instead of the solder bridge shown, I recommend using a switch rated for at least 110V. 
In such case, *enable* the spot killer (switch open) when powering up and powering down 
the Vectrex as well as for normal game play, and *disable* (switch closed) the spot killer 
when using the Vectrex for audio-driven graphics. 

NOTE: no matter how careful you are, there is still a good chance you will make a small 
mark in the phosphor. You have been warned.

—or—

ILDA laser display with the following adapter from your minimum 6 channel, DC coupled 
audio interface with balanced outputs (recommended: MOTU UltraLite) and the following 
DIY adapter box: 

https://github.com/ffd8/dac_ilda

—or—

Oscilloscope software with X/Y/Z inputs such as Hansi Raber's "Oscilloscope!" app

https://github.com/kritzikratzi/Oscilloscope/releases/tag/1.0.9

(Hold SHIFT key when selecting input for third channel brightness control)
plus audio loopback application such as SoundFlower, BlackHole or Virtual Audio Cable. 
Please see SOFTWARE-OSCILLOSCOPE-TUTORIAL-MAC.pdf for MacOS and 
SOFTWARE-OSCILLOSCOPE-TUTORIAL-WIN.pdf for Windows for further details on setup.

NOTE: the Z axis should control the brightness of the beam, not 3D depth

GENERAL NOTES

Start with the first files in the library, they are the tutorials:

000.A.VECTOR_GENERATORS.pd
000.A1.VECTOR_GENERATORS-ILDA.pd
000.B.2D_VECTORS.pd
000.B1.2D_VECTORS-ILDA.pd
000.C.3D_VECTORS.pd
000.C1.3D_VECTORS-ILDA.pd
000.D.VECTOR_MODIFIERS.pd
000.D1.VECTOR_MODIFIERS-ILDA.pd
000.G.VECTOR_MULTIPLEXING.pd
000.G1.VECTOR_MULTIPLEXING-ILDA.pd
000.H.ILDA_OUTPUT.pd
000.I.PRESET_SYSTEM.pd
000.I1.PRESET_SYSTEM-ILDA.pd

All the ILDA patches require 000.H.ILDA_OUTPUT.pd to be open and an ILDA laser to be connected. 
	
The files with "gui" in their name are designed to be patched together much like a modular synth.
The files with "help" in their name are good examples to start with to learn more code. 
The files without "gui" or "help" in their name are the abstractions themselves, without any controls.
The files with a ".txt" extension are backup data for the various 3D shapes.


For control of an oscilloscope, the following channels are used (where Audio Left and Right can be reassigned):

Audio Interface Output 1 : Horizontal
Audio Interface Output 2 : Vertical
Audio Interface Output 3 : Brightness
Audio Interface Output 4 : Audio Left (Horizontal * Brightness)
Audio Interface Output 5 : Audio Right (Vertical * Brightness)

For ILDA laser control, the channel assignement looks like this (where Audio Left and Right can be reassigned):

Audio Interface Output 1 : Horizontal
Audio Interface Output 2 : Vertical
Audio Interface Output 3 : Brightness (normally not used, kept for compatibility)
Audio Interface Output 4 : Red
Audio Interface Output 5 : Green
Audio Interface Output 6 : Blue
Audio Interface Output 7 : Audio Left (Horizontal * Brightness)
Audio Interface Output 8 : Audio Right (Vertical * Brightness)

Higher sampling rate = higher resolution/fewer errors in the vector shapes
Tested at 44.1kHz, 48kHz, 96kHz, 192kHz

USING NON-RECOMMENDED HARDWARE

A stereo audio output is also usable, as well as a more common X/Y oscilloscope display,
however there will be no brightness control.

Normal laptop headphone audio outputs generate a lot of noise which is visible in the image.
One interesting note is that all Apple iPhone and iPad headphone outputs are DC coupled.

An AC-coupled soundcard or display will show noticeable distortions in the shape, 
and the vector shapes will always appear in the center of the screen.

DC-coupling is also necessary for brightness control.

Brightness control is essential for multiplexing, scan processing of videos and photos, 
and a number of other interesting visual effects, however you can still use this 
library for many things without it.

DC COUPLING and SAMPLING RATE both affect the oscilloscope image. 

Without DC COUPLING, your image will always try to stay centered on the screen.
If the shape you are drawing is irregularly sized, this can cause a lot of unwanted motion.

And the lower your SAMPLING RATE is (44.1 or 48 kHz instead of 96 or 192 kHz), the more
difficult it will be to draw shapes with sharp corners. You will see rounded corners and 
often overshoots due to aliasing errors at these lower sampling rates.

ACKNOWLEDGEMENTS

I would like to thank the following people and institutions for their support and encouragement of the project:

Antti Ikonen/Aalto University Media Lab (Helsinki FI)
Marianne Decoster-Taivalkoski/Centre for Music & Technology of the Sibelius Academy (Helsinki FI)
Jason and Debora Bernagozzi/Signal Culture (Owego NY USA)
Borut Savski/Cirkulacija2 (Ljubljana SI)
Lars Larsen/LZX Industries (Portland OR USA)
Gisle Frøysland/Piksel (Bergen NO)
Alfredo Ciannameo and Lieke Ploeger/Spektrum (Berlin DE)
Svetlana Maras/Radio Belgrade Electronic Studio (Belgrade SRB)
Tapio “Tassu” Takala/Aalto University Department of Computer Science (Helsinki FI)
Joseph Hyde/Seeing Sound/Bath Spa University (Bath UK)
Jeff Chippewa & Nicolas Bernier/Canadian Electroacoustic Community (Montreal CA)
Carsten Stabenow & Gesine Pagels
Andy Farnell
Ivan Marušić Klif
Dave Jones
Nathan Thompson
Roland Lioni/Akira’s Rebirth
Hansi Raber
Jerobeam Fenderson
Lee Montgomery
Andrew Duff
Marco Donnarumma
Robert Henke
Chris King
and finally the Video Circuits online community, without whom I never would have started down 
this crazy road


Derek Holzer
UPDATED Stockholm March 2021
http://macumbista.net
macumbista AT THE DOMAIN gmail DOT com

vectorsynthesis

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].