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 Seung Yeo (officially: course leader) • Audio / multimedia � woony@ccrma.stanford.edu � http://ccrma.stanford.edu/~woony • Introductory course • Office hours: TBD (or by appointment) • SI: Student-Initiated course � P/NC only, 1 or 2 units • Faculty sponsor: Prof. Jonathan Berger 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 3 4 Why? CCRMA/Music Courses • From my personal experience: • 220c � not familiar with C/C++ (I hate pointers!) • 120 / 250a: Pd extern, OSC � want/need to develop my own audio app. • 424: VST � don’t really know how/where to begin � need some “jumpstart”! • 420: Stk • A “service” course for CCRMA • 220a / 320 / 421 / 422 � homework / projects for many CCRMA courses 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 5 6
For Whom? Samples (1) • Rated E for everyone (hopefully...) • Especially... � “Hello World” C/C++ programmers #include <stdio.h> � musicians main() � multimedia artists { � printf("This is a C program\n"); � CCRMA students } • Tutorials, demos, & templates � width > depth 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 7 8 Samples (2) Samples (3) #include <iostream> using namespace std; int main () #include <iostream> { using namespace std; int a,b,c; int main () a=2; { b=7; � cout << "Hello World!"; c = (a>b) ? a : b; � return 0; } cout << c; return 0; } 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 9 10 Samples (4) Samples (5) #include <iostream> #include "WaveLoop.h" using namespace std; #include "FileWvOut.h" void increase (void* data, int size) int main() { { switch (size) // Set the global sample rate before creating class instances. { Stk::setSampleRate( 44100.0 ); case sizeof(char) : (*((char*)data))++; break; case sizeof(int) : (*((int*)data))++; break; WaveLoop input; } FileWvOut output; } input.openFile( "rawwaves/sinewave.raw", true ); int main () output.openFile( "hellosine.wav", 1, FileWrite::FILE_WAV, Stk::STK_SINT16 ); { char a = 'x'; input.setFrequency( 440.0 ); int b = 1602; increase (&a,sizeof(a)); for ( int i=0; i<40000; i++ ) increase (&b,sizeof(b)); output.tick( input.tick() ); cout << a << ", " << b << endl; return 0; return 0; } } 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 11 12
OS & Computer Topics • Mac OS X / Linux • C / C++ basics • CCRMA machines • Audio / sound � Linux boxes • Audio plug-ins � Mac minis • GUI programming � obtain CCRMA account TODAY! • Visual / multimedia • Your own computer • Network • No support for Windows � can be used, though... 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 13 14 Week 1: Introduction • Today! • Course overview Schedule • Demos 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 15 16 Week 2: Audio Prog. (1) Week 3: Audio Prog. (2) • C/C++ review • Stk instrument / effect classes • Overview of audio APIs • Audio effect / DSP basics � Stk (StkX) / RtAudio • Fast Fourier Transform � PortAudio, ALSA, OpenAL, CoreAudio � FFTW • Audio programming basics � AltiVec • Assignment #1 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 17 18
Week 4: Plug-ins Week 5: GUI (1) • Audio plug-in technologies • Guest lecturer from Apple � VST • Cocoa API � LADSPA, Audio Unit • GUI design: Interface Builder • VST SDK � Stk and Cocoa • Pd (& Max/MSP) externals � flext • Assignment #2 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 19 20 Week 6: GUI (2) Week 7: Visuals • Cocoa review • GUI review � Stk and Cocoa • Image processing basics • Qt API • Core Image (Core Graphics) • Qt Designer • OpenGL with Cocoa / Qt • The GIMP (and plug-ins) • Final project proposal 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 21 22 Week 8: Multimedia Week 9: Network & etc. • Review of audio/visual programming • Audio streaming � InetWvIn / InetWvOut classes (Stk) • Possible mappings • Open Sound Control (OSC) � sonification / visualization • Examples • Project help session � SonART � R.S.V.P. � iTunes plug-ins 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 23 24
Week 10: Presentation • 6/9/2006 (tentative) Assignments, Project, & Grading 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 25 26 Assignments / Project Grading / Credit • Assignment #1 • P/NC only � command-line audio application � no letter grade � no incomplete • Assignment #2 • 1 or 2 units � GUI-based audio app., VST plug-in, or Pd extern • F.P.: anything about audio/MM, including • Music grad students: BE CAREFUL! � audio processing application / plug-in / extern • Auditors are always welcome! � sonification / visualization program � audio streaming / sound control over network 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 27 28 CCRMA/Music Courses • 220c • 120 / 250a: Pd extern, OSC Related Courses • 424: VST • 420: Stk • 220a / 320 / 421 / 422 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 29 30
CS • CS106b • CS107 Course Website • CS193e 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 31 32 Course Website • http://ccrma.stanford.edu/courses/3SI/ • Stay tuned to announcements Examples • Weekly schedule & readings • Links: lots of interesting stuffs • Templates / examples 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 33 34 Examples Finally... • Command-line audio applications • Survey • GUI-based audio applications • CCRMA account application form • VST plug-in (compressor) • Image / graphics applications • Sonification / visualization • Network (OSC) 4/7/06, Music 3SI, CCRMA, Stanford 4/7/06, Music 3SI, CCRMA, Stanford 35 36
Recommend
More recommend