Adam Lederer – Comp Sys Techlab 2006 Audio Timestretching The objective of the project is to lengthen a selection of digital audio, so that it is slower,

Slides:



Advertisements
Similar presentations
Searching for Data Relationship between searching and sorting Simple linear searching Linear searching of sorted data Searching for string or numeric data.
Advertisements

CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
2-May-15 GUI Design. 2 HMI design There are entire college courses taught on HMI (Human-Machine Interface) design This is just a very brief presentation.
1-1 Welcome to: CSC225 Introduction to Computer Organization Paul Hatalsky.
Mr Barton’s Maths Notes
Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Chapter 12 Separate Compilation Namespaces Simple Make Files (Ignore all class references.
1 CSI 101 Elements of Computing Fall 2009 Lecture #4 Using Flowcharts Monday February 2nd, 2009.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
© 2007 Pearson Education, Inc. publishing as Longman Publishers Chapter 2: Active Reading and Learning Efficient and Flexible Reading, 8/e Kathleen T.
SM3121 Software Technology Mark Green School of Creative Media.
Proposal 13 HUMAN CENTRIC COMPUTING (COMP106) ASSIGNMENT 2.
Lesson 4: Percentage of Amounts.
Effective Questioning in the classroom
Graphical Tree-Based Scientific Calculator: CalcuWiz Will Ryan Christian Braunlich.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
ITP © Ron Poet Lecture 1 1 IT Programming Introduction.
 Main Idea/Point-of-View  Specific Detail  Conclusion/Inference  Extrapolation  Vocabulary in Context.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
What you need to know about this class A powerpoint syllabus.
Testing Hypotheses Tuesday, October 28. Objectives: Understand the logic of hypothesis testing and following related concepts Sidedness of a test (left-,
SLOW DOWN!!!  Remember… the easiest way to make your score go up is to slow down and miss fewer questions  You’re scored on total points, not the percentage.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1-1 Welcome to: CSC225 Introduction to Computer Organization.
Using the API. Learning Objectives By the end of this lecture, you should be able to: – Identify what is meant by an ‘API’ – Know how to look up functions.
A presentation by Nipun Sharma Time dilation is difficult to explain simply, and has different explanations according to the setting. Best put, it is.
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
The Web. How does the Web work? The web is a collection of networks, starting near your home or office and expanding until we reach the global network.
Program Development Life Cycle (PDLC)
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
Adam Lederer – Comp Sys Techlab 2006 The Project Audio Timestretching The objective of the project is to lengthen a selection of digital audio, so that.
© 2005 Pearson Education, Inc. publishing as Longman Publishers Chapter 2: Active Reading and Learning Efficient and Flexible Reading, 7/e Kathleen T.
9/2/ CS171 -Math & Computer Science Department at Emory University.
1 What to do before class starts??? Download the sample database from the k: drive to the u: drive or to your flash drive. The database is named “FormBelmont.accdb”
Introduction to programming in the Java programming language.
UNIT 13 Separate Compilation.
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
This document gives one example of how one might be able to “fix” a meteorological file, if one finds that there may be problems with the file. There are.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Gasp! An Essay! What do I do now?. Attitude is Everything! Don't worry! If you feel overwhelmed by the assignment, think of it as a series of small, manageable.
English 51 Monday, March 11, 2013 Melissa Gunby. Freewrite Would you be a good candidate for Battle School? Why or why not?
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
Adding and Subtracting Decimals © Math As A Second Language All Rights Reserved next #8 Taking the Fear out of Math 8.25 – 3.5.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Audio Timestretching Adam Lederer Prototype Slideshow.
Student introduction Name:Briana Cone Grade:7 th Courses with FLVS: Math with Ms.Jones, World Geography with Mr.Marrocco, Science with Mrs.Reinke, Language.
Theories of Poverty. The Culture of poverty  Oscar Lewis developed theory  Believes that living in poverty creates its own culture  This culture is.
© Peter Andreae Java Programs COMP 102 # T1 Peter Andreae Computer Science Victoria University of Wellington.
“Lab. 5” – Updating Lab. 3 to use DMA Test we understand DMA by using some simple memory to memory DMA Make life more interesting, since hardware is involved,
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
The inference and accuracy We learned how to estimate the probability that the percentage of some subjects in the sample would be in a given interval by.
St. Mary’s Catholic School, Mayville Mrs. Kaiser, Technology Teacher.
OPERATING SYSTEMS (OS) By the end of this lesson you will be able to explain: 1. What an OS is 2. The relationship between the OS & application programs.
DSMA 0393/1414 Comments of Students. Co-requisite Model Student Comments Students were given this request on their final examination: Write a statement.
SMART Goal Specific: specific with details
Expanding and Factoring Algebraic Expressions
A451 Theory – 7 Programming 7A, B - Algorithms.
CS1010 Programming Methodology
CS1010 Programming Methodology
Adam Lederer – Comp Sys Techlab 2006
Teaching Computing to GCSE
Teaching Computing to GCSE
Functions Inputs Output
Fundamentals of Data Representation
Applied Software Project Management
GUI Design 24-Feb-19.
Data Structures & Algorithms
Year 11 & 12 Maths from a students’ viewpoint
Advanced Tips and Tricks
Presentation transcript:

Adam Lederer – Comp Sys Techlab 2006 Audio Timestretching The objective of the project is to lengthen a selection of digital audio, so that it is slower, but so that it also maintains the subjective properties of the un-processed audio and contains a minimum of defects. The Algorithm The Progress “Frequency Signature Identification and Progressive Disintegration” Most current timestretching algorithms work best on monophonic material – as such, I decided that the main focus of my research would be to separate individual frequency elements from each other. To do this, I decided I would build “frequency signatures” by going to transients (i.e. hits, notes) and identifying the frequencies which appear or change at these locations. The algorithm consists of four parts. After an initial pass-through to build initial signatures, the second pass transfers all of the appropriate signals to the signatures of best fit. In the third pass, what's left (which should be any signals that enter gradually and without transients) is divided similarly into frequency signatures. The fourth pass separates these. After all (or most) of the amplitude of the signal is transferred into individual frequency signature audio samples, a comparatively simple interpolation in the frequency domain can be applied to each harmonic of each frequency signature, and the audio can then be summed back together I decided to use an audio/graphical interface library called JUCE, because it's cross-platform, but is a library for C++, so can perform faster real-time calculation than Java. The reader probably hasn't heard of it – that's because it's pretty underground and rather new (in fact, extremely new to the Linux). The going was tough, initially. The debugging process was difficult – there were perplexing compiler errors in the actual library code, which I found very surprising. Coding proceeded at a rather smooth pace after I got the library compiled and the demo project linked and compiled correctly (this took, I believe, just the 1 st quarter and a little bit of the 2 nd ). I created several demo projects and prototypes (see screenshot in upper left), each time exploring a different segment of the JUCE API and protocol. There were the phantom segmentation faults and the confusing hours of reading the documentation, but not anything I couldn't handle. A big snag- up came when I tried to implement audio, involving a confusing mix-up with documentation and library versioning and multiple attempts to create a simple audio player. Then time was up for the project, at least until late in 4 th quarter – what you're reading right now is part of a long process of content creation and paperwork that currently precludes the necessity to get farther with the project. I hope this information will give you a good sense of the techlab timeframe! Comp-sys Techlab Tips! Many of you reading this poster will be endeavoring to complete a comp-sys techlab project of your own some time in the future. Here are some tips that some of you may find useful (and some may not): - Use Java Why use Java? Why, for a number of good reasons! Putting aside all actual language preferences or capabilities, Java may make life easier for you in a number of ways: 1. It's largely self-contained. That means that, for most purposes, you won't have to scout out, research, download, compile, install, learn to use, debug or beta-test any external libraries or API's – and those activities can bog up roughly 100% of your time. 2. You're working in the system provided by the computer systems lab, not in the comfort of your home system – you don't have much control over anything, and you don't have much processor power to work with. Java and all its fixings are already set up for you here, and you won't have to worry about finding an IDE or messing with the settings – and if something in Java breaks, dozens of people will notice and complain. If you use C++ and want a good IDE, or don't want to have to wait for the sys-admins to come and fix things that you don't have access to, you're going to have to have a rather good grasp of Linux to be able to install and maintain everything you need in your home directory. 3. Chances are, there will be people in your class who are much, much, much better and more experienced coders than you are. Chances are, they know Java, and are willing to help you – and you don't want to be stuck trying to explain the intricacies of this or that obscure library to someone before you can get the help you need. - Keep Track The most important thing is that you have enough words written down to document whatever's happening – even if you feel you're not doing anything particularly important or reaching interesting conclusions, you still need to document as much as you possibly can so that your supervisor can assess your performance. You have to have written, concrete material – otherwise, your grade could be anything, and it's probably not something you want to take a chance with. The frequencies highlighted in red are new at the transients, and constitute a frequency signature – the frequencies of this signature are removed, in accordance with its varying amplitudes and shifting frequencies