Book Image

OpenFrameworks Essentials

Book Image

OpenFrameworks Essentials

Overview of this book

Table of Contents (19 chapters)
openFrameworks Essentials
Credits
Foreword
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Index

A

  • additive blending
    • used, for mixing layers / Mixing layers using additive blending
    • about / Mixing layers using additive blending
  • address
    • about / Implementing the OSC messages receiver
  • alpha blending
    • about / Mixing layers using additive blending
  • analogRead() function / Programming an Arduino board
  • Android Development Tools (ADT) bundle / Installing software for Android development
  • Android device
    • accelerometer / Using the accelerometer on an Android device
    • gyroscope / Using the accelerometer on an Android device
  • Android NDK (Android Native Development Kit) / Running the project on an Android device
  • Android SDK (Android Software Development Kit) / Running the project on an Android device
  • Apollonian Fractures
    • URL / Using fragment shaders for image generation
  • Arduino
    • about / Physical computing with Arduino
  • Arduino board
    • programming / Programming an Arduino board
    • data, receiving / Receiving data from Arduino in the openFrameworks project
    • connection troubleshooting / Connection troubleshooting
    • devices, connecting / Connecting more devices
  • Arduino connection, video synthesizer project
    • Firmata protocol, used / Using the Firmata protocol for Arduino connection
  • Arduino IDE
    • URL / Programming an Arduino board
  • arguments
    • about / Implementing the OSC messages receiver
  • automation, camera
    • about / Camera automation
  • autosave feature
    • implementing / Implementing the autosave feature

C

  • camera
    • live video, grabbing / Grabbing a live video from a camera
    • creating / Creating a camera
    • controlling, with mouse / Controlling the camera with a mouse
    • mouse control, disabling / Disabling mouse control for the camera when the GUI is visible
    • automation / Camera automation
  • checkbox
    • implementing / Implementing a checkbox, a color selector, and a 2D slider
  • classes, 3D graphics
    • about / openFrameworks classes for surface representation
    • ofMesh / openFrameworks classes for surface representation
    • ofVboMesh / openFrameworks classes for surface representation
    • ofPlanePrimitive / openFrameworks classes for surface representation
    • ofSpherePrimitive / openFrameworks classes for surface representation
    • ofIcoSpherePrimitive / openFrameworks classes for surface representation
    • ofCylinderPrimitive / openFrameworks classes for surface representation
    • ofConePrimitive / openFrameworks classes for surface representation
  • code
    • debugging / Debugging
    • speeding up / Speeding up the code
  • color image
    • about / Raster images in openFrameworks
  • color image with alpha channel
    • about / Raster images in openFrameworks
  • color selector
    • implementing / Implementing a checkbox, a color selector, and a 2D slider
  • companion vertex shader
    • about / Creating the vertex shader
  • conversion function
    • about / Mathematical, timer, and conversion functions
  • coordinate system
    • centering / Centering the coordinate system
  • core addons / Creating a project
  • curves, video synthesizer project
    • drawing / Drawing curves and text

D

  • 2D graphics
    • and 3D graphics, mixing with GUI / Mixing 2D and 3D with the GUI
  • 2D slider
    • implementing / Implementing a checkbox, a color selector, and a 2D slider
    • controls' values, using / Using the controls' values
    • specifics / Using the controls' values
    • project, experimenting with / Experimenting with the project
  • 3D graphics
    • about / Introduction to 3D graphics with openFrameworks
    • classes / openFrameworks classes for surface representation
  • data
    • reading, from text file / Reading data from a text file
  • decibels
    • about / Getting the level of a sound signal
  • deforming
    • about / Deforming a sphere
    • by formulas / Deforming by formulas
  • desktop version, video synthesizer
    • about / The desktop version
    • openFrameworks project / The openFrameworks project and source files
    • source files / The openFrameworks project and source files
    • data files / Data files
    • control keys / Control keys
    • GUI controls / The GUI controls
  • Documents directory
    • URL / Implementing video synthesizer for iOS
  • Do It Yourself (DIY)
    • about / Physical computing with Arduino
  • drawing
    • about / A simple drawing
    • color, setting / Setting drawing color
    • primitives / Drawing primitives
  • drawing functions
    • about / 2D drawing

E

  • eeg.txt text file
    • parsing / Reading data from a text file
  • EEG data visualization
    • diagrammatic representation / Reading data from a text file
  • electroencephalography (EEG) / Reading data from a text file
  • exponential smoothing
    • about / Getting the level of a sound signal
    • URL / Getting the level of a sound signal
  • extruding
    • about / Deforming by formulas
    • implementing / Extruding the sphere

F

  • Firmata
    • about / Using the Firmata protocol for Arduino connection
  • fragment shader
    • about / Creating the video effect with a shader
    • creating / Creating the fragment shader
    • main() function / How it works
  • Frame Buffer Object (FBO)
    • about / Redirecting drawing to the offscreen buffer
  • Fritzing
    • URL / Programming an Arduino board

G

  • geometric pattern
    • about / Geometric patterns
  • geometry shader
    • about / Creating the video effect with a shader
  • grayscale image
    • about / Raster images in openFrameworks
  • group of controls
    • creating / Creating groups of controls
    • sliders' values used / Using the sliders' values, Implementing a checkbox, a color selector, and a 2D slider
  • GUI
    • creating, ofxGui add-on used / Creating a GUI using the ofxGui addon
    • autosave feature, implementing / Implementing the autosave feature
    • 2D and 3D graphics, mixing with / Mixing 2D and 3D with the GUI
  • GUI classes
    • about / The GUI
  • GUI controls, video synthesizer for desktop
    • about / The GUI controls
    • sliders / Basic sliders
    • global group / Global group
    • primitive group / Primitive group
    • mixer group / Mixer group
  • GUI panel
    • implementing, sliders used / Implementing a simple GUI panel with sliders
    • sliders' values used / Using the sliders' values

H

  • handshake / The ofxNetwork addon

I

  • image file
    • drawing / Drawing an image file
  • image generation, video synthesizer project
    • fragment shaders, used / Using fragment shaders for image generation
  • inlets / Creating an OSC sender with Max/MSP
  • instantaneous phase / Implementing a simple LFO
  • iOS Developer License
    • URL / Deploying the project on an iOS device
  • iOS device
    • accelerometer / Using accelerometer
    • gyroscope / Using accelerometer

K

  • kaleidoscope effect
    • about / Creating the video effect with a shader
    • implementing / Implementing the kaleidoscope effect
    • fragment shader, creating / Creating the fragment shader
    • vertex shader, creating / Creating the vertex shader
    • created shaders, using / Using created shaders in the project
  • kangle slider / Using time values for a parameter's automation
  • keyboard events
    • handling / Handling keyboard events
    • GUI, hiding / Hiding the GUI
    • screenshot, saving / Saving a screenshot
    • preset saving, system save dialog used / Saving a preset using the system save dialog
    • preset loading, system load dialog used / Loading a preset using the system load dialog

L

  • layers
    • mixing, additive blending used / Mixing layers using additive blending
    • mixer's GUI, creating / Creating the mixer's GUI
    • mixers functionality, implementing / Implementing the mixer's functionality
  • level of sound
    • using, for parameter's automation / Using the level of sound for a parameter's automation
    • signal, obtaining / Getting the level of a sound signal
  • live video
    • grabbing, from camera / Grabbing a live video from a camera
  • Local Area Network (LAN) / Sending OSC messages between two separate computers
  • lock the patch / Creating an OSC sender with Max/MSP
  • Low Frequency Oscillators (LFOs) / Implementing a simple LFO

M

  • mathematical function
    • about / Mathematical, timer, and conversion functions
  • matrix pattern generator
    • implementing / Implementing the matrix pattern generator
    • sliders' values, using / Using the sliders' values
    • experimenting with / Experimenting with the matrix pattern generator
  • Max/MSP
    • OSC sender, creating with / Creating an OSC sender with Max/MSP
    • about / Creating an OSC sender with Max/MSP
    • installing / Creating an OSC sender with Max/MSP
    • URL / Creating an OSC sender with Max/MSP
  • mixers
    • GUI, creating / Creating the mixer's GUI
    • functionality, implementing / Implementing the mixer's functionality
  • mouse
    • camera, controlling / Controlling the camera with a mouse
  • multimedia classes
    • about / Multimedia and other classes

N

  • networking
    • about / Distributed computing with networking
    • distributed projects, creating / Distributed computing with networking
  • networking, in openFrameworks
    • about / Networking in openFrameworks
    • ofxNetwork add-on / The ofxNetwork addon
    • ofxOsc add-on / The ofxOsc addon
  • networking port
    • about / Implementing the OSC messages receiver
  • New Out of Box Software (NOOBS)
    • about / Required equipment
    • URL / Required equipment
  • noise
    • about / Implementing a pseudorandom LFO with Perlin noise
  • non-core addons / Creating a project
  • number of channels, raster images
    • about / Raster images in openFrameworks

O

  • object deformation, video synthesizer project
    • vertex shaders, used / Using vertex shaders for an object deformation
  • ofApp class
    • about / Application
    • setup() function / Application
    • update() function / Application
    • draw() function / Application
  • offscreen buffer
    • about / Creating the video effect with a shader
    • drawing, redirecting / Redirecting drawing to the offscreen buffer
    • contents, drawing / Drawing the offscreen buffer contents and enabling smoothing
    • smoothing, enabling / Drawing the offscreen buffer contents and enabling smoothing
  • ofGetElapsedTime() function / Using time values for a parameter's automation
  • ofImage class
    • about / Raster images in openFrameworks
  • ofPixels class
    • about / Raster images in openFrameworks
  • ofSoundPlayer / Playing and analyzing an audio file
  • ofTexture class
    • about / Raster images in openFrameworks
  • ofxGui add-on
    • used, for creating GUI / Creating a GUI using the ofxGui addon
  • ofxiPhoneGetDocumentsDirectory()function / Implementing video synthesizer for iOS
  • ofxNetwork add-on
    • about / The ofxNetwork addon
  • ofxOsc add-on
    • about / The ofxOsc addon
    • ofxOscSender class / The ofxOsc addon
    • ofxOscReceiver class / The ofxOsc addon
    • ofxOscMessage class / The ofxOsc addon
    • ofxOscBundle class / The ofxOsc addon
  • ofxSyphon add-on
    • URL / Multidisplay setup and sharing images between separate programs
  • openFrameworks
    • about / What is openFrameworks?
    • features / What is openFrameworks?
    • installing / Installing openFrameworks
    • download page / Installing openFrameworks
    • folder, structure / The openFrameworks folder structure
    • example / Running your first example
    • video synthesizer application / The video synthesizer application
    • project / Creating and running a new project
    • simple drawing / A simple drawing
    • networking / Networking in openFrameworks
    • resources / Getting more information on openFrameworks
    • books / openFrameworks books
    • code, debugging / Debugging and speeding up your code, Debugging
    • code, speeding up / Speeding up the code
  • Open Sound Control (OSC) protocol
    • about / The ofxOsc addon
    • URL / The ofxOsc addon
  • orthogonal projection
    • about / Creating a camera
  • OSC messages receiver
    • implementing / Implementing the OSC messages receiver
  • OSC sender
    • creating, with openFrameworks / Creating an OSC sender with openFrameworks
    • messages, sending between two separate computers / Sending OSC messages between two separate computers
    • connection troubleshooting / Connection troubleshooting
    • creating for mobile device, TouchOSC app used / Creating OSC senders with TouchOSC, Python, and Max/MSP, Creating an OSC sender for a mobile device using the TouchOSC app
    • creating, Python used / Creating an OSC sender with Python
    • creating, Max/MSP used / Creating an OSC sender with Max/MSP
  • outlets / Creating an OSC sender with Max/MSP

P

  • parallel lines
    • used, for creating stripe pattern / A stripe pattern made from parallel lines
  • parameter's automation
    • disabling / Controlling automation
  • parameter's automation, using level of sound
    • about / Using the level of sound for a parameter's automation
    • audio file, playing / Playing and analyzing an audio file
    • audio file, analyzing / Playing and analyzing an audio file
    • level of sound signal, obtaining / Getting the level of a sound signal
  • parameter's automation, using time values
    • about / Using time values for a parameter's automation
    • simple LFO, implementing / Implementing a simple LFO
    • pseudorandom LFO, implementing with Perlin noise / Implementing a pseudorandom LFO with Perlin noise
  • patch cord / Creating an OSC sender with Max/MSP
  • Perlin noise
    • about / Implementing a pseudorandom LFO with Perlin noise
    • pseudorandom LFO, implementing with / Implementing a pseudorandom LFO with Perlin noise
  • perspective projection
    • about / Creating a camera
  • physical computing
    • about / Physical computing with Arduino
  • pinchY slider / Creating an OSC sender with openFrameworks, Connection troubleshooting
  • preset
    • saving, system save dialog used / Saving a preset using the system save dialog
    • loading, system load dialog used / Loading a preset using the system load dialog
  • profiler / Speeding up the code
  • project
    • running / Creating and running a new project, Running a project
    • creating / Creating and running a new project, Creating a project
    • addons, selecting / Creating a project
    • code, structure / Discovering the project's code structure
  • projections
    • perspective projection / Creating a camera
    • orthogonal projection / Creating a camera
  • projects
    • reference link / Debugging and speeding up your code
  • pseudorandom LFO
    • implementing, with Perlin noise / Implementing a pseudorandom LFO with Perlin noise
  • Python
    • OSC sender, creating with / Creating an OSC sender with Python
    • installing / Creating an OSC sender with Python
    • URL / Creating an OSC sender with Python
  • python-osc library
    • URL / Creating an OSC sender with Python

R

  • rad slider / Playing and analyzing an audio file
  • Raspberry Pi version, video synthesizers
    • about / Raspberry Pi version
  • Raspbian OS
    • about / Required equipment
  • raster images
    • about / Raster images in openFrameworks
    • number of channels / Raster images in openFrameworks
    • grayscale image / Raster images in openFrameworks
    • color image / Raster images in openFrameworks
    • color image with alpha channel / Raster images in openFrameworks
    • ofImage class / Raster images in openFrameworks
    • ofPixels class / Raster images in openFrameworks
    • ofTexture class / Raster images in openFrameworks
  • render / Distributed computing with networking
  • rendering, video synthesizer project
    • speeding up / Speeding up the rendering
  • Root Mean Square (RMS) measure
    • about / Getting the level of a sound signal
  • rotating lines
    • used, for creating stripe pattern / A stripe pattern made from rotating lines
  • rotating triangles
    • used, for creating stripe pattern / A stripe pattern made from rotating triangles

S

  • screen
    • setting up / Setting up the screen
  • shaded surface
    • light source / The things needed for shading the surface
    • material / The things needed for shading the surface
    • normals / The things needed for shading the surface
    • Z-buffering / The things needed for shading the surface
  • shaders
    • about / Creating the video effect with a shader
    • used, for creating video effect / Creating the video effect with a shader
    • fragment shader / Creating the video effect with a shader
    • vertex shader / Creating the video effect with a shader
    • geometry shader / Creating the video effect with a shader
  • simple LFO
    • implementing / Implementing a simple LFO
  • simplex noise
    • about / Implementing a pseudorandom LFO with Perlin noise
  • skvo.wav music track
    • URL / Playing and analyzing an audio file
  • sliders
    • used, for implementing GUI panel / Implementing a simple GUI panel with sliders
  • smoothing factor
    • about / Getting the level of a sound signal
  • solid sphere
    • drawing / Drawing a solid sphere
    • surface, shading / The things needed for shading the surface
    • drawing, with shading / Drawing a solid sphere with shading
  • sonification / Creating an OSC sender with Python
  • sound
    • capturing, from sound card input / Capturing sound from a sound card's input and measuring its level
  • sound.setMultiPlay(true) command / Playing and analyzing an audio file
  • sound.setPan(1) command / Playing and analyzing an audio file
  • sound.setSpeed(0.5) command / Playing and analyzing an audio file
  • sound capture
    • enabling / Capturing sound from a sound card's input and measuring its level
    • level, measuring / Capturing sound from a sound card's input and measuring its level
  • spectrum
    • about / Getting the level of a sound signal
  • sphere
    • texturing / Texturing the sphere
    • deforming / Deforming a sphere
    • extruding / Extruding the sphere
  • stripe pattern
    • about / The stripe pattern
    • creating, from parallel lines / A stripe pattern made from parallel lines
    • function declaration, inserting / Inserting the function declaration
    • function definition, inserting / Inserting the function definition
    • function calling, inserting / Inserting the function calling
    • creating, from rotating lines / A stripe pattern made from rotating lines
    • creating, from rotating triangles / A stripe pattern made from rotating triangles
  • system load dialog
    • used, for loading preset / Loading a preset using the system load dialog
  • system save dialog
    • used, for saving preset / Saving a preset using the system save dialog

T

  • text, video synthesizer project
    • drawing / Drawing curves and text
  • texture
    • about / Texturing the sphere
  • textured surface
    • about / Texturing the sphere
  • texturing
    • about / Texturing the sphere
    • texture image, preparing / Preparing a texture
    • texture coordinates, setting / Setting texture coordinates
    • activating / Activating texturing
  • timer function
    • about / Mathematical, timer, and conversion functions
  • time values
    • using, for parameter's automation / Using time values for a parameter's automation
  • TouchOSC
    • URL / Creating an OSC sender for a mobile device using the TouchOSC app
    • about / Creating an OSC sender for a mobile device using the TouchOSC app
  • TouchOSC app
    • OSC sender, creating with / Creating an OSC sender for a mobile device using the TouchOSC app
  • TouchOSC Editor / Creating an OSC sender for a mobile device using the TouchOSC app
  • tracker / Distributed computing with networking
  • Transmission Control Protocol (TCP) / The ofxNetwork addon
  • triangular mesh
    • about / openFrameworks classes for surface representation

U

  • User Datagram Protocol (UDP) / The ofxNetwork addon

V

  • Vertex Buffer Object (VBO)
    • about / openFrameworks classes for surface representation
  • vertex shader
    • about / Creating the video effect with a shader
    • creating / Creating the vertex shader
  • vertices
    • about / Creating the vertex shader
  • video effect
    • creating, with shaders / Creating the video effect with a shader
    • drawing, redirecting to offscreen buffer / Redirecting drawing to the offscreen buffer
    • kaleidoscope effect, implementing / Implementing the kaleidoscope effect
  • video file
    • playing / Playing a video file
  • video synthesizer application
    • about / The video synthesizer application
    • features / Three reasons to create your own video synthesizer with openFrameworks
  • video synthesizer project
    • deploying, on iOS device / Deploying the project on an iOS device
    • desktop version / The desktop version
  • video synthesizer project, enhancing
    • about / Enhancing the video synthesizer project
    • rendering, speeding up / Speeding up the rendering
    • curves, drawing / Drawing curves and text
    • text, drawing / Drawing curves and text
    • fragment shaders, using for image generation / Using fragment shaders for image generation
    • vertex shaders, using for object deformation / Using vertex shaders for an object deformation
    • Firmata protocol, using for Arduino connection / Using the Firmata protocol for Arduino connection
    • multidisplay setup / Multidisplay setup and sharing images between separate programs
    • images, sharing between separate programs / Multidisplay setup and sharing images between separate programs
  • video synthesizer project, running on Android device
    • about / Running the project on an Android device
    • software, installing for Android development / Installing software for Android development
    • video synthesizer, implementing / Implementing video synthesizer for Android, Implementing the video synthesizer
    • empty project, creating / Creating an empty project
    • GUI panel size, increasing / Increasing the size of the GUI panel
    • troubleshooting / Troubleshooting
    • reaction on stopping and double-tapping, implementing / Implementing reaction on stopping and double-tapping
    • accelerometer, using / Using the accelerometer on an Android device
    • renaming / Renaming the project
  • video synthesizer project, running on iOS device
    • about / Running the project on an iOS device
    • video synthesizer, implementing for iOS / Implementing video synthesizer for iOS
    • project, building for iPad / Building a project for iPad
    • accelerometer, using / Using accelerometer
  • video synthesizer project, running on Raspberry Pi
    • about / Running the project on Raspberry Pi
    • required equipment / Required equipment
    • device, setting up / Setting up the device
    • openFrameworks, installing / Installing openFrameworks
    • first example, running / Running the first example
    • video synthesizer, implementing / Implementing a video synthesizer for Raspberry Pi
  • video synthesizers, for iOS and Android
    • about / iOS and Android versions
    • openFrameworks project / The openFrameworks project and source files
    • source file / The openFrameworks project and source files
    • data files / Data files
    • GUI panel / The GUI
    • double-tap / Touches
    • accelerometer / Accelerometer
  • video synthesizers, for Raspberry Pi
    • about / Raspberry Pi version
  • VideoSynth project
    • OSC receiver, adding / The ofxOsc addon
  • visualization / Creating an OSC sender with Python

W

  • wireframe model
    • about / Drawing a wireframe sphere
  • wireframe sphere
    • drawing / Drawing a wireframe sphere

Z

  • Z-buffering
    • about / The things needed for shading the surface