Presentation is loading. Please wait.

Presentation is loading. Please wait.

0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman.

Similar presentations


Presentation on theme: "0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman."— Presentation transcript:

1 0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman

2 1

3 2 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

4 3 Code == Musical instrument

5 4

6 5 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

7 6 Chistory-1

8 7 Chistory-2

9 8 Chistory-3

10 9 Flexibility, readability trumps performance

11 10 Core Language Features

12 11 =>

13 12 Controlling Time // infinite time loop while( true ) { // set the next sample 1.0 => i.next; // advance time 100::ms +=> now; } Impulse i => dac; demo

14 13 Advancing Time time stands still until you “advance” it two semantics for advancing time –chuck to now 1::second +=> now; –wait on event event => now; you are responsible for keeping up with time time == sound

15 14 Concurrency implemented using “shreds” –resemble non-preemptive threads automatically synchronized by time! can work at low and high level

16 15 “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

17 16 ChucK Virtual Machine

18 17 ChucK Virtual Machine Code (“foo.ck”) On-the-fly compiler Process shred Shreduler ChucK Virtual Machine Audio Engine I/O Manager Execution Unit Code (“foo.ck”, “bar.ck”)

19 18 On-the-fly Programming (running with sonic scissors)

20 19 (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:

21 20 The League of Automatic Composers (1974)

22 21 demo

23 22 The Audicle

24 23 Hmm-1 Editor Compiler VM Debugger Run-time Develop

25 24 Hmm-2 Editor Compiler VM Debugger Develop Run-time

26 25 demo

27 26 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!

28 27 http://chuck.cs.princeton.edu/

29 28 =^


Download ppt "0 The old computing is about what computers can do… the new computing is about what people can do. - Ben Shneiderman."

Similar presentations


Ads by Google