Balancing Function and Fashion (Shneiderman and Plaisant, Ch. 11 and 12) from 12.
0 The old computing is about what computers can do… the new computing is about what people can do....
-
Upload
wilfred-webster -
Category
Documents
-
view
213 -
download
0
Transcript of 0 The old computing is about what computers can do… the new computing is about what people can do....
![Page 1: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/1.jpg)
1
The old computing is about what computers can do…
the new computing is about what people can do.
- Ben Shneiderman
![Page 2: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/2.jpg)
2
The old computing is about what computers can do…
the new computing is about what people can do.
- Ben Shneiderman
![Page 3: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/3.jpg)
3
Motivation
• programming the passage of time– specifying / controlling– reasoning about time in code– flexible granularity
• concurrency– parallel– easy to program– precise + granular
• gain insight about audio programs• make audio programming more accessible• further enable rapid experimentation
![Page 4: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/4.jpg)
4
Code == Musical instrument
![Page 5: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/5.jpg)
5
![Page 6: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/6.jpg)
6
ChucK Facts
• text-based, general-purpose programming• tailored for real-time audio synthesis and
analysis• open-source, cross-platform• designed from the “ground-up”• high-level syntax, low-level control
![Page 7: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/7.jpg)
7
Chistory-1
![Page 8: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/8.jpg)
8
Chistory-2
![Page 9: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/9.jpg)
9
Chistory-3
![Page 10: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/10.jpg)
10
Flexibility, readability trumps performance
![Page 11: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/11.jpg)
11
Core Language Features
![Page 12: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/12.jpg)
12
=>
![Page 13: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/13.jpg)
13
Controlling Time
// infinite time loop
while( true )
{
// set the next sample
1.0 => i.next;
// advance time
100::ms +=> now;
}
Impulse i => dac;
demo
![Page 14: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/14.jpg)
14
Advancing Time
• time stands still until you “advance” it• two semantics for advancing time
– chuck to now1::second +=> now;
– wait on eventevent => now;
• you are responsible for keeping up with time• time == sound
![Page 15: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/15.jpg)
15
Concurrency
• implemented using “shreds”– resemble non-preemptive threads
• automatically synchronized by time! • can work at low and high level
![Page 16: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/16.jpg)
16
“Strongly-timed”
• what it means:– programs have precise control over their own timing– sample-synchronous control may be asserted at any time
for any unit generator• transfer primary control over time…
– from implicit scheduling to the language– program flow == time flow
• staying “in the language”– express more from within the language
• provide natural modularity for on-the-fly programs
![Page 17: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/17.jpg)
17
ChucK Virtual Machine
![Page 18: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/18.jpg)
18
ChucK Virtual Machine
Code (“foo.ck”)
On-the-fly compiler
Process
shred shred shred
Shreduler
ChucK Virtual Machine
Audio Engine
I/O Manager
Execution Unit
Code (“foo.ck”, “bar.ck”)
![Page 19: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/19.jpg)
19
On-the-fly Programming(running with sonic scissors)
![Page 20: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/20.jpg)
20
(n.) the act of modifying the logic and structure of a program during runtime, for the purpose of rapid experimentation, and exerting expressive control. (also live coding)
on-the-fly programming:
![Page 21: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/21.jpg)
21The League of Automatic Composers (1974)
![Page 22: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/22.jpg)
22
demo
![Page 23: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/23.jpg)
23
The Audicle
![Page 24: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/24.jpg)
24
Hmm-1Editor
Compiler
VM
Debugger
Run-time
Develop
![Page 25: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/25.jpg)
25
Hmm-2Editor
Compiler
VM
DebuggerDevelop
Run-time
![Page 26: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/26.jpg)
26
demo
![Page 27: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/27.jpg)
27
Language Design Solutions
• make time itself computable– time and duration native types– allow a program to be “self-aware” in time– allow code to schedule itself
• synchronize concurrency by time or by events– automatically (by time)– manually (using events, also sample-synchronous)
• hide the mundane, expose true control.• do it on-the-fly!
![Page 28: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/28.jpg)
28
http://chuck.cs.princeton.edu/
![Page 29: 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.](https://reader035.fdocuments.us/reader035/viewer/2022062807/5697bfee1a28abf838cb96c8/html5/thumbnails/29.jpg)
29
=^