17
Session 1: Basics: Sound, Waves, and ChucK Programming Vitor Guerra Rolla Postdoctoral Fellow [email protected] Audio Programming with Chuck

Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Session 1: Basics: Sound, Waves, and ChucK Programming

Vitor Guerra RollaPostdoctoral Fellow

[email protected]

Audio Programming with Chuck

Page 2: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Mini-course Schedule

Session 1: Basics: Sound, Waves, and ChucK initiation

Session 2: ChucK Libraries and Arrays

Session 3: Sound File Manipulation

Session 4: Functions

Session 5: Unit Generators and Physical Models

Session 6: Multi-Threading and Concurrency

Session 7: Classes and Object-Oriented Programming

Today

10/01/2019

15/01/2019

17/01/2019

22/01/2019

24/01/2019

29/01/2019

Page 3: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Session 1: Basics: Sound, Waves, and ChucK initiation

Chuck introduction

Download and Installtion

Hello sine

Data types and variables

Time in Chuck

Control Structures: If and Else

Control Structures: For and While

Page 4: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Chuck Intro● Ge Wang

● Designed around time => now

● Parallel logic

● Simple-text => easy to read

● Real-time sound synthesis

● MIDI compatible

Page 5: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Download and Installation

chuck.stanford.edu

OSX / Windows / Linux

MiniAudicle– Text editor– Virtual machine monitor– Console Monitor

Page 6: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

MiniAudicle (Windows & Mac)

Page 7: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Hello Sine

Print to console

Hello Sine!

SinOsc

Digital Audio Converter => dac

=> some duration to now

cycles

gain

time

Page 8: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Hello Sine

Waveforms

SinOsc

SqrOsc

TriOsc

SawOsc

/*Comments*/

or //

Page 9: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Data Types and Variables

Print integers int and floating points float

Shortcuts

Importance of variables

Page 10: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Time in Chucktime and dur are native types

time: a point in time

dur: a length of time

Only by manipulating now => advance time

Page 11: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Time in Chuck

Special properties of now

when read gives us the current chuck time

when modified: moves time along in Chuck

Chucking a duration to now advances time while automatically suspending your code and letting sound generate

Until you advance time, you are working at a single point in time

Page 12: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Time in Chuck

Alarm example

Page 13: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Control Structures

If statement

operators

== , && , ||

!= , < , >=

Page 14: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Control Structures

else statement

Page 15: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Control Structures

for loop

Page 16: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Control Structures

while loop

Page 17: Session 1: Basics: Sound, Waves, and ChucK Programming Vitor …w3.impa.br/~vitorgr/livecode/minicourse/Slides-D1.pdf · Session 7: Classes and Object-Oriented Programming Today 10/01/2019

Next Class

Homework => install chuck

[email protected]

Session 2: ChucK Libraries and Arrays