A language for auralizing data. MOTIVATION  Visual input overload!  Automatic musical scoring.

Slides:



Advertisements
Similar presentations
Yaser Zhian Dead Mage IGDI, Workshop 10, May 30 th -31 st, 2013.
Advertisements

Using Multimedia on the Web Enhancing a Web Site with Sound, Video, and Applets.
Video Game Design Lesson 1. Game Designer Person involved in the development of a video game Person involved in the development of a video game Usually.
Int 2 Multimedia Revision. Digitised Sound Analogue sound recorded from person, or real instruments.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
Object Oriented Programming in Java George Mason University Fall 2011
Ball Basic Athletic Logic Language. T he T eam Cipta Herwana - Project Manager Daniel Lasry - Language Guru Nathan Miller - System Architect Sam Lee -
Listen/Java Edward L. Gilmore II Bryan P. Strait Aditya P. Mathur Purdue University
1 Music in Introductory Object Oriented Programming Viera K. Proulx College of Computer and Information Science Northeastern University, Boston MA, USA.
 Guido d’Arezzo was the first to create music notation  Finale version 1.0 was created in 1988.
WPSM Programming Language A simple language that transform simple data structure into complex xML format Wai Y. Wong Peter Chen Seema Gupta Miqdad Mohammed.
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
Yenta A Simple Recommendation Language Kenny Rivera - Tester Becky Tang – System Architect Shylah Weber – Systems Integrator Anthony Yim – Project Manager.
Dynamic Tainting for Deployed Java Programs Du Li Advisor: Witawas Srisa-an University of Nebraska-Lincoln 1.
C#: Project Cool Arthur Ketchel II Keith Francisco Chris McInnis.
ESL - A language for Social Networks Team : Fantastic Four Ashwath Narsimhan – Project Manager Jyotsna Sebe – System Architect Shailesh Saroha – System.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
1 My Beats Final Presentation Mike Smith, Karen Tipping, Dylan Barrett.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
B atch I mage P rocessing L anguage Programming Language and Translator Final Project (Team 15)
Java Security Updated May Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security.
ANTLR.
Welcome to The Music Jungle By Dean Smith And Cathy Ritter.
Introduction to Interactive Media 10: Audio in Interactive Digital Media.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
M1G Introduction to Programming 2 4. Enhancing a class:Room.
컴퓨터 전자음악 입문 10 주차 Tutorials 4 Editing MIDI. Tutorial Tutorial 1 - Basics Tutorial 2 - Recording MIDI Tutorial 3 - Recording Digital Audio Tutorial 4 -
THE HOG LANGUAGE A scripting MapReduce language. Jason Halpern Testing/Validation Samuel Messing Project Manager Benjamin Rapaport System Architect Kurry.
WHAT IS TRANSCRIBE! ? Transcribe! is computer software that was designed to help people transcribe music from recordings. Transcribe- Learning to play.
Chapter 1.4 Programming languages Homework Due: Monday, August 11, 2014.
Home entertainment. The hardware, software and techniques used for sound MP3 players: play music files stored digitally in MP3 file format are small and.
BIT 1003 – Presentation 7. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Boardr The Racing Board Game Creation Language. Project Manager: Eric Leung Language and Tools Guru: Shensi Ding System Architect: Seong Jin Park System.
The TASKADE Programming Language by TEAM 9 Andrey Dimitrov - Project manager Christopher Riedered - Language Guru Avner May - System Architect Joyce Kim.
Intro to Music Theory What is Music Theory?  What is music?  We know it when we hear it... But objectively what is it? Is this music?
AtoCC Compiler Construction Workshop Michael Hielscher Aalborg, Creating an Interpreter and Compiler for a music language ML.
CoZy: A very cool language for temperature control Project Manager: Hannah Keiler Language and Tools Guru: Nate Booth System Architect: Giovanni Ortuno.
Introduction to Java CS1316: Representing Structure and Behavior.
CHAPTER 3 GC Java Fundamentals. 2 BASICS OF JAVA ENVIRONMENT  The environment  The language  Java applications programming Interface API  Various.
Csound. a language for describing sound. General History. Developed by Barry Vercoe at MIT. Extended by too many people to mention. Based initially on.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
CS 153: Concepts of Compiler Design August 26 Class Meeting Department of Computer Science San Jose State University Fall 2015 Instructor: Ron Mak
GarageBand Jessica Moidel Intro to Music Technology Final Presentation April 21, 2009.
Ensemble Playing How can you do it well? - Scott Hartman.
For my final project I am going to use the SDRAM. I am uploading 9 files that exceed the limit of the internal memory RAM. I am going to manipulate the.
Celluloid An interactive media sequencing language.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
. n COMPILERS n n AND n n INTERPRETERS. -Compilers nA compiler is a program thatt reads a program written in one language - the source language- and translates.
Dharmen Mehta (Project Manager) Nimai Buch (Language Guru) Yash Parikh (System Architect) Amol Joshi (System Integrator) Chaitanya Korgaonkar (Verifier.
CSC 1010 Programming for All Lecture 2 Introduction to Python Some material based on material from Marty Stepp, Instructor, University of Washington.
David LOU – Project Manager Markus SCHANTA – Language Guru Long CHEN – System Architect Xiaolong JIANG – System Integrator Jingbo YANG – Tester & Validator.
JAVA Ekapap Julnonyang When it was implemented? Developed by Sun Microsystems. The first public implementation was Java 1.0 in 1995 The language.
Why you should buy SEL. The Stock Exchange Language Alexander Golec (akg2136) Dan Mechanic (dm2474) Eric Powders (ejp2127) Nisha Ranga (nr2399) Noah Stephens-Davidowitz.
Multimedia Composition Sabrina Pena Young
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
Copyright © Curt Hill Simple I/O Input and Output using the System and Scanner Objects.
Multi Channel Music Recognition for an Electric Guitar.
THRLL Programming Language Aimee Sanchez Neetha Sebastion Kapil Verma Hemanth Murthy Michael Seaman.
27656 (v1) Demonstrate and apply introductory knowledge of music technology equipment and techniques MUSIC Level 1Credits 4.
Introduction to Programming 1 1 2Introduction to Java.
Visual Linker ADD presentation. slide 2  Project Overview And Vision  Project System View  The System Life Cycle  Data Model and.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Automation Engr. Faisal ur Rehman CE-105T Spring 2007.
Computer-Generated Sound Final Project
Before You Begin Nahla Abuel-ola /WIT.
Internet and Java Foundations, Programming and Practice
IV.3 Communication IV.3.1 (We Nov 01) MIDI.
Vocabulary Intro.
Sound Processing with Pure Data
A language for auralizing data
Presentation transcript:

A language for auralizing data

MOTIVATION  Visual input overload!  Automatic musical scoring

UPBEAT  A flexible language to auralize input data  aur al iz a tion (n):  1. the act or process of interpreting in aural or musical terms  2. the process of converting data into music  Previous attempts haven’t sounded great

Musician "StockMusician" { phrase tune = "tune.mid"; "ChangePitch" { Change Pitch by 3_semitones; } "Play" { ||: tune :||; } } EASY CODING, BETTER MUSIC  Easy to use  Imperative Data Analysis  Declarative Musical Syntax  Portable: based on Java  Sounds great!  Goal for today: react to stock ticker

COMING UP… Intro to Upbeat Peyton Sherwood(Project Manager) Upbeat Code Adrian Weller(Language Guru) Compiler Structure & Tools Fan Lin 林凡 (System Integrator) Runtime Framework Matt D’Zmura(System Architect) Testing & What We’ve Learned Miles Ulrich(Verification and Validation)

Conductor Musician “Keyboard” Musician “FunkyDrummer” TIME_SIGNATURE 4/4; TEMPO 140; Conductor { cue up = "GoingUp"; cue down = "GoingDown"; cue background = "GoingNowhere"; float param = 0.95; float threshold = 5.0; float Avg = 70.0; // weighted average Conduct(time currentMeasure) { Avg = param*Avg + (1-param)*input.currentvalue; Case { (currentMeasure==1) Add background currentMeasure; (input.currentvalue > Avg + threshold) Add up currentMeasure; (input.currentvalue < Avg - threshold) Add down currentMeasure; } Musician "Keyboard" { phrase intro = "intro.mid"; phrase bridge = "bridge.mid"; phrase UpbeatRules = "upbeatrules.mid"; phrase SongSnippet = "goingdown.mid"; "GoingNowhere" { ||: intro | bridge :||; } "GoingUp" { Change Volume to 100; // volume is always in [0,100] || UpbeatRules :||2; } "GoingDown" { Change Volume to 70; ||: SongSnippet :||2 ; } Musician "FunkyDrummer" { phrase introdrums = "introdrum.mid"; phrase bridgedrums = "bridgedrum.mid"; phrase funkydrums = "drumpatch.mid"; phrase cymbal = "cymbal.mid"; Change Instrument to 32; // drums happen to be on MIDI channel 32 "GoingNowhere" { ||: introdrums | bridgedrums :||; } "GoingUp" { || funkydrums | cymbal ||; } Cues SAMPLE CODE

TIME_SIGNATURE 4/4; TEMPO 140; Conductor { cue up = "GoingUp"; cue down = "GoingDown"; cue background = "GoingNowhere"; float param = 0.95; float threshold = 5.0; float Avg = 70.0; // weighted average Conduct(time currentMeasure) { Avg = param*Avg + (1-param)*input.currentvalue; Case { (currentMeasure==1) Add background currentMeasure; (input.currentvalue > Avg + threshold) Add up currentMeasure; (input.currentvalue < Avg - threshold) Add down currentMeasure; } Musician "Keyboard" { phrase intro = "intro.mid"; phrase bridge = "bridge.mid"; phrase UpbeatRules = "upbeatrules.mid"; phrase SongSnippet = "goingdown.mid"; "GoingNowhere" { ||: intro | bridge :||; } "GoingUp" { Change Volume to 100; // volume is always in [0,100] || UpbeatRules :||2; } "GoingDown" { Change Volume to 70; ||: SongSnippet :||2 ; } Musician "FunkyDrummer" { phrase introdrums = "introdrum.mid"; phrase bridgedrums = "bridgedrum.mid"; phrase funkydrums = "drumpatch.mid"; phrase cymbal = "cymbal.mid"; Change Instrument to 32; // drums happen to be on MIDI channel 32 "GoingNowhere" { ||: introdrums | bridgedrums :||; } "GoingUp" { || funkydrums | cymbal ||; } DATA ANALYSIS Conductor cue up = "GoingUp"; cue down = "GoingDown"; cue background = "GoingNowhere"; … Case { (currentMeasure==1) Add background currentMeasure; (input.currentvalue > Avg + threshold) Add up currentMeasure; (input.currentvalue < Avg - threshold) Add down currentMeasure; }

TIME_SIGNATURE 4/4; TEMPO 140; Conductor { cue up = "GoingUp"; cue down = "GoingDown"; cue background = "GoingNowhere"; float param = 0.95; float threshold = 5.0; float Avg = 70.0; // weighted average Conduct(time currentMeasure) { Avg = param*Avg + (1-param)*input.currentvalue; Case { (currentMeasure==1) Add background currentMeasure; (input.currentvalue > Avg + threshold) Add up currentMeasure; (input.currentvalue < Avg - threshold) Add down currentMeasure; } Musician "Keyboard" { phrase intro = "intro.mid"; phrase bridge = "bridge.mid"; phrase UpbeatRules = "upbeatrules.mid"; phrase SongSnippet = "goingdown.mid"; "GoingNowhere" { ||: intro | bridge :||; } "GoingUp" { Change Volume to 100; // volume is always in [0,100] || UpbeatRules :||2; } "GoingDown" { Change Volume to 70; ||: SongSnippet :||2 ; } Musician "FunkyDrummer" { phrase introdrums = "introdrum.mid"; phrase bridgedrums = "bridgedrum.mid"; phrase funkydrums = "drumpatch.mid"; phrase cymbal = "cymbal.mid"; Change Instrument to 32; // drums happen to be on MIDI channel 32 "GoingNowhere" { ||: introdrums | bridgedrums :||; } "GoingUp" { || funkydrums | cymbal ||; } MUSICAL SYNTAX Musician: “Keyboard” "GoingNowhere" { ||: intro | bridge :||; } "GoingUp" { Change Volume to 100; || UpbeatRules :||2; } "GoingDown" { Change Volume to 70; ||: SongSnippet :||2 ; }

COMING UP… Intro to Upbeat Peyton Sherwood(Project Manager) Upbeat Code Adrian Weller(Language Guru) Compiler Structure & Tools Fan Lin 林凡 (System Integrator) Runtime Framework Matt D’Zmura(System Architect) Testing & What We’ve Learned Miles Ulrich(Verification and Validation)

Front End Lexer Parser.up Runtime Framework Music API jMusic API Wrapper main JVM COMPILER STRUCTURE Java Compiler

Runtime Framework Music API jMusic API Wrapper main Front End Lexer Parser main.up main SYSTEM INTEGRATION

Runtime Framework Music API jMusic API Wrapper main Front End Lexer Parser.up TOOLS

COMING UP… Intro to Upbeat Peyton Sherwood(Project Manager) Upbeat Code Adrian Weller(Language Guru) Compiler Structure & Tools Fan Lin 林凡 (System Integrator) Runtime Framework Matt D’Zmura(System Architect) Testing & What We’ve Learned Miles Ulrich(Verification and Validation)

Music API jMusic API Wrapper Run-time Framework Keyboard Drummer Data File Conductor Input Drums.mid Strings.mid Horn.mid Piano.mid Input Midi Files Cues M1: GoingNowhere M9: GoingUp M13: GoingUp Measures M1: “Drums.mid” M3: “Strings.mid” Measure 1 M2: “Drums.mid” M4: “Strings.mid” Measure 2 RUN-TIME FRAMEWORK

COMING UP… Intro to Upbeat Peyton Sherwood(Project Manager) Upbeat Code Adrian Weller(Language Guru) Compiler Structure & Tools Fan Lin 林凡 (System Integrator) Runtime Framework Matt D’Zmura(System Architect) Testing & What We’ve Learned Miles Ulrich(Verification and Validation)

TESTING SETUP UNIT TESTS Upbeat Source Files Lexer + Parser Target Java Code Validate against sample codeOne source file per feature Upbeat Source Files Compiler Toolchain Target MIDI Files Music verified by earCollection of source, input END-TO-END TESTS

WHAT WE’VE LEARNED  Agree on a metaphor early  K.I.S.S.  Project Planning  Schedule  Weekly check-ins

UPBT: STOCK TICKER