Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 4: Interfaces Ken Greenebaum.

Slides:



Advertisements
Similar presentations
Technotronics GCECT '091 Decode C This is a C Programming event, where you will be given problems to solve using C only. You will be given a Linux system.
Advertisements

Android Application Development A Tutorial Driven Course.
ONYX RIP Version Technical Training General. Overview General Messaging and What’s New in X10 High Level Print and Cut & Profiling Overviews In Depth.
ECE 551 Digital System Design & Synthesis Lecture 08 The Synthesis Process Constraints and Design Rules High-Level Synthesis Options.
© 2003 Xilinx, Inc. All Rights Reserved Looking Under the Hood.
Precision in Measurements
Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 5: The Ring Buffer Ken Greenebaum.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
1 Real-Time System Design Developing a Cross Compiler and libraries for a target system.
Storage System: RAID Questions answered in this lecture: What is RAID? How does one trade-off between: performance, capacity, and reliability? What is.
MSS & AMS Name and configure MIDI controllers, devices and sound modules. Control their routing to Pro Tools MSS - Configurations can be imported or exported.
Calculations with Significant Figures
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
Windows audio architecture Win MM Application DirectSound Application SysAudio.SYS Kmixer.SYS WinMM.DLLDSound.DLL Device Drive Container USB Device Driver.
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
1.07 Accuracy and Precision
Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 17:Wavetable Synthesis Ken Greenebaum.
Future Work Software Analysis and Design  20% of Americans age 50 and older play an instrument.  21.7% of adults over age 75 suffer from vision loss.
01. Introduction to Android Prof. Oum Saokosal Master of Engineering in Information Systems, South Korea
Temple University Goals : 1.Down sample 20 khz TIDigits data to 16 khz. 2. Use Down sample data run regression test and Compare results posted in Sphinx-4.
Chapter 11 Adding Sound and Video. Chapter 11 Lessons 1.Work with sound 2.Specify synchronization options 3.Modify sounds 4.Use ActionScript with sound.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
Significant Figure Notes With scientific notation too.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
LEANMAIL PROTECTION PLANS Automation meets working by design Copyright Atrendia 2015 Inbox480 LeanMail Inbox480 Protection Cc: LeanMail Cc: Protection.
FRACTIONS! DELGADO ADULT EDUCATION UNIT ON FRACTIONS.
Math and Measurement. Significant Figures Significant Zeros 1.Leading zeros are never significant 2.Trailing zeros only count if there’s a decimal point.
Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 6: Wrapped I/O Ken Greenebaum.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
Chapter 4 – Threads (Pgs 153 – 174). Threads  A "Basic Unit of CPU Utilization"  A technique that assists in performing parallel computation by setting.
Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 18:Noise Ken Greenebaum.
Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 14: Envelopes Ken Greenebaum.
Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 20:Spectral Filtering Ken Greenebaum.
End Show © Copyright Pearson Prentice Hall Measurements and Their Uncertainty > Slide 1 of 48 Significant Figures in Calculations Significant Figures in.
Basic UNIX Concepts. Why We Need an Operating System (OS) OS interacts with hardware and manages programs. A safe environment for programs to run is required.
Decimal Operations Jeopardy
Chemistry: An Introduction to General, Organic, and Biological Chemistry, Eleventh Edition Copyright © 2012 by Pearson Education, Inc. Chapter 1 Chemistry.
Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 9: Panning/Balance Ken Greenebaum.
Rounding  We need to round numbers because a calculator often gives an answer with more digits than are justified by the precision of the measurements.
I’m Thinking of a Number
Networks, Part 2 March 7, Networks End to End Layer  Build upon unreliable Network Layer  As needed, compensate for latency, ordering, data.
03/30/031 ECE Digital System Design & Synthesis Lecture Design Partitioning for Synthesis Strategies  Partition for design reuse  Keep related.
RTP Functionalities for RTCWEB A combined view from the authors of draft-cbran-rtcweb-media-00 draft-cbran-rtcweb-media-00 draft-perkins-rtcweb-rtp-usage-02.
C Programming Lecture 3 : C Introduction 1 Lecture notes : courtesy of Woo Kyun and Chang Byung-Mo.
Web Server Security: Protecting Your Pages NOAA OAR WebShop 2001 August 2 nd, 2001 Jeremy Warren.
Layers Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
1 MIT 5316 Web-Based Computing Lecture 1. 2 Welcome Introduction Syllabus.
SIE 515 Universal Design Lecture 9.
Fundamental of Databases
Part 2 Significant Figures with Calculations
Significant Figures Why significant figures are important
Precision in Measurements
Significant Figures Why significant figures are important
Significant Figures Box and Dot Method.
Introduction Python is an interpreted, object-oriented and high-level programming language, which is different from a compiled one like C/C++/Java. Its.
Please find your NEW seat. Take out your planners!
Chapter 2: Operating-System Structures
Application Development A Tutorial Driven Course
1. Open Visual Studio 2008.
CS703 - Advanced Operating Systems
The performance requirements for DSP applications continue to grow and the traditional solutions do not adequately address this new challenge Paradigm.
Java Programming Introduction
TOPIC: Significant Figures in calculations AIM: How do we add, subtract, multiply and divide measurement in significant figures? DO NOW: ( 5.
Outline Device Management Device Manager Design Buffering
introduction to Linux/Unix environment
It’s the middle of the week!
Presentation transcript:

Copyright 2004 Ken Greenebaum Introduction to Interactive Sound Synthesis Lecture 4: Interfaces Ken Greenebaum

Copyright 2004 Ken Greenebaum Assignment Clarifications: Clarifications:getopt() GNU and freegetopt versions GNU and freegetopt versions Will provide a library soon Will provide a library soon Optimization should not obfuscate Optimization should not obfuscate For now if you want to show off provide two copies (would be a shame to loose points) For now if you want to show off provide two copies (would be a shame to loose points) Error handling optional (this time!) Error handling optional (this time!)

Copyright 2004 Ken Greenebaum Assignment Standardize Pi Standardize Pi SIGFIGS? SIGFIGS? 2000 has how many SIGFIGS? 2000 has how many SIGFIGS?

Copyright 2004 Ken Greenebaum Significant Figures 1 sigfig 2x10^3 1 sigfig 2x10^3 Between 1x10^3 and 3x10^3 Between 1x10^3 and 3x10^ sigfig 2.0x10^3 2 sigfig 2.0x10^3 Between 1.9x10^3 and 2.1x10^3 Between 1.9x10^3 and 2.1x10^

Copyright 2004 Ken Greenebaum Significant Figures When multiplying or dividing When multiplying or dividing sigfigs = lowest sigfigs for any term sigfigs = lowest sigfigs for any term Ex: (12.34x12.1)/9.1 = 16 Ex: (12.34x12.1)/9.1 = 16 When subtracting When subtracting round to least number of decimal places ex: round to least number of decimal places ex: = = 58.03

Copyright 2004 Ken Greenebaum Significant Figures Extra Credit Question: Extra Credit Question: How will the value of Pi affect the output of our assignment? How will the value of Pi affect the output of our assignment?

Copyright 2004 Ken Greenebaum Assignment Clarifications: Clarifications: Output should be a stream of values Output should be a stream of values Emitted faster than realtime Emitted faster than realtime If played at the framerate would generate the desired sinewave If played at the framerate would generate the desired sinewave

Copyright 2004 Ken Greenebaum Assignment Motivation: Motivation: First synthesizer First synthesizer Gets us all programming Gets us all programming Leads us to synthesizing audio in real-time Leads us to synthesizing audio in real-time Next we will interface to PABLIO Next we will interface to PABLIO

Copyright 2004 Ken Greenebaum Assignment How many have started the assignment? How many have started the assignment? Completed the assignment? Completed the assignment? Questions? Questions? Understand sampling? Understand sampling? Understand quantization? Understand quantization?

Copyright 2004 Ken Greenebaum Simple Interfaces: Small (Hello) World Questions on the reading? Questions on the reading?

Copyright 2004 Ken Greenebaum Simple Interfaces: Small (Hello) World My philosophy of UI design My philosophy of UI design Smart defaults Smart defaults Make often used things easy Make often used things easy The 80% solution The 80% solution Make infrequently used things possible Make infrequently used things possible Limit redundancy Limit redundancy Should be clear which functions to use Should be clear which functions to use Can create helper libraries Can create helper libraries

Copyright 2004 Ken Greenebaum Simple Interfaces: Small (Hello) World My philosophy of UI design My philosophy of UI design Don’t design baroque interfaces Don’t design baroque interfaces Understand what it is you are providing an interface Understand what it is you are providing an interface “Hello World” should fit on one screen! “Hello World” should fit on one screen!

Copyright 2004 Ken Greenebaum Simple Interfaces: Small (Hello) World My philosophy of UI design My philosophy of UI design A good design radiates features from the core A good design radiates features from the core Adds interfaces at appropriate layers Adds interfaces at appropriate layers Doesn’t enforce uniformity at the top layer Doesn’t enforce uniformity at the top layer Spackling over cracks Spackling over cracks Example: Example: Implementing Symbolic links in the filesystem Implementing Symbolic links in the filesystem Or in the shell Or in the shell

Copyright 2004 Ken Greenebaum Simple Interfaces: Small (Hello) World Great examples: Great examples: UNIX/POSIX UNIX/POSIX A file is a file (a driver is a file) A file is a file (a driver is a file) All files have common interface All files have common interface open, read, write, seek, ioctl open, read, write, seek, ioctl Blocking I/O Blocking I/O STDIO (standard I/O) STDIO (standard I/O)

Copyright 2004 Ken Greenebaum PABLIO Portable Portable Audio Audio Blocking Blocking I/O I/O

Copyright 2004 Ken Greenebaum PABLIO Developed for AudioAnecdotes examples Developed for AudioAnecdotes examples Very easy to program Very easy to program Requires minimal boilerplate Requires minimal boilerplate Portable across Portable across Windows, MacOSX, Linux Windows, MacOSX, Linux

Copyright 2004 Ken Greenebaum PABLIO Manages flow control Manages flow control High and low water marks High and low water marks Auto blocking Auto blocking Performs quantization Performs quantization

Copyright 2004 Ken Greenebaum PABLIO Cons Cons Built on layers Built on layers Latencies additive Latencies additive Only as good as the worst layer Only as good as the worst layer Missing opportunities to interface to OS Missing opportunities to interface to OS

Copyright 2004 Ken Greenebaum PABLIO Example: #include “pablio.h” void main(void) { short sample[1000]; PABLIO_Stream *in, *out; OpenAudioSteam(&in, 8000, paInt8, PABLIO_READ); OpenAudioSteam(&out,8000, paInt8, PABLIO_WRITE); while(1){ ReadAudioStream( in, sample, 1000); ReadAudioStream( in, sample, 1000); WriteAudioStream(out, sample, 1000); WriteAudioStream(out, sample, 1000); }}

Copyright 2004 Ken Greenebaum PABLIO and Interface design We are going to use PABLIO for our next assignment We are going to use PABLIO for our next assignment Questions? Questions?

Copyright 2004 Ken Greenebaum Readings: Audio Anecdotes Volume2 Audio Anecdotes Volume2 Wrapped I/O Wrapped I/O Audio Anecdotes Audio Anecdotes Perceivable Auditory Latencies Perceivable Auditory Latencies (finish assignment and #6 before this reading) (finish assignment and #6 before this reading)

Copyright 2004 Ken Greenebaum Next class: More advanced I/O More advanced I/O Perception of Latency Perception of Latency Next assignment Next assignment