CSC 220.010CPVL
- Object Oriented Multimedia Programming, Fall 2019, TuTh
12-1:20 PM, Old Main 159. CSC 220.020CPVL - Object Oriented Multimedia
Programming, Fall 2019, TuTh 1:30-2:50 PM, Old Main 159. Here
is the Zoom video for November 26 class. It runs 85 minutes
and covers Open Sound Control (OSC/UDP) and Java Maps and Set in
Assignment 4.
FINAL EXAM STUDY
GUIDE
The final exam for the
12:00 class is on Tuesday, Dec. 10, 2019, 8:00 a.m. – 10:00 a.m.
The final exam for the
1:30 class is on Thursday, Dec. 12, 2019, 11:00 a.m. – 1:00 p.m.
They will be in Old
Main159. You must contact me with a documented medical excuse to
miss the exam, or you will earn 0% on it.
Dr.
Dale E. Parson Fall 2019 Office Hours (Old
Main 260): Mon 12:30-2:30, Tu 3-4, Wed 2:30-4:30, or by appointment
First day handout (syllabus
that is specific to this semester). Hold the evening of Monday December 2
for a public event in the KU
Planetarium featuring the Princeton
Laptop Orchestra.
We will demo a multimedia
project. Attendance is mandatory; an
alternative project is available if you can't
make the date.
Participation is worth 20%
of a project assignment.
Open
Broadcaster Software
OBS, Free and open source
software for video recording and live
streaming. CSC480 Special topics course in
spring 2020: This course increases breadth and depth of knowledge for
students with experience in object- oriented programming for
multimedia systems. Advanced topics include working with
camera point-of-view and lighting sources for 3D graphics,
recursive shapes and fractals, pixel-level image processing,
and animated video composition. Students will program
graphical images, video streams, audio signals, physical
devices containing electronic sensors and effectors, and
combinations of these media. There will be solo and team
programming projects.
Prerequisites: CSC220 with a grade of C or better.
RESOURCES & HANDOUTS
Shiffman's
textbook's website including Examples and Exercises that
will familiarize you with Processing. On overnight reserve in Rohrbach
Library. Software setup instructions:
1. On your Windows U:\ drive, create a new
folder called Processing.
U:\ is available
anywhere on campus and does not auto-delete files.
Do not store files
on your PC desktop. They will be gone after you log out.
2. Use the Windows Explorer to create
folder U:\Processing.
3. Every time you start Processing, go to
Preferences and change the Sketchbook location to
U:\Processing.
You must create
folder U:\Processing the first time you want to use it.
To run Processing,
find Processing under S:\ComputerScience on your PC.
5. All of your practice and assignment
sketches must reside under U:\Processing.
6. If you Download & Install
Processing on your home machine, use the latest
version Processing 3.x, currently 3.5.
I don't usually
upgrade the version mid-semester, in the interest of
stability, unless I need a specific bug fix.
Assignment
1 is due by 11:59 PM on Saturday September 28 via D2L.
Assignment
2 is due by 11:59 PM on Saturday October 12 via D2L.
Starting code CSC220F19Demo3Da for starting
your 3D programming. TriTexture.jpg
for my textured PShape. If you go for the bonus points for
texturing, you must supply your own image file. CSC220F19Demo3DSphereBox
shows how to position & stretch 3D shapes using translate()
and scale(). CSC220F19DemoPShapeassn2
is my 10/1 simplified sketch for developing your custom
makeCustomPShape() for assignment 2.
Build
and test your makeCustomPShape()
function in this sketch, the copy & paste it into assignment
2's sketch.
Assignment
3 for creating a virtual MIDI instrument for the
planetarium dome is due by 11:59 PM on Friday November 8 via
D2L.
There are four Processing
tabs (.pde files) in the handout code: CSC220F19MIDIassn3.pde is
the main sketch. Copy this and do a "Save As CSC220F19MIDIassn3"
in Processing.
In that sketch, create a Tab called Note and
copy&save Note as a tab within
CSC220F19MIDIassn3.
In that sketch, create a Tab called Musician
and copy&save Musician as a tab
within CSC220F19MIDIassn3.
In that sketch, create a Tab called
CartesianPolar and copy&save CartesianPolar
as a tab within CSC220F19MIDIassn3. CSC220F19MIDIc is a
non-planetarium-oriented introduction sketch for MIDI. You can
use it to explore PROGRAM & CONTROL. CSC220F19DemoPShapeCylinder
is a simple demo sketch for making a 3D cylinder. A
library of hexagonal PNG files, added 10/24/2019. A video with shearX
caused by Note.setShearXSpeed(float speedInDegrees), starting at
20 seconds in.
White board photos for mapXY, setShearXSpeed,
and code in setup() and
Note.display() for PShape & PImage.
Figure 1 of the assignment 3 handout.
Figure 2 of the assignment 3 handout.
Assignment
4 is due by 11:59 PM on Tuesday November 26. We will not
have class that day. I will post & announce a Zoom video.
Please read the
assignment. Attendance is mandatory for the November 19
session in the planetarium.
Assignment 4 handout
explains opportunities for bonus points.
I added two footnotes on
page 6 on 11/12, after printing out hard copies of the
handout: Zoom
video recording of 11/12/2019 from class discussion on
Assignment 4.
1. You can leave the Android USB cable
plugged in to see println() debugging statements on your PC or
laptop, but you should do final testing with the USB cable
unplugged.
2. Correction added 11/12/2019 – insert
this statement immediately after startOSC(); at the bottom of
function setup(): orientation(LANDSCAPE); it has no
effect when running the client on the PC, but it keeps the
Android client in landscape orientation, and avoid restarts on
re-orientation. Restarts still occur if you minimize the
sketch on Android. Also, in the Menus tab, change the
statement near the top of function startOSC() from globalPointSize
= height / 48 ; to globalPointSize = height / 24 ;
for the Galaxy tablet in landscape mode. Adjust this statement
to suit your device.
CSC220F19MIDIassn3parson
is the starting sketch as explained in the assignment handout.
Here
are CSC220F19MIDIassn3parson's CartesianPolar,
Musician,
Note, and Menus tabs. CSC220F19MIDIassn4Server
is the server with which your client sketch communicates. Do
not change it.
Here
are CSC220F19MIDIassn4Server's CartesianPolar,
Musician,
and Note
tabs.