Lecture Slides

Lecture Slides

Music 3SI: Introduction to Audio/Multimedia App. Programming Course Overview 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 ! [email protected] • Introductory course ! http://ccrma.stanford.edu/~woony • SI: Student-Initiated course • Office hours: TBD (or by appointment) ! 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. ! don’t really know how/where to begin • 424: VST ! 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 ! obtain CCRMA account TODAY! • GUI programming • Your own computer • Visual / multimedia • No support for Windows • Network ! 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 ! sonification / visualization • Open Sound Control (OSC) • 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 ! GUI-based audio app., VST plug-in, or Pd extern • 1 or 2 units • 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 • CS193e Course Website 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 • Weekly schedule & readings Examples • 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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    6 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us