CSC 220.010CPVL
- Object Oriented Multimedia Programming, Fall 2021, TuTh
12-1:20 PM, Old Main 158. CSC 220.020CPVL - Object Oriented Multimedia
Programming, Fall 2021, TuTh 1:30-2:50 PM, Old Main 158.
Tuesday December 7 we will not have our regular class time.
Instead I am requesting attendance at the CSC355 Software
Engineering II presentations in MSU (SUB) 218: Faculty and students are cordially
invited to attend Demo Day F21.
It will be in person this year, with social distancing.
8:30AM - 12:30PM - student presentations
1:30PM - 3:30PM - poster session Zoom
will be available for the student presentations
Professor Donna DeMarco
Our final exam times are Tuesday Dec
14, 8-10 AM for the noon class and Thursday December 16,
11-1 for the 1:30 class.
There is no final exam and
assignments are due December 10.
I will be in the room & on
course Zoom session at the start of those exam times,
attendance optional.
Shiffman's
textbook's website including Examples and Exercises that
will familiarize you with Processing. 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.
I had some questions
about the Furniture drone. I gave each Furniture
& Paddle
object its own MIDI
channel in the constructor call, set the
PROGRAM_CHANGE only in
the first call to display(), and
used the following code
in Furnitute.display() after finding a droney
instrument for the
constructor's MIDIprogram argument.
if
((getMilliseconds()-lastOnNoteTime) >
(1000*16)) {
int
chorus = 93 ;
sendMIDI(ShortMessage.CONTROL_CHANGE, channel,
chorus, 127);
sendMIDI(ShortMessage.NOTE_ON, channel, drone,
96);
lastOnNoteTime = getMilliseconds() ;
} /* CSC220 & CSC480 students fall 2021
IF YOU HAVE BEEN HAVING PROBLEMS
WITH THE CALL TO initMIDI()
TIMING OUT AND BLOWING UP
PROCESSING WITH THIS ERROR:
RuntimeException: Waited
5000ms for: <a750231, 4b2fd0f>[count 2,
qsz 0, owner
THEN GO INTO THE MIDI TAB AND
REPLACE THE CODE THAT STARTS LIKE THIS:
// MIDI VARIABLES, see
http://faculty.kutztown.edu/parson/spring2017/MidiKBSpring2016Parson.txt
final int midiDeviceIndex = 0 ; // setup()
checks for number of devices. Use one for
output.
DOWN THROUGH THE BOTTOM OF THE MIDI
TAB INCLUDING THE sendMIDI() FUNCTION WITH THE CODE IN
THIS FILE. IF IT HAS BEEN WORKING FOR YOU,
DON'T CHANGE THIS MIDI TAB CODE.
CSC220 students be careful not to
remove the getMilliseconds() function from the
MIDI tab.
*/
ASSIGNMENT 4
is a completely reworked 3D Recursive Sketch due
via D2L Assignment 4 November 23.
Here is the handout code
that serves as your starting point.
NOTE: I made changes to
keyPressed(), keyReleased(), and moveCameraRotateWorldKeys()
to work around
Windows problems in handling CONTROL- key commands.
We will go over
these changes at the start of the 11/4 class.
Assignment 5 is a
very basic maze construction program, due by the end of
Friday December 10.
Here is the starting code. STUDENTS:
I updated handout code 12/1 to work around a Processing
bug that one student
ran into fall 2020
and one student found today. It affects some but not all
Processing installations.
My add starts at
the top of the draw() function and affects nothing else.
Please add this to the top of draw():
boolean firstTime = true ;
// ADDED 12/8 see start of draw() function below
void
draw() {
if (firstTime) {
// Added 12/8 because of a bug in at least one
Processing installation.
// This was already done in setup(), but at least
one student's
// Processing system is only displaying the
rect(...) from setup
// in a quick flash. Displaying it the first time
in draw() fixes
// the problem for that student, so:
rectMode(CORNER);
fill(wallColor);
stroke(0);
rect(WallSize, WallSize, width-WallSize*2,
height-WallSize*2);
noStroke();
firstTime = false ;
}
/* STUDENT 30% of project: (THIS RESUMES THE
HANDOUT CODE COMMENTS.)
ZOOM VIDEO ARCHIVE
August
31 went over first day handout & overview of the
course. September
2 Worked through the first 4 demos (A-D) in the CSC120
Recap Demo. September
7 Worked through demos D-F in the CSC120 Recap Demo. September
9 Worked through demos G-H and went over
Assignment 1 above. 9/14 will be a work session. September
14 Work session on Assignment 1 including
"How to get started?" September
16 spent going over this demo 3D
sketch. September
21 going over more 3D code leading up to
Assignment 2 posted above with this code. September
23 going over Assignment 2 handout above. September
28 work session with Q&A for Assignment
2. September
30 went over assn2 PShape requirement including this
improvised sketch for work out vertices of a
cube. October
5 Went over speedup via PShapes, and MIDI in
ConcentricCirclesIntervals above. October
7 looked at another MIDI sketch, at using
ConcentricCircles, & enhancing collision
recovery in assn2. October
14 NO CLASS, CSC480 sketch that uses
tint(255, alpha) to fade one image out & next
image in in cycles. October
19 Went over Assignment 3 handout &
code. October
26 Started going over recursive graphical
sketch. October
28 Finished going over past 3D recursive
code. November
2 Went over some Assignment 3 issues based
on office hour Q&A, started Assignment 4
overview. November
4 A little on Assignment 4 then work session
Q&A on Assignment 3. November
9 Go over Assignment 4 in detail. November
11 Q&A on Assignment 4. November
16 Went over CSC220 portion of
Client-Server, Model-View-Controller materials
above. November
18 Assignment 5 handout and also rotate[XY]
and nesting in Assignment 4 in some order. November
23 Work session Q&A about Assignment 4
due tonight. Short recording. November
30 Applying java.util Map, Set, and List
derived classes to Processing sketches per
Review materials. December
2 Q&A about Assignment 5. December
9 Work session, Q&A about Assignment 5.