DOC PREVIEW
Columbia COMS W4115 - Signal Analysis and Music Processing Language Proposal

This preview shows page 1 out of 3 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 3 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Signal Analysis and Music ProcessingLanguage ProposalMike Haskel, Mike Glass, Morgan Rhodes, and Navarun JagatpalFebruary 7, 2007SAMPL is a simple, func tional, strictly typed, potentially platform-independent,translated, high-performance signal processing language.1 IntroductionSAMPL is a language used for signal and music processing. It producesprograms that take in audio streams as input and outputs the modified audiostream along with text output. SAMPL also allows for the sampling ofthe audio file to be transparent to the user, with the user defining desiredbehavior for the program and the actual loop f or the sampling happening inthe background. As a program designed for the processing of music, it hasdomain-specific types. SAMPL has primitive types including time, frequency,and intensity, along with string and integer types. SAMPL has the potentialfor platform-independence as it will be translated to C. Possible applicationsof SAMPL are as simple as frequency filters, effects(such as reverb), and ascomplex as identifying and filtering a particular instrument.2 FunctionalSAMPL is a functional programming language in which programs define theoutput stream in terms of various operations on the input stream. Programsconsist of a series of recursive definitions. The language provides functionsfor sampling the input stream, such as1frequency(200 hz, 5 s)rmsvolume(500 ms)i.e. samples of the input which vary over timeandclip(stream, 50db)mix(stream1, stream2)highpass(stream, 400hz)i.e. functions for mutating streams to produce other streams3 Strictly TypedSAMPL is strictly typed, providing types directly related to signal processingsuch as frequency, time, and intensity. It also provides string and integertypes. Programs specify values of these types by specifying units, as in300 hz, 20 db, or 50.3 ms. The language supports basic operations such ascomparing, adding, or scaling values of a given type, and provides functionsfor converting between types in meaningful ways (such as frequency–time).4 Control FlowOne of the key features of SAMPL is that the process of scanning and sam-pling input is transparent to the user. Ordinarily, a program for signal pro-cessing would need to implement a tight loop which encapsulates the processof reading the input and updating state as necessary. This process is concep-tually distinct from the specification of the audio transformations and usersshouldn’t need to implement it. To accommodate this, SAMPL implementsthis loop in the background, and a program’s control flow is based uponconstructs for applying filters when certain conditions hold.Such constructs include “if-then-else”, which takes on a different valuedepending on some condition, as inif rmsvolume(500 ms) > 60 dblowpass(input, 5000 hz)elseinputend2which applies a low-pass filter to the input when and only when the input issufficiently loud. Another important construct is “wait-until”, w hich transi-tions between values whe n specified conditions are met, as influte_playing =waitfalseuntil flute_attacktrueuntil flute_dropoffflute_playingendwhich defines fluteplaying to be false until a flute starts to play, then trueuntil it stops, then repeating as if from the beginning. These control struc-tures limit the layers of indirection between the programs and their intendedeffects.5 Possible ApplicationsSAMPL has a number of possible applications, ranging from simple to com-plex processing tasks. Simple applications in SAMPL will allow low or highpass filters to be applied to the stream, outputting the filtered stream. An-other application will be applying reverb to the input stream. These appli-cations can be made more complex in applying a high pass filter whenever athere is a frequency lower than a specified frequency and apply reverb onlywhen the intensity exceeds a certain value. SAMPL will also make it possibleto write applications to recognize particular instruments which will make itpossible to filter out the flute, or only filter out the flute while there is atrumpet playing. Programs generated by the SAMPL compiler are them-selves inherently modular, as users can easily pipe output from one programto


View Full Document

Columbia COMS W4115 - Signal Analysis and Music Processing Language Proposal

Documents in this Course
YOLT

YOLT

13 pages

Lattakia

Lattakia

15 pages

EasyQL

EasyQL

14 pages

Photogram

Photogram

163 pages

Espresso

Espresso

27 pages

NumLang

NumLang

6 pages

EMPATH

EMPATH

14 pages

La Mesa

La Mesa

9 pages

JTemplate

JTemplate

238 pages

MATVEC

MATVEC

4 pages

TONEDEF

TONEDEF

14 pages

SASSi

SASSi

16 pages

JTemplate

JTemplate

39 pages

BATS

BATS

10 pages

Synapse

Synapse

11 pages

c.def

c.def

116 pages

TweaXML

TweaXML

108 pages

Load more
Download Signal Analysis and Music Processing Language Proposal
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Signal Analysis and Music Processing Language Proposal and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Signal Analysis and Music Processing Language Proposal 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?