ep-426 – Interactive video – Spring 2015 week 7

Audio data for Visualization and Introduction to Open GL

Screen Shot 2015-03-04 at 2.42.29 PM

Audio data for visualization

Generally, visualizations will track amplitude, pitch – or any characteristic of audio that is changing over time.

Translation
  • jit.catch~
Envelope followers
  • peakamp~
  • average~
  • avg~
Transient detection

dude837 – “Delicious Max 6 Tutorial 21: Bump It”  (with physics simulation) – note: during the class, we didn’t actually get this patch to work. Patches for dude837 tutorials: http://otherbirds.com/tutorials/

Pitch/spectral analysis

Introduction to Open GL

Screen Shot 2015-03-04 at 2.03.02 PM

Max builtin Jitter Open GL tutorials:
  • 30 : Introduction to Open GL concepts and display of text, using jit.gl.text3d
  • 31 : Rendering to destinations (jit.pwindow, jit.window, and matrixes)
  • 32 : Positioning the camera
  • 34: Textures – playing video on a 3D object

Miscellaneous

Screen Shot 2015-03-04 at 2.35.03 PM

  • Animating with drunk (Jitter tutorial 18: iterative process)
  • Jonas Margraf http://jonasmargraf.tumblr.com
  • jit.noise (upsampling and downsampling a matrix by adjusting the dimensions)
Not covered:
  • jit.gl.volume
  • jit.gl.slab
  • pixelface tutorial

Assignment

Next week we will look at some of your work in progress for the midterm assignment (that will be due by March 31. Please be ready to demonstrate something or you will have to listen to me again.

Lissajous curves in Max

Drawing Lissajous curves with Jitter

Screen Shot 2015-02-23 at 9.36.54 AM

By Peter Elsea

“Jules Antoine Lissajous (1822-1880) developed a technique for projecting light figures in the 1850s. He placed mirrors on tuning forks and bounced a light beam off them onto a screen. This became a standard technique for studying vibration and enabled major discoveries by Helmholtz and others.”

These two patches are adapted from Elsea’s lecture notes at http://peterelsea.com/Maxtuts_jitter/Lissajous_Art.pdf. The first patch generates curves with two sine waves assigned to X and Y. The second patch adds AM (amplitude modulation). There is an optional feedback module to make visual trails.

Screen Shot 2015-02-23 at 9.25.32 AM

download

https://github.com/tkzic/max-projects

folder: lissajous

patches:

  • lissajous-1.maxpat
  • lissajous-am.maxpat
external dependencies

You will need to download Elsea’s Lobjects abstractions and add the path to Max in Options | File Preferences: http://peterelsea.com/lobjects.html

ep-426 – Interactive video – Spring 2015 week 6

under construction…

Screen Shot 2015-02-22 at 2.43.09 PM

Drawing with Jitter

Jitter matrixes provide a canvas for 2d and 3d drawing.

Getting started

Screen Shot 2015-02-23 at 9.01.29 PM

Fractals
Oscilloscopes and Lissajous curves
From Wikipedia

 http://en.wikipedia.org/wiki/Lissajous_curve

Circular_Lissajous

 

Assignment

Midterm project of your choice

ep-341 Max/MSP – Spring 2015 week 6

Under construction…

Max For Live

  • Max For Live lets you design instruments, effects, control surfaces. It gives you the ability to programmatically access almost any aspect of Ableton Live.

Getting started

(link to actual patches) https://reactivemusic.net/?p=18354

examples

https://github.com/tkzic/max-for-live-projects

programming

  • Flangotron example…
  • Csound examples… ?
  • Help file examples… ?

more notes

links

Miscellaneous

  • adapting a help file
  • Live packs (Max for Live essentials from Cycling74)

Assignment

  • Work through the Cycling 74 Max for live video series
  • Modify a Pluggo patch. Make it better and stronger.

ep-341 Max/MSP – Spring 2015 week 3

Connections

index_top_6_2013

(under construction)

review of Max tutorials

  • messages
  • message types
  • message order (right to left, top to bottom)
  • messages and attributes
  • inlets: passive and active
  • numbers (int/float)
  • subpatches
  • send/receive
tutorial 1
  • debugging with print and message objects
  • set, append, prepend (changing contents without sending out data)
tutorial 2: bang
  • loadbang, loadmess
  • a random thought: musicians should learn to program computers
  • Max is object oriented: objects respond to messages with methods or actions based on type of input
tutorial 3: numbers and lists
  • pack vs. oak
  • $ gets used alot
tutorial 4: toggle metro
  • time formats and the transport
  • When to use Ableton Live instead of Max
  • snippets
  • overiding arguments using the right inlet
  • hide on lock
tutorial 5:
  • debugging… watchpoints / breakpoints (in the patch cords) when debugging make sure to have auto-step off!!!!
  • trigger / bangbang (trigger video link)
tutorial 6:
  • math operations: feedback loop to make accumulator
  • how would you make a backwards keyboard?

review of Max 7 lessons

 

user Interface

Look at UI’s you have build

  • backwards violin?
  • piano with different arrangement of black/white or monochrome
  • what would you change to improve UI of your instrument?

connecting things:

rube goldberg machines: Ok go

Using Max to connect external hardware:

  • midi,
  • osc,
  • serial (Arduino)
  • web
  • hi
  • externals
  • camera (cv)
  • microphone (pitch tracking)
  • mechanical linkage?

Experiments

  • Playing notes on another computer using udpsend/udpreceive and midi
  • ad hoc networks, wifi routers
  • feedback delay case study
  • how would you make a patch that conformed everything to a pentatonic scale but kept rhythm and synchronized?

Here is a screenshot of the OSC experiment we did in class

 

Screen Shot 2015-02-23 at 8.37.39 PM

 

Here is a screenshot of the reverse Midi keyboard patch

Screen Shot 2015-02-23 at 8.40.30 PM

assignment:

Reverse engineer Plink. Build a prototype that allows two or more people to jam.

Design a project that will be due at the mid-term. Send me an email next week describing the project.

Write a patch to connect external hardware to Max (input or output)

news

There will be no class next week, February 10th.

notes

Andy Farnell, “Designing Sound” https://reactivemusic.net/?p=2480

useful skills
  • Read and understand patches (like reading musical scores)
  • Learn how to discover and research other people’s work (USB example, beatDetektor)
  • Make quick prototypes
  • Use externals and abstractions instead of writing everything yourself
  • Get your work noticed

Jitter reverse engineering case study – part 1

Case study: Adapting and transforming an interactive video performance.

under construction

Video and programming by Naoto Fushimi

Here is a case study of how you might approach an interactive video project. For example, if you had an opportunity to design a realtime visualization tool for a band.

Search

Knowing that cool video things can be designed with Max/MSP/Jitter, I opened up Google web search and typed in: jitter max

Here are the results:

Screen Shot 2015-01-18 at 12.00.05 PM

The second entry looked interesting: [Share Patch] Simple Audio Reactive Set [Max/MSP Jitter]. (It is the cool video at the top of this post). There is a link to the Max patch in the video description – but the link is broken.  So I entered the title of the video into Google: Share Patch Simple Audio Reactive Set

Here are the results:

Screen Shot 2015-01-18 at 12.02.12 PM

The second entry is a link to the Cycling 74 forum. https://cycling74.com/forums/topic/looking-for-share-patch-simple-audio-reactive-set-maxmsp-jitter/ Here I was able to find a link to a modified version of Naoto Fushimi’s Max patch – in a post by Giorgio. http://1cyjknyddcx62agyb002-c74projects.s3.amazonaws.com/files/2014/12/NAOTO.maxpat

Understanding the Max patch

Screen Shot 2015-01-18 at 9.14.08 PM

It appears that audio input is supposed to trigger the interactive graphics. But immediately on starting the audio, it begins to feedback, and there is apparently no way to stop it. I notice there is an ezadc~ object as well as an IO abstraction – but can’t quite see how they are hooked up due to the maze of segmented overlapping patch cords.

By selecting everything (<cmd> a) you can restore normal patch cords by selecting Arrange | remove all segments. After doing this, it appears that the ezadc~ is redundant, so I deleted it. Now the patch looks like this:

Screen Shot 2015-01-18 at 9.58.07 PM

Much easier to understand. In the IO abstraction I loaded an audio file and then was able to get graphic output by toggling on the metro at the top of the patch and using the 3 toggles in the center of the patch.

Screen Shot 2015-01-18 at 10.01.08 PM

It works, but how?

peakamp~

jit.catch~

3 openGL subpatches

jit.gl.gridshape

rotatexyz message