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.

Slides:



Advertisements
Similar presentations
JQuery MessageBoard. Lets use jQuery and AJAX in combination with a database to update and retrieve information without refreshing the page. Here we will.
Advertisements

Searching for Data Relationship between searching and sorting Simple linear searching Linear searching of sorted data Searching for string or numeric data.
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.
Multiplication Staff Tutorial. In this tutorial we run through some of the basic ideas and tricks in multiplying whole numbers. We do a bit of stuttering.
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
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.
Downloading and Installing AutoCAD Architecture 2015 This is a 4 step process 1.Register with the Autodesk Student Community 2.Downloading the software.
Proposal 13 HUMAN CENTRIC COMPUTING (COMP106) ASSIGNMENT 2.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
Lesson 4: Percentage of Amounts.
Graphical Tree-Based Scientific Calculator: CalcuWiz Will Ryan Christian Braunlich.
Do’s and Don’t Of Web Design BY Julia Butterfield.
ITP © Ron Poet Lecture 1 1 IT Programming Introduction.
1 Spidering the Web in Python CSC 161: The Art of Programming Prof. Henry Kautz 11/23/2009.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Adding Content To Your Faculty Page 1.Login 2.Create your Faculty Page 3.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
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.
Algorithms and Programming
C O M P U T E R G R A P H I C S Jie chen Computer graphic -- OpenGL Howto.
Welcome to my conference! February th grade Guadalupe.
Program Development Life Cycle (PDLC)
Client Side Programming with JavaScript Why use client side programming? Web sides built on CGI programs can rapidly become overly complicated to maintain,
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
Welcome to the CRE Programming Club! Robert Eckstein and Robert Heard.
DEBUGGING. BUG A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected.
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”
Downloading and Installing Autodesk Inventor Professional 2015 This is a 4 step process 1.Register with the Autodesk Student Community 2.Downloading the.
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.
CSE 351 GDB Introduction. Lab 1 Status? How is Lab 1 going? I’ll be available at the end of class to answer questions There are office hours later today.
Introduction to Python Lesson 1 First Program. Learning Outcomes In this lesson the student will: 1.Learn some important facts about PC’s 2.Learn how.
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.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Audio Timestretching Adam Lederer Prototype Slideshow.
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,
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,
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
Aims: To learn about some simple sorting algorithms. To develop understanding of the importance of efficient algorithms. Objectives: All:Understand how.
Use of our Method in Engineering Long Ago A hundred years ago the calculation of big numbers was extremely difficult because not many methods were developed.
RESEARCH PROJECTS Rules to Follow When Doing Research.
In today’s lesson we will be looking at: what we mean by the software development lifecycle the phases in the lifecycle We will focus particularly on testing:
Mr Barton’s Maths Notes
CSE 374 Programming Concepts & Tools
Lecture 3: Organizing Teams
Mr F’s Maths Notes Number 7. Percentages.
A451 Theory – 7 Programming 7A, B - Algorithms.
CS1010 Programming Methodology
Adam Lederer – Comp Sys Techlab 2006
Teaching Computing to GCSE
Teaching Computing to GCSE
CS Introduction to Operating Systems
Fundamentals of Data Representation
Applied Software Project Management
Git CS Fall 2018.
Mr Barton’s Maths Notes
GUI Design 24-Feb-19.
Year 11 & 12 Maths from a students’ viewpoint
Advanced Tips and Tricks
Presentation transcript:

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 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 I call it “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. 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, and 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/harmonic group of each frequency signature, and the audio can then be summed back together The going was tough, initially. 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. You probably haven't heard of it – that's because it's pretty underground and rather new (in fact, extremely new to the Linux). The debugging process was difficult – there were perplexing compiler errors in the actual library code, which I found very surprising. Coding was rather smooth 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, 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 will 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 lots and lots of words written down to document whatever's happening – if you're not doing anything particularly important or interesting, then it's still your duty to fill up the page with boring and unimpressive information, in order to keep Mr. Latimer informed so that he can determine your grade. One of my prototypes