Course Overview Programming Week #1 - 4/7/2006 CCRMA, Department - - PDF document

course overview
SMART_READER_LITE
LIVE PREVIEW

Course Overview Programming Week #1 - 4/7/2006 CCRMA, Department - - PDF document

Music 3SI: Introduction to Audio/Multimedia App. Course Overview Programming Week #1 - 4/7/2006 CCRMA, Department of Music Stanford University 4/7/06, Music 3SI, CCRMA, Stanford 1 2 Music 3SI Staff Programming Instructor: Woon


slide-1
SLIDE 1

Music 3SI: Introduction to Audio/Multimedia App. Programming

Week #1 - 4/7/2006 CCRMA, Department of Music Stanford University

1

4/7/06, Music 3SI, CCRMA, Stanford

Course Overview

2

4/7/06, Music 3SI, CCRMA, Stanford

Music 3SI

  • Programming
  • Audio / multimedia
  • Introductory course
  • SI: Student-Initiated course

P/NC only, 1 or 2 units

3

4/7/06, Music 3SI, CCRMA, Stanford

Staff

  • Instructor: Woon Seung Yeo

(officially: course leader)

woony@ccrma.stanford.edu http://ccrma.stanford.edu/~woony

  • Office hours: TBD (or by appointment)
  • Faculty sponsor: Prof. Jonathan Berger

4

4/7/06, Music 3SI, CCRMA, Stanford

Why?

  • From my personal experience:

not familiar with C/C++ (I hate pointers!) want/need to develop my own audio app. don’t really know how/where to begin need some “jumpstart”!

  • A “service” course for CCRMA

homework / projects for many CCRMA courses

5

4/7/06, Music 3SI, CCRMA, Stanford

CCRMA/Music Courses

  • 220c
  • 120 / 250a: Pd extern, OSC
  • 424: VST
  • 420: Stk
  • 220a / 320 / 421 / 422

6

slide-2
SLIDE 2

4/7/06, Music 3SI, CCRMA, Stanford

For Whom?

  • Rated E for everyone (hopefully...)
  • Especially...

“Hello World” C/C++ programmers musicians multimedia artists CCRMA students

  • Tutorials, demos, & templates

width > depth

7

4/7/06, Music 3SI, CCRMA, Stanford

Samples (1)

#include <stdio.h> main() { printf("This is a C program\n"); }

8

4/7/06, Music 3SI, CCRMA, Stanford

Samples (2)

#include <iostream> using namespace std; int main () { cout << "Hello World!"; return 0; }

9

4/7/06, Music 3SI, CCRMA, Stanford

Samples (3)

#include <iostream> using namespace std; int main () { int a,b,c; a=2; b=7; c = (a>b) ? a : b; cout << c; return 0; }

10

4/7/06, Music 3SI, CCRMA, Stanford

Samples (4)

#include <iostream> using namespace std; void increase (void* data, int size) { switch (size) { case sizeof(char) : (*((char*)data))++; break; case sizeof(int) : (*((int*)data))++; break; } } int main () { char a = 'x'; int b = 1602; increase (&a,sizeof(a)); increase (&b,sizeof(b)); cout << a << ", " << b << endl; return 0; } 11

4/7/06, Music 3SI, CCRMA, Stanford

Samples (5)

#include "WaveLoop.h" #include "FileWvOut.h" int main() { // Set the global sample rate before creating class instances. Stk::setSampleRate( 44100.0 ); WaveLoop input; FileWvOut output; input.openFile( "rawwaves/sinewave.raw", true );

  • utput.openFile( "hellosine.wav", 1, FileWrite::FILE_WAV, Stk::STK_SINT16 );

input.setFrequency( 440.0 ); for ( int i=0; i<40000; i++ )

  • utput.tick( input.tick() );

return 0; } 12

slide-3
SLIDE 3

4/7/06, Music 3SI, CCRMA, Stanford

OS & Computer

  • Mac OS X / Linux
  • CCRMA machines

Linux boxes Mac minis

  • btain CCRMA account TODAY!
  • Your own computer
  • No support for Windows

can be used, though...

13

4/7/06, Music 3SI, CCRMA, Stanford

Topics

  • C / C++ basics
  • Audio / sound
  • Audio plug-ins
  • GUI programming
  • Visual / multimedia
  • Network

14

4/7/06, Music 3SI, CCRMA, Stanford

Schedule

15

4/7/06, Music 3SI, CCRMA, Stanford

Week 1: Introduction

  • Today!
  • Course overview
  • Demos

16

4/7/06, Music 3SI, CCRMA, Stanford

Week 2: Audio Prog. (1)

  • C/C++ review
  • Overview of audio APIs

Stk (StkX) / RtAudio PortAudio, ALSA, OpenAL, CoreAudio

  • Audio programming basics
  • Assignment #1

17

4/7/06, Music 3SI, CCRMA, Stanford

Week 3: Audio Prog. (2)

  • Stk instrument / effect classes
  • Audio effect / DSP basics
  • Fast Fourier Transform

FFTW AltiVec

18

slide-4
SLIDE 4

4/7/06, Music 3SI, CCRMA, Stanford

Week 4: Plug-ins

  • Audio plug-in technologies

VST LADSPA, Audio Unit

  • VST SDK
  • Pd (& Max/MSP) externals

flext

  • Assignment #2

19

4/7/06, Music 3SI, CCRMA, Stanford

Week 5: GUI (1)

  • Guest lecturer from Apple
  • Cocoa API
  • GUI design: Interface Builder

Stk and Cocoa

20

4/7/06, Music 3SI, CCRMA, Stanford

Week 6: GUI (2)

  • Cocoa review

Stk and Cocoa

  • Qt API
  • Qt Designer

21

4/7/06, Music 3SI, CCRMA, Stanford

Week 7: Visuals

  • GUI review
  • Image processing basics
  • Core Image (Core Graphics)
  • OpenGL with Cocoa / Qt
  • The GIMP (and plug-ins)
  • Final project proposal

22

4/7/06, Music 3SI, CCRMA, Stanford

Week 8: Multimedia

  • Review of audio/visual programming
  • Possible mappings

sonification / visualization

  • Examples

SonART R.S.V.P. iTunes plug-ins

23

4/7/06, Music 3SI, CCRMA, Stanford

Week 9: Network & etc.

  • Audio streaming

InetWvIn / InetWvOut classes (Stk)

  • Open Sound Control (OSC)
  • Project help session

24

slide-5
SLIDE 5

4/7/06, Music 3SI, CCRMA, Stanford

Week 10: Presentation

  • 6/9/2006 (tentative)

25

4/7/06, Music 3SI, CCRMA, Stanford

Assignments, Project, & Grading

26

4/7/06, Music 3SI, CCRMA, Stanford

Assignments / Project

  • Assignment #1

command-line audio application

  • Assignment #2

GUI-based audio app., VST plug-in, or Pd extern

  • F.P.: anything about audio/MM, including

audio processing application / plug-in / extern sonification / visualization program audio streaming / sound control over network

27

4/7/06, Music 3SI, CCRMA, Stanford

Grading / Credit

  • P/NC only

no letter grade no incomplete

  • 1 or 2 units
  • Music grad students: BE CAREFUL!
  • Auditors are always welcome!

28

4/7/06, Music 3SI, CCRMA, Stanford

Related Courses

29

4/7/06, Music 3SI, CCRMA, Stanford

CCRMA/Music Courses

  • 220c
  • 120 / 250a: Pd extern, OSC
  • 424: VST
  • 420: Stk
  • 220a / 320 / 421 / 422

30

slide-6
SLIDE 6

4/7/06, Music 3SI, CCRMA, Stanford

CS

  • CS106b
  • CS107
  • CS193e

31

4/7/06, Music 3SI, CCRMA, Stanford

Course Website

32

4/7/06, Music 3SI, CCRMA, Stanford

Course Website

  • http://ccrma.stanford.edu/courses/3SI/
  • Stay tuned to announcements
  • Weekly schedule & readings
  • Links: lots of interesting stuffs
  • Templates / examples

33

4/7/06, Music 3SI, CCRMA, Stanford

Examples

34

4/7/06, Music 3SI, CCRMA, Stanford

Examples

  • Command-line audio applications
  • GUI-based audio applications
  • VST plug-in (compressor)
  • Image / graphics applications
  • Sonification / visualization
  • Network (OSC)

35

4/7/06, Music 3SI, CCRMA, Stanford

Finally...

  • Survey
  • CCRMA account application form

36