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

Random dots in Max

Draw random colored dots on a 2d plane.

Screen Shot 2015-02-23 at 8.52.02 AM

Dots are superimposed on a world map using the lcd object.

download

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

folder: random-oval-paint

patch: random-oval-paint.maxpat

additional files: worldMap.jpg

Instructions

Load the patch and click the toggle in the upper left corner to begin drawing. Number boxes allow you change rate and dot size. Click the purple “clear” message to start over.

 

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

ep-426 Interactive video – Spring 2015 week 3

The matrix

(under construction)

matrix01

Review of Jitter tutorials:

tutorial 1: play a Quicktime movie
  • bang sends a matrix (once)
  • jit.fpsgui for debugging
  • How would you play a movie play backwards?
tutorial 2: build a single plane matrix
  • Anything can be transformed into a matrix
  • Create a matrix, row by row, using math (p fillmatrix)
  • How to get and set individual cells in a matrix
  • jit.matrix
  • How would you make pixel art? a drawing program? a spectrum display?
  • A lot of specialized Jitter objects are abstractions that do what this tutorial demonstrates – i.e.., building or transforming the planes of a matrix
tutorial 3:  math operations on entire matrix/plane
  • @op (is an attribute) : was it good design in Max to have both messages and attributes?
  • scalar, vector
  • pass
  • integer/float
  • What happens in a jit.pwindow with display size smaller than the matrix?
  • upsampling/downsampling
tutorial 4:  movie playback.
  • jit.qt.movie will play back URL’s (audio and images) – but you can’t work with the sound in Max without Soundflower
  • scrubbing and looping produces interesting fx
  • hardware controllers
tutorial 5: ARGBI
  • Rearranging planes
  • 8 bit char data type 0-255
  • line object (grain size)
tutorial 6 : color
  • scalebias:  normalized 0.->1. values, not with 0-255 values (look at the subpatcher)
  • planemap attribute for jit.matrix
tutorial 7: hue and BRCOSA
  • 2 very different ways of transforming (i.e., filtering) color and light
  • Why do we seen green with emphasis and detail?
  • hue angle is a way of gradually shifting around the color wheel.
tutorial 8: simple mixing
  • jit.xfade
  • line object
tutorial 9 – more mixing
  • Using various operators to transition, with jit.op, and using jit.scalebias to scale the input values to prevent clipping
tutorial 10 – chromakey
  • doesn’t need to be green.
  • Could you do a performance where you paste yourself into a band video.
  • napoleon dynamite
  • actual green screen

Experiments

Max 7 lessons review

  • fantastic sounds
  • RGB music
  • geometric dreams

State of the art:

8W62Swc

Assignment

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

Continue working through the Jitter tutorials 4-12

Design a prototype of a synthesizer that generates accompaniment for animated GIF’s

News

There will be no class next week February 10th

References

Andrew Benson’s Jitter recipes: https://cycling74.com/search-results/#gsc.tab=0&gsc.q=jitter%20recipes

Screen Shot 2015-02-02 at 12.47.05 AM

Screen Shot 2015-02-02 at 12.47.30 AM

Mac OS frequency control for Softrock SDR devices

Softrock-USB-I2C-Controller

By VK6JBL (Andrew Nilsson)

Available for download at https://groups.yahoo.com/neo/groups/softrock40/files/VK6JBL/

Note: You need to join the Yahoo softrock40 group to access the link

More information about Softrock using Mac OS here: http://blog.marxy.org/2012/02/softrock-ensemble-rxtx-with-dsp-radio.html

By Peter B Marks

Note: On Mavericks you may need to unload the kext for the USB device before plugging in the Softrock:

sudo kextunload -bundle com.apple.driver.AppleUSBFTDI

Screen Shot 2015-02-01 at 1.56.18 AM

 update 3-2016

Using the method above gives error messages, similar to:

(kernel) Kext /System/Library/Extensions/AppleUSBFTDI.kext/Contents/MacOS/AppleUSBFTDI not found for unload request.
Failed to unload /System/Library/Extensions/AppleUSBFTDI.kext/Contents/MacOS/AppleUSBFTDI – (libkern/kext) not found.

Various suggestions:

Reboot the computer. Run the command again. Ignore the error message. And then try plugging in the softrock again.

Tried some variations of the command…

sudo kextunload -b /System/Library/Extensions/AppleUSBFTDI.kext/Contents/MacOS/AppleUSBFTDI

But the following one seemed to do the trick (at least for now) even though it still gives an error:

sudo kextunload -bundle-id com.FTDI.driver.FTDIUSBSerialDriver

For a more practical solution, check the FTDI manual, if it makes any sense to you.

http://www.ftdichip.com/Support/Documents/AppNotes/AN_134_FTDI_Drivers_Installation_Guide_for_MAC_OSX.pdf

 

usbsoftrock

A linux command line utility to control softrock, also  by Andrew Nilsson

Local source is in tkzic/softrock/usbsoftrock

Online repo: https://code.google.com/p/usbsoftrock/ (last updated 2/2011)

It appears that this may have the code needed to build a Max external.