Week1:
Hello,
I have cleaned up and posted the "Rothko" patch that we made together here: http://cart370.weebly.com/week1.html
For the next class make sure to go over Max Basics tutorials and cover as many as you can:
Max Basics Tutorial 1-7
You can skip over (or quickly scan through) tutorials 8-14
...and keep going.
A little exercise for next class
Create an interpolatable floating point random number generation that outputs numbers within a specifiable range and rate (ms):
You won't be marked on this exercise by I do encourage you to give it an honest try.
Hello,
I have cleaned up and posted the "Rothko" patch that we made together here: http://cart370.weebly.com/week1.html
For the next class make sure to go over Max Basics tutorials and cover as many as you can:
Max Basics Tutorial 1-7
You can skip over (or quickly scan through) tutorials 8-14
...and keep going.
A little exercise for next class
Create an interpolatable floating point random number generation that outputs numbers within a specifiable range and rate (ms):
- Create a probabilistic metro that outputs a bang within a temporal range specifiable by the user. (ie. psuedo-random metro.)
- Then create a floating point random number generator that outputs numbers within any numerical range as specified by the user.
- Connect 1 and 2 so that the rate of random number generation is controlled by the random metro.
You won't be marked on this exercise by I do encourage you to give it an honest try.
Week2:
Hi,
Download and study the patches from the class website week2: http://cart370.weebly.com/week2.html
We'll discuss more challenges soon and will introduce your first main assignment (Etude) next week. For now check: http://cart370.weebly.com/challenges.html
Recommended readings:
Recommended article + accompanied patches from the Jitter Recipes:
Video tutorials, little tidbits and useful secrets in Max:
Discussed ThirdParty Libraries:
Go over all Max Basics Tutorials and start Jitter Tutorials and cover as many as you can.
We are moving fast in this class and soon you'll be able to create many exciting things :) If you feel like you are behind please take your time, catch up, patiently stare at class example patches and try to understand them, research, and then make fun derivatives of your own. Email me questions and request to meet with us so we could help you :)
Hi,
Download and study the patches from the class website week2: http://cart370.weebly.com/week2.html
We'll discuss more challenges soon and will introduce your first main assignment (Etude) next week. For now check: http://cart370.weebly.com/challenges.html
Recommended readings:
Recommended article + accompanied patches from the Jitter Recipes:
Video tutorials, little tidbits and useful secrets in Max:
- Did you know? 52 videos. Start from 1 and make your way to the more advanced ones... these videos are short and fun to go over in your down time and could replace TV with some easy learning time ;)
Discussed ThirdParty Libraries:
- Digital Orchestra Tool Box (awesome resource of abstractions for advanced data cooking and feature extraction from all sorts of data streams, sensors, cameras, microphones, gesture capture systems, etc)
Go over all Max Basics Tutorials and start Jitter Tutorials and cover as many as you can.
We are moving fast in this class and soon you'll be able to create many exciting things :) If you feel like you are behind please take your time, catch up, patiently stare at class example patches and try to understand them, research, and then make fun derivatives of your own. Email me questions and request to meet with us so we could help you :)
Week3: Sep25
It was great to see all of you engaging creatively with Max/Jitter during the last class.
Week3 in-class exercises are posted here: http://cart370.weebly.com/week3.html
Feel free to also explore week3 class examples from last year (cue based video loopers, crossfading and etc): http://cart370.weebly.com/class-examples.html
Keep reading through this article from last week and play around with its accompanied patches:
Cycling74's short video series, re-posted from last week:
Develop an in depth understanding of the basic jitter objects that we have talked about so far: in particular jit.matrix and jit.op.
Cover Jitter Tutorials 1-5
Tutorial #2 and #3 have a lot of useful facts to offer so read through them but in general don't just read the tutorials. Play around, experiment, and have a lot of fun.
Etudes:
Some general guidelines and also details regarding etude#1 are posted here: http://cart370.weebly.com/etudes.html
Come up with an idea and start sketching, experimenting, and building towards it. Next week we will spend a good part of the class to help you with etude#1.
It was great to see all of you engaging creatively with Max/Jitter during the last class.
Week3 in-class exercises are posted here: http://cart370.weebly.com/week3.html
Feel free to also explore week3 class examples from last year (cue based video loopers, crossfading and etc): http://cart370.weebly.com/class-examples.html
Keep reading through this article from last week and play around with its accompanied patches:
Cycling74's short video series, re-posted from last week:
Develop an in depth understanding of the basic jitter objects that we have talked about so far: in particular jit.matrix and jit.op.
Cover Jitter Tutorials 1-5
Tutorial #2 and #3 have a lot of useful facts to offer so read through them but in general don't just read the tutorials. Play around, experiment, and have a lot of fun.
Etudes:
Some general guidelines and also details regarding etude#1 are posted here: http://cart370.weebly.com/etudes.html
Come up with an idea and start sketching, experimenting, and building towards it. Next week we will spend a good part of the class to help you with etude#1.
week 4
Dear real time video ninjas,
Re: Etude #1:
We have covered a lot of material and it might be overwhelming for some of you. If you are technically stuck somewhere then here are some general workflow guidelines:
Jamoma:
Good Luck!
Dear real time video ninjas,
Re: Etude #1:
- Follow the guidelines on the class website.
- You are excepted to place the patch and support material for your etude #1 in the class's shared folder. Package everything under a folder that you should label etude1.
- The patch should initiate on it's own and all of it's dependancies and abstraction must be included within the folder. (hint: test to see that your patch works on the class computers).
- Include a "READ ME" text file in the folder and explain your project both conceptually and technically. Inside the patch don't forget to leave general comments and remarks.
- It is totally ok to repurpose other people's patches but if you are using part of a patch that you have found on the web or elsewhere then make sure to reference them and point to the original patch somehow. If you are copy and pasting part of a patch then make sure to take your time to understand it, hack it, and creatively repurpose it.
- Everything is due before class on Monday.
- You will be asked to demonstrate your project to us on Monday. We might be able to book a room and setup a camera and projector for this purpose on Monday (not guaranteed yet).
We have covered a lot of material and it might be overwhelming for some of you. If you are technically stuck somewhere then here are some general workflow guidelines:
- Refer to the jitter tutorials and the class examples..
- If an object's function is a mystery to you then open up it's help patch, refer to max's built in documentation, references and tutorials. Programming and on the spot self learning in Max is easy, and really fun if you use the built in learning and usability options.
- In Max's References/Documentation window under the "Objects" tab you can find a listing of all Max/MSP/Jitter objects organized in categories. There you might find a specific object or functionality that you are looking for.
- For specific issues and curiosities email the class list so our whole class as a collective could help you and learn from you.
Jamoma:
- You don't really need Jamoma for etude one but Jamoma is a huge and easy to use resource. Explore its modules. If you have Jamoma installed properly then you can find the Jamoma Overview patch by going to: Max's "Extras" menu > Jamoma Overview > Modules
- To install Jamoma properly go to the Jamoma website and follow their instructions and carefully to make sure you download and install the right packages for your specific operating system and your current version of Max.
Good Luck!
Week 6 (Oct 23)
Class examples and patches from last week are up: http://cart370.weebly.com/week6.html
A number of the presented objects use the following libraries that you should install:
Jamoma: http://www.jamoma.org/download/
Taptools (for faster color tracking): http://download.74objects.com/taptools/index.html
CV.jit: http://jmpelletier.com/cvjit/
If you are having difficulties with any installation procedures then please email our list and we'll help you out collectively.
ETUDE #2:
is now due on Nov 4
http://cart370.weebly.com/etudes.html
Don't forget to follow the good old general guidelines for the etudes.
Next class is taught by the mighty fine jitter artist, Evan Montpelier. Towards the end of the class he will also help you out with any Etude #2 related obstacles.
Class examples and patches from last week are up: http://cart370.weebly.com/week6.html
A number of the presented objects use the following libraries that you should install:
Jamoma: http://www.jamoma.org/download/
Taptools (for faster color tracking): http://download.74objects.com/taptools/index.html
CV.jit: http://jmpelletier.com/cvjit/
If you are having difficulties with any installation procedures then please email our list and we'll help you out collectively.
ETUDE #2:
is now due on Nov 4
http://cart370.weebly.com/etudes.html
Don't forget to follow the good old general guidelines for the etudes.
Next class is taught by the mighty fine jitter artist, Evan Montpelier. Towards the end of the class he will also help you out with any Etude #2 related obstacles.
Week 7 (by Evan)
Hi all,
Thanks so much for your attention and patience during today's venture into the hectic world of CV.jit. As mentioned, it's a large and complex library, and we've barely scratched the surface of what it can do. I'm going to be putting together some resources that will hopefully support you in working through the material we touched on today.
Here's some material that I hope will be useful in your further
explorations of the cv.jit library.
TUTORIALS:
-Here's an excellent tutorial on cv.jit from Peter Elsea, retired
Director of the Electronic Music Studios at the University of
California, Santa Cruz.
ftp://arts.ucsc.edu/pub/ems/DANM%20220-2013/CV.jit.pdf
Throughout, Prof. Elsea provides illustrations of example patches. I've
recreated these for you as Max patchers - see the attached
peter_elsea_cv_jit_tutorials.zip. Please note that some of Prof. Elsea's
numbered illustrations are variations on the main patches he presents
and not unique patches unto themselves. In rebuilding the patches I've
tried to include all these variations within each main patch, and that's
why the .zip contains only 6 .maxpat files.
Prof. Elsea has written many other extremely useful and lucid
Max/MSP/Jitter tutorials, which can be found here:
http://peterelsea.com/maxtutorials.html
I also strongly recommend you download his library for processing lists,
Lobjects. Since unpacking matrices from the cv.jit objects into lists is
a really handy way to get at the data they contain, Prof. Elsea's list
handling objects are very useful in this domain. Available here:
ftp://arts.ucsc.edu/pub/ems/Lobjects/Max%204.5%20mac/Lobjects_UB_10_06.dmg
-Here's a screencast of a class lecture by Dr. Liubo Borissov of Pratt
Institute:
http://vimeo.com/10611551
Dr. Borissov gives a very systematic walkthrough of building a patch
around cv.jit.blobs.centroids. It's worth watching the whole video and
following along by building the patcher yourself, since this will help
you get more familiar with the object toolkit and workflow that are
often necessary when dealing with cv.jit objects. For reference, I'm
also including my own version of the blob tracking patcher Dr. Borissov
builds (borissov_in.maxpat), as well as the related OpenGL visualization
patcher (borissov_gl.maxpat)
-for general Jitter tutorials (mostly not cv.jit related), I can't
recommend the Jitter Recipes by Andrew Benson highly enough:
cycling74.com/category/articles/jitter-recipes/
These things are basically completely responsible for any understanding
I now have of how OpenGL works in Jitter.
-… and of course, make plenty of use of the Cycling '74 forums!
http://cycling74.com/forums/
OTHER STUFF:
The attached cv.jit.HSflow_position_tracking.maxpat gives an idea of how
to get some useful information out of cv.jit.HSflow and use it to
control parameters.
cv_jit_track_audio.maxpat is a (less thoroughly documented) illustration
of how to choose and keep track of points in an image, and use their
position values to control something else.
It's too bad that we didn't have the time to delve deeper into the
cv.jit library, but hopefully our discussion has prepared you to explore
on your own! Some objects that we didn't cover but that might be
interesting include:
-cv.jit.faces - track faces (stable and easy to use)
-cv.jit.blobs.sort - tries to deal with the problem of keeping blob
labelling consistent
-cv.jit.learn - trainable pattern recognition
Remember:
-the matrices these objects put out often are not really "human
readable" on their own - they use planes to store statistics, position
data, etc., rather than image information.
-to figure out what sort of data is stored in these matrices, read the
help files, but also use the diagnostic tools we covered -
[jit.matrixinfo], [jit.3m], [jit.fpsgui] and [jit.cellblock] can all
give you a good idea of what's going on inside.
-to pull the data out of the matrices, use [jit.iter] (gives one cell at
a time) and [jit.spill] (gives one plane at a time. Taking
[cv.jit.blobs.centroids] as an example, [jit.iter] will give you all the
values (x, y and area) for each blob individually, while [jit.spill]
will give you one value of all the blobs (all of the x positions of all
the blobs, or all the y positions, or all the areas).
It was great meeting you all! Best of luck on your assignments and
studies in CART 370. I plan to remain on the Google Group, so if you
have questions, I'll try and answer them time permitting.
Take care,
Evan
Hi all,
Thanks so much for your attention and patience during today's venture into the hectic world of CV.jit. As mentioned, it's a large and complex library, and we've barely scratched the surface of what it can do. I'm going to be putting together some resources that will hopefully support you in working through the material we touched on today.
Here's some material that I hope will be useful in your further
explorations of the cv.jit library.
TUTORIALS:
-Here's an excellent tutorial on cv.jit from Peter Elsea, retired
Director of the Electronic Music Studios at the University of
California, Santa Cruz.
ftp://arts.ucsc.edu/pub/ems/DANM%20220-2013/CV.jit.pdf
Throughout, Prof. Elsea provides illustrations of example patches. I've
recreated these for you as Max patchers - see the attached
peter_elsea_cv_jit_tutorials.zip. Please note that some of Prof. Elsea's
numbered illustrations are variations on the main patches he presents
and not unique patches unto themselves. In rebuilding the patches I've
tried to include all these variations within each main patch, and that's
why the .zip contains only 6 .maxpat files.
Prof. Elsea has written many other extremely useful and lucid
Max/MSP/Jitter tutorials, which can be found here:
http://peterelsea.com/maxtutorials.html
I also strongly recommend you download his library for processing lists,
Lobjects. Since unpacking matrices from the cv.jit objects into lists is
a really handy way to get at the data they contain, Prof. Elsea's list
handling objects are very useful in this domain. Available here:
ftp://arts.ucsc.edu/pub/ems/Lobjects/Max%204.5%20mac/Lobjects_UB_10_06.dmg
-Here's a screencast of a class lecture by Dr. Liubo Borissov of Pratt
Institute:
http://vimeo.com/10611551
Dr. Borissov gives a very systematic walkthrough of building a patch
around cv.jit.blobs.centroids. It's worth watching the whole video and
following along by building the patcher yourself, since this will help
you get more familiar with the object toolkit and workflow that are
often necessary when dealing with cv.jit objects. For reference, I'm
also including my own version of the blob tracking patcher Dr. Borissov
builds (borissov_in.maxpat), as well as the related OpenGL visualization
patcher (borissov_gl.maxpat)
-for general Jitter tutorials (mostly not cv.jit related), I can't
recommend the Jitter Recipes by Andrew Benson highly enough:
cycling74.com/category/articles/jitter-recipes/
These things are basically completely responsible for any understanding
I now have of how OpenGL works in Jitter.
-… and of course, make plenty of use of the Cycling '74 forums!
http://cycling74.com/forums/
OTHER STUFF:
The attached cv.jit.HSflow_position_tracking.maxpat gives an idea of how
to get some useful information out of cv.jit.HSflow and use it to
control parameters.
cv_jit_track_audio.maxpat is a (less thoroughly documented) illustration
of how to choose and keep track of points in an image, and use their
position values to control something else.
It's too bad that we didn't have the time to delve deeper into the
cv.jit library, but hopefully our discussion has prepared you to explore
on your own! Some objects that we didn't cover but that might be
interesting include:
-cv.jit.faces - track faces (stable and easy to use)
-cv.jit.blobs.sort - tries to deal with the problem of keeping blob
labelling consistent
-cv.jit.learn - trainable pattern recognition
Remember:
-the matrices these objects put out often are not really "human
readable" on their own - they use planes to store statistics, position
data, etc., rather than image information.
-to figure out what sort of data is stored in these matrices, read the
help files, but also use the diagnostic tools we covered -
[jit.matrixinfo], [jit.3m], [jit.fpsgui] and [jit.cellblock] can all
give you a good idea of what's going on inside.
-to pull the data out of the matrices, use [jit.iter] (gives one cell at
a time) and [jit.spill] (gives one plane at a time. Taking
[cv.jit.blobs.centroids] as an example, [jit.iter] will give you all the
values (x, y and area) for each blob individually, while [jit.spill]
will give you one value of all the blobs (all of the x positions of all
the blobs, or all the y positions, or all the areas).
It was great meeting you all! Best of luck on your assignments and
studies in CART 370. I plan to remain on the Google Group, so if you
have questions, I'll try and answer them time permitting.
Take care,
Evan