Book Image

Mapping and Visualization with SuperCollider

By : Marinos Koutsomichalis
Book Image

Mapping and Visualization with SuperCollider

By: Marinos Koutsomichalis

Overview of this book

SuperCollider is an environment and programming language used by musicians, scientists, and artists who work with audio-files SuperCollider has built-in graphical features which are used in conjunction with the sound synthesis server to create audio-visual mapping and sound visualization. If you wish to create data visualizations by acquiring data from audio and visual sources, then this book is for you.Digital sound artists need to analyze, manipulate, map, and visualize data when working on a scientific or an artistic project. As an artist, this book, by means of its numerous code examples will provide you with the necessary knowledge of SuperCollider's practical applications, so that you can extract meaningful information from audio-files and master its visualization techniques. This book will help you to prototype and implement sophisticated visualizers, sonifiers, and complex mappings of your data.This book takes a closer look at SuperCollider features such as plotting and metering functionality to dispel the mysterious aura surrounding the more advanced mappings and animation strategies. This book also takes you through a number of examples that help you to create intelligent mapping and visualization systems. Throughout the course of the book, you will synthesize and optimize waveforms and spectra for scoping as well as extract information from an audio signal. The later sections of the book focus on advanced topics such as emulating physical forces, designing kinematic structures, and using neural networks to enable you to develop a visualization that has a natural motion with structures that respect anatomy and which come with an intelligent encoding mechanism. This book will teach you everything you need to work with intelligent audio-visual systems to extract and visualize audio-visual data.
Table of Contents (16 chapters)

Index

A

  • abstractions / Abstractions and models
  • accelerated motion / Motion species
  • addForce method / Adding dynamics to simulate physical forces
  • Aliasing distortion
    • about / Waveform species
  • amplitude / DC, amplitude, frequency, and phase
  • anchor points
    • about / Learning the vector graphics fundamentals
  • animation
    • trailing effects, adding / Trailing effects
    • interaction and event-driven programming / Interaction and event-driven programming
    • particle systems / Particle systems
  • ANN
    • about / Neural networks
  • aperiodic waveform generators
    • about / Custom aperiodic waveform generators
  • Application Programming Interfaces (APIs) / Data acquisition
  • Audio
    • about / Waveform synthesis fundamentals, Time domain representation
  • Audio visualizers
    • about / Audio visualizers
    • waveforms, trailing / Trailing waveforms
    • spectrogram / Spectrogram
  • Automata
    • about / Automata
    • cellular automaton / Cellular automata
    • Game of Life / Game of Life
  • axial gradients / Introducing colors, transparency, and gradients

B

  • baud rate / Using Serial Port
  • Bezier curves / Complex shapes and graphics state
  • binary operations
    • simple mathematical operations / Binary operations
    • quantization operations / Binary operations
    • mathematical operations / Binary operations
    • clipping operations / Binary operations
    • comparison operations / Binary operations
  • biological neuron
    • about / Neural networks
  • Bitwise operations
    • about / Bitwise operations
  • Blackboard
    • about / Blackboard
    • methodology / Methodology
    • multiple files, handling / Handling multiple files and environments
  • Buffer / Fast Fourier Transform in SuperCollider

C

  • Cartesian coordinate system / Fast Fourier Transform in SuperCollider
  • cellular automaton
    • about / Cellular automata
  • chaotic motion / Motion species
  • clearOnRefresh variable / Using UserView
  • client / Basic mappings
  • clipping operations / Unary operations, Binary operations
  • Collection base class / Preparing and preprocessing data on the client side
  • colors
    • about / Introducing colors, transparency, and gradients
  • comparison operations / Binary operations
  • complex visualizers
    • about / A complex scope
  • CompositeView / Optimizing spectra for scoping
  • Controller
    • about / Model-View-Controller, The Controller
    • Game of Life / Game of Life
    • finalizing / Finalizing the Controller
  • ControlSpecs class / Basic encodings and interpolation schemes
  • CSV / Dealing with local files
  • curl
    • URL / Accessing data remotely
  • currentEnvironment object / Handling multiple files and environments
  • curverange method / Basic encodings and interpolation schemes
  • custom aperiodic waveform generators
    • about / Custom aperiodic waveform generators

D

  • *draw method / Complex shapes and graphics state
  • data
    • analyzing / Analyzing data
    • statistical analyses and metadata / Statistical analyses and metadata
    • probability / Probabilities and histograms
    • histograms / Probabilities and histograms
    • textual datasets / Dealing with textual datasets
  • data acquisition
    • about / Data acquisition
    • local files, dealing with / Dealing with local files
    • data, accessing remotely / Accessing data remotely
    • Open Sound Control (OSC), using / Using OSC
    • Musical Instrument Digital Interface (MIDI), using / Using MIDI
    • Serial Port, using / Using Serial Port
  • DC
    • about / DC, amplitude, frequency, and phase
  • Document.dir / Handling multiple files and environments
  • domainSpecs instance / Probabilities and histograms
  • drawFunc / Animating complex shapes and sprites
  • drawFunc variable / Interaction and event-driven programming
  • dynamics
    • adding, to simulate physical forces / Adding dynamics to simulate physical forces

E

  • encapsulation / Clients and interfaces
  • envelopes
    • using, as wavetables / Using envelopes as wavetables
  • Event-driven Programming (EDP) / Interaction and event-driven programming
  • expexp / Basic encodings and interpolation schemes
  • explin / Basic encodings and interpolation schemes
  • external IP address / Using OSC

F

  • Factories / Factories
  • FFT
    • in SuperCollider / Fast Fourier Transform in SuperCollider
  • FFTSpread UGen / Timbre analysis and feature detection
  • FileReader.read / Dealing with local files
  • File Transfer Protocol
    • about / Data acquisition
  • File Transfer Protocol (FTP) / Data acquisition
  • fillstroke / Drawing primitive shapes and loading images
  • Firmata / Using Serial Port
  • Fractalizer
    • about / Fractalizer
  • fractals
    • about / Fractals
    • animating / Animating fractals
  • frameRate variable / Using UserView
  • FreqScopeView / Optimizing spectra for scoping
  • FreqScopeView method / Scoping spectra
  • frequency domain
    • about / Introducing the frequency domain
    • spectra / Spectra
  • Function / Preparing and preprocessing data on the client side

G

  • Game of Life
    • about / Game of Life
    • rules / Game of Life
  • gaussCurve / Basic encodings and interpolation schemes
  • geometrical transformations
    • about / Geometrical transformations, matrices, and trailing effects
  • getLine method / Dealing with local files
  • getter / Clients and interfaces
  • Goertzel UGen / Timbre analysis and feature detection
  • gradients
    • about / Introducing colors, transparency, and gradients
    • axial gradients / Introducing colors, transparency, and gradients
    • radial gradients / Introducing colors, transparency, and gradients
  • grains
    • about / Particles and grains

H

  • HSVA (Hue, Saturation, Value, and Alpha)
    • about / Introducing colors, transparency, and gradients

I

  • images
    • loading / Drawing primitive shapes and loading images
  • index position / Using plotter
  • information hiding / Factories
  • Integrating Development Environment (IDE) / Using Serial Port
  • internal IP address / Using OSC
  • Internet Protocol (IP) address
    • about / Using OSC
  • Internet Service Provider (ISP) / Using OSC
  • interpolation / Basic encodings and interpolation schemes
  • iqr
    • about / Statistical analyses and metadata

J

  • *joinStyle method / Complex shapes and graphics state

K

  • Kinematic patterns / Kinematic patterns
  • Kinematics
    • about / Kinematics

L

  • *lineDash method / Complex shapes and graphics state
  • LevelIndicator class / Monitoring signals, Monitoring numerical data
  • LevelIndicator object / Monitoring numerical data
  • levels
    • metering / Metering levels
    • signals, monitoring / Monitoring signals
    • numerical data, monitoring / Monitoring numerical data
  • lincurve / Basic encodings and interpolation schemes
  • linexp / Basic encodings and interpolation schemes
  • logarithmic and exponential operations / Unary operations

M

  • *moveTo method / Complex shapes and graphics state
  • Machine Learning
    • about / Neural networks
  • machine listening
    • about / Machine listening
    • amplitude, tracking / Tracking amplitude and loudness
    • frequency, tracking / Tracking frequency
    • Tracking frequency / Tracking frequency
    • Timbre / Timbre analysis and feature detection
    • features, detecting / Timbre analysis and feature detection
    • onset, detecting / Onset detection and rhythmical analysis
  • mappings
    • about / Basic mappings
    • data, preparing on client side / Preparing and preprocessing data on the client side
    • data, preprocessing on client side / Preparing and preprocessing data on the client side
    • data, preprocessing on server side / Preparing and preprocessing data on theserver side
    • data, preparing on server side / Preparing and preprocessing data on theserver side
    • basic encodings / Basic encodings and interpolation schemes
    • interpolation scheme / Basic encodings and interpolation schemes
    • data, sharing / Sharing and distributing data
    • data, distributing / Sharing and distributing data
    • encodings, complex / Complex and intelligent encodings
    • encodings, intelligent / Complex and intelligent encodings
    • auxiliary functions, code / Complex and intelligent encodings
  • Markov chains
    • about / Custom aperiodic waveform generators
  • mathematical operations / Binary operations
  • matrices
    • about / Geometrical transformations, matrices, and trailing effects
  • metadata
    • about / Statistical analyses and metadata
  • MIDI
    • about / Using MIDI
  • miscellaneous mathematical operations / Unary operations
  • Model
    • about / Model-View-Controller, The Model
    • aggregates / Aggregates and wrappers
    • software agents / Software agents
    • software actors / Introducing software actors and finalizing the model
    • finalizing / Introducing software actors and finalizing the model
  • Model-View-Controller
    • about / Model-View-Controller
  • models / Abstractions and models
  • modifiers / Clients and interfaces
  • motion
    • about / Fundamentals of motion
    • species / Motion species
    • uniform motion / Motion species
    • accelerated motion / Motion species
    • chaotic motion / Motion species
    • UserView, using / Using UserView
    • complex shapes, animating / Animating complex shapes and sprites
    • sprites, animating / Animating complex shapes and sprites
  • Music Information Retrieval (MIR) / Machine listening
  • Music visualizers
    • about / Music visualizers
    • windmills, rotating / Rotating windmills
    • Kinematic patterns / Kinematic patterns

N

  • namespace / Handling multiple files and environments
  • NeuralNet
    • about / Neural networks
  • Nonstandard visualizers
    • about / Nonstandard visualizers
  • numerical data
    • about / Visualizing and sonifying data
  • Nyquist frequency / Limitations of spectral scoping

O

  • object-oriented design / Factories
  • objects / Objects and prototypes
  • OSC
    • about / Using OSC
  • OSCFunc object / Using OSC

P

  • particle system
    • about / Particle systems, Particles and grains
  • paths
    • about / Learning the vector graphics fundamentals
  • peak amplitude
    • about / Tracking amplitude and loudness
  • phase
    • about / DC, amplitude, frequency, and phase
  • phase offset
    • about / DC, amplitude, frequency, and phase
  • Pitch / Tracking frequency
  • pixels
    • about / Learning the vector graphics fundamentals
  • plot
    • using / Using plot and plot graph
  • plot graph
    • using / Using plot and plot graph
  • plotGraph method / Using plot and plot graph
  • plot index / Using plotter
  • plotter
    • using / Using plotter
  • points variable
    • about / Fractalizer
  • Polar coordinate system / Fast Fourier Transform in SuperCollider
  • polarity operations / Unary operations
  • polymorphic / Using plot and plot graph
  • polymorphism / Using plot and plot graph
  • port / Using OSC
  • POSIX / Dealing with local files
  • primitive shapes
    • drawing / Drawing primitive shapes and loading images
  • probability
    • about / Probabilities and histograms
  • prototypes / Objects and prototypes
  • pvcalc method
    • about / Using the pvcalc method
  • PV_BinShift / Optimizing spectra for scoping
  • PV_BrickWall / Sculpting and freezing spectra
  • PV_Cutoff / Sculpting and freezing spectra
  • PV_Freeze / Optimizing spectra for scoping
  • PV_MagAbove / Optimizing spectra for scoping
  • PV_MagFreeze / Sculpting and freezing spectra
  • PV_MagSmear / Sculpting and freezing spectra
  • PV_RectComb / Sculpting and freezing spectra

Q

  • Qitch / Tracking frequency
  • quantization operations / Binary operations

R

  • *rotate / Geometrical transformations, matrices, and trailing effects
  • radial gradients / Introducing colors, transparency, and gradients
  • random walk / Kinematic patterns
  • raster graphics / Learning the vector graphics fundamentals
  • readAllStringHTML method / Accessing data remotely
  • rester graphics
    • about / Learning the vector graphics fundamentals
  • RGBA (Red, Green, Blue, and Alpha)
    • about / Introducing colors, transparency, and gradients
  • Root Mean Square (RMS) amplitude
    • about / Tracking amplitude and loudness

S

  • *scale / Geometrical transformations, matrices, and trailing effects
  • *skew / Geometrical transformations, matrices, and trailing effects
  • SCLang
    • about / Basic mappings
  • SCMIR library
    • URL / Neural networks
  • scopeResponse method / Scoping spectra, Limitations of spectral scoping
  • ScopeView class / Trailing waveforms
  • scrollTo method / Using SoundFileView
  • Semaphore
    • about / Threads, semaphores, and guards
  • SerialPort class / Using Serial Port
  • Server / Basic mappings
  • setDrawFunc function / Strategies and policies
  • setters / Clients and interfaces
  • shapes
    • complex shapes, animating / Animating complex shapes and sprites
  • signals
    • scoping / Scoping signals
    • waveforms, scoping / Scoping waveforms
    • spectra, scoping / Scoping spectra
    • about / Waveform synthesis fundamentals
  • simple mathematical operations / Binary operations
  • Sones / Tracking amplitude and loudness
  • SortedArray / Complex and intelligent encodings
  • sound
    • about / Waveform synthesis fundamentals
  • SoundFileView
    • using / Using SoundFileView
  • SpecPcile UGen / Timbre analysis and feature detection
  • spectra
    • scoping / Scoping spectra, Aggregating and enriching spectra
    • about / Spectra
    • synthesizing / Creating and manipulating spectra
    • enriching / Aggregating and enriching spectra
    • aggregating / Aggregating and enriching spectra
    • sculpting / Sculpting and freezing spectra
    • freezing / Sculpting and freezing spectra
    • shifting / Shifting, stretching, and scrambling spectra
    • stretching / Shifting, stretching, and scrambling spectra
    • scrambling / Shifting, stretching, and scrambling spectra
    • visualizing / Visualizing spectra
    • scoping, limitations / Limitations of spectral scoping
    • optimizing, for scoping / Optimizing spectra for scoping
  • spectral centroid / Timbre analysis and feature detection
  • spectral crest / Timbre analysis and feature detection
  • spectral features / Timbre analysis and feature detection
  • spectral flatness / Timbre analysis and feature detection
  • spectral spread / Timbre analysis and feature detection
  • Spectrogram / Spectrogram
  • sprites
    • animating / Animating complex shapes and sprites
  • stack / Geometrical transformations, matrices, and trailing effects
  • static IP address / Using OSC
  • stdout / Accessing data remotely
  • SuperCollider
    • FFT / Fast Fourier Transform in SuperCollider
    • about / Learning the vector graphics fundamentals, Dealing with textual datasets
  • SynthDef function / Model-View-Controller
  • SystemClock class / Using SoundFileView
  • systemCmd / Accessing data remotely
  • System Exclusive (SysEx)
    • about / Using MIDI

T

  • *trace method / Using MIDI
  • *translate / Geometrical transformations, matrices, and trailing effects
  • Tartini / Tracking frequency
  • textual datasets
    • about / Dealing with textual datasets
  • thisFunction keyword / Fractals
  • threads
    • about / Threads, semaphores, and guards
  • time domain representation
    • about / Time domain representation
    • Waveform, species / Waveform species
    • DC (direct current) / DC, amplitude, frequency, and phase
    • amplitude / DC, amplitude, frequency, and phase
    • frequency / DC, amplitude, frequency, and phase
  • trailing effects
    • about / Geometrical transformations, matrices, and trailing effects
    • adding, to animation / Trailing effects
  • train method / Neural networks
  • Trigonometric operations / Unary operations

U

  • UDP
    • about / Using OSC
  • unary operations
    • polarity operations / Unary operations
    • logarithmic and exponential operations / Unary operations
    • Trigonometric operations / Unary operations
    • clipping operations / Unary operations
    • miscellaneous mathematical operations / Unary operations
  • uniform motion / Motion species
  • unixCmd / Accessing data remotely
  • unixCmdGetStdOut / Accessing data remotely
  • unixCmdGetStdOutLines / Accessing data remotely
  • unmap method / Basic encodings and interpolation schemes
  • updateColumns / Spectrogram
  • UserView
    • using / Using UserView

V

  • vector graphics
    • about / Learning the vector graphics fundamentals
    • shapes / Complex shapes and graphics state
    • state / Complex shapes and graphics state
    • colors / Introducing colors, transparency, and gradients
    • gradients / Introducing colors, transparency, and gradients
  • View
    • about / Model-View-Controller, The View
    • clients and interfaces / Clients and interfaces
    • implementation / Implementation
    • strategies and policies / Strategies and policies
  • VoiceDef / Model-View-Controller

W

  • *width method / Complex shapes and graphics state
  • wave / Waveform synthesis fundamentals
  • Waveform
    • synthesis fundamentals / Waveform synthesis fundamentals
    • periodic / Waveform species
    • aperiodic / Waveform species
    • generators / Custom waveform generators
    • transformations / Waveform transformations
  • Waveforms
    • scoping / Scoping waveforms
  • waveforms
    • trailing / Trailing waveforms
  • Waveshaping
    • about / Waveshaping
    • unary operations / Unary operations
    • binary operations / Binary operations
    • bitwise operations / Bitwise operations
  • Wavetable lookup synthesis
    • about / Wavetable lookup synthesis
  • wavetables
    • envelopes, using as / Using envelopes as wavetables
  • windmills
    • rotating / Rotating windmills
  • wrappers / Aggregates and wrappers

Z

  • ZeroCrossing / Tracking frequency