Download presentation
Presentation is loading. Please wait.
Published byWilfred Webster Modified over 9 years ago
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 =^
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.