An Audio Processing Library for Game Development in Flash

Similar documents
An Audio Processing Library for Game Development in Flash

An Audio DSP Toolkit for Rapid Application Development in Flash

BeatHealth: Considerations When Moving Technology from the Lab to the Wider World

ilightz App User Guide v 2.0.3

CONTENTS JamUp User Manual

Building Java Apps with ArcGIS Runtime SDK

Sound Synthesis Methods

Understanding OpenGL

User Guide ios. MWM - edjing, 54/56 avenue du Général Leclerc Boulogne-Billancourt - FRANCE

VIBRATO DETECTING ALGORITHM IN REAL TIME. Minhao Zhang, Xinzhao Liu. University of Rochester Department of Electrical and Computer Engineering

Color Enhancement for Videogames. Naty Hoffman Activision

Music as a Game Obstacle

INTRODUCTION FEATURES. dimo-covered mokong

Digital Signal Processing System Design: LabVIEW-Based Hybrid Programming

Introduction. Jacob Jordaens, Tre Musicisti. 17th century

CS 354R: Computer Game Technology

Design Document. Embedded System Design CSEE Spring 2012 Semester. Academic supervisor: Professor Stephen Edwards

Rhythm Game Development Toolkit For Touchscreen Devices

OVERVIEW ACOUSTIC REVOLUTIONS

Digital Media & Computer Games 3/24/09. Digital Media & Games

Linux Audio Conference 2009

INTRODUCTION TO GAME AI

Casio Releases Digital Pianos That Reproduce the Rich Tones and Subtle Reverberations of Grand Pianos

Interactive Design. Audio and Design

Bass-Hero Final Project Report

Pangolin: A Look at the Conceptual Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy

WK-7500 WK-6500 CTK-7000 CTK-6000 BS A

I2C8 MIDI Plug-In Documentation

Interactive Media and Game Development Master s

Virtuoso bansuri player Hariprasad Chaurasia

GUITAR GUITAR PROCESSORS EFFECTS PRODUCT LINE PREAMPS EXPRESSION PEDALS MIDI CONTROLLERS BASS PROCESSORS

Developing a Versatile Audio Synthesizer TJHSST Senior Research Project Computer Systems Lab

Table of Contents HOL ADV

ArcGIS Runtime SDK for Java: Building Applications. Eric

GEN/MDM INTERFACE USER GUIDE 1.00

If you have just purchased Solid State Symphony, thank-you very much!

UNIT-III LIFE-CYCLE PHASES

A USEABLE, ONLINE NASA-TLX TOOL. David Sharek Psychology Department, North Carolina State University, Raleigh, NC USA

ELEN W4840 Embedded System Design Final Project Button Hero : Initial Design. Spring 2007 March 22

Embedded Systems Programming Instruction Using a Virtual Testbed

Chapter 6: DSP And Its Impact On Technology. Book: Processor Design Systems On Chip. By Jari Nurmi

Contents. Introduction 1 1 Suggested Reading 2 2 Equipment and Software Tools 2 3 Experiment 2

Game Design Methods. Lasse Seppänen Specialist, Games Applications Forum Nokia

FPGA-capella: A Real-Time Audio FX Unit

Sound rendering in Interactive Multimodal Systems. Federico Avanzini

Free games without adobe flash player

Kevin P. Holland. angel.co/kevin-holland linkedin.com/in/kevinpholland/ kevinpholland.com

Llibres electrònics editorial Elsevier Col lecció Tecnologia dels Mitjans

Image Sequences or Vector Art in the Development of Flash* Games and Virtual Worlds? By Tom Costantini

Qt Developing ArcGIS Runtime Applications. Eric

MACHINE LEARNING Games and Beyond. Calvin Lin, NVIDIA

Non Linear MIDI Sequencing, MTEC 444 Course Syllabus Spring 2017

CS123. Programming Your Personal Robot. Part 3: Reasoning Under Uncertainty

Project in Wireless Communication Lecture 7: Software Defined Radio

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science

FPGA & Pulse Width Modulation. Digital Logic. Programing the FPGA 7/23/2015. Time Allotment During the First 14 Weeks of Our Advanced Lab Course

Flash player xbox one

Mind WorkStation Brainwave Entrainment Software For Professionals

Portable Multi-Channel Recorder Model DAS240-BAT

A Java Virtual Sound Environment

First Things First. Logistics. Plan for this afternoon. Logistics. Logistics 9/1/08. Welcome to Applications in VR. This is /

Like Mobile Games* Currently a Distinguished i Engineer at Zynga, and CTO of FarmVille 2: Country Escape (for ios/android/kindle)

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT

Software de automatización de la reproducción de audio. Radio Automation Software.

the blooo VST Software Synthesizer Version by Björn Full Bucket Music

Checking your technology

JUNO-Di Mobile Synthesizer with Song Player

TU Dresden uses National Instruments Platform for 5G Research

encoded and locked Powered-By-Kontakt libraries are loaded through the Libraries window.

ANALYSIS OF REAL TIME AUDIO EFFECT DESIGN USING TMS320 C6713 DSK

AC : TECHNOLOGIES TO INTRODUCE EMBEDDED DESIGN EARLY IN ENGINEERING. Shekhar Sharad, National Instruments

the blooo VST Software Synthesizer Version by Björn Full Bucket Music

University of California, Santa Barbara. CS189 Fall 17 Capstone. VR Telemedicine. Product Requirement Documentation

Published in: Proceedings of the 8th International Conference on Tangible, Embedded and Embodied Interaction

Some things we didn t talk about yet

Using an ASIO Audio Interface and Digital Audio Workstation Software with openhpsdr Revision 3 14 Jun 2015 WU2O

Chord: A Music Game CIS 499 SENIOR PROJECT DESIGN DOCUMENT

Cisco IP Interoperability and Collaboration System: Release 4.5

Fundamentals of Digital Audio *

Contents. Image Quality Megapixel CCD sensors. Higher resolution produces greater detail

Lynx Chipper Coded by Sage. Document Date : April 27 th 2011 VER: 0.1. (rough translation and additional guide by ctrix^disasterarea) Forward

Software Starter Guide

3D Game Engine Programming (Game Development Series) By Oliver Duvel, Stefan Zerbst READ ONLINE

Midi Fighter 3D. User Guide DJTECHTOOLS.COM. Ver 1.03

A Parametric Model for Spectral Sound Synthesis of Musical Sounds

NAME STUDENT # ELEC 484 Audio Signal Processing. Midterm Exam July Listening test

Inspiring Guitars VERSION 1.0

the gamedesigninitiative at cornell university Lecture 4 Game Components

Help Manual - ipad. Table of Contents. 1. Quick Start Controls Overlay. 2. Social Media. 3. Guitar Tunes Library

Analog-Digital Hybrid Synthesizer

DOPPLER SHIFTED SPREAD SPECTRUM CARRIER RECOVERY USING REAL-TIME DSP TECHNIQUES

DOWNLOAD OR READ : GAME AND GRAPHICS PROGRAMMING FOR IOS AND ANDROID WITH OPENGL ES 2 0 PDF EBOOK EPUB MOBI

CISC 110, Fall 2012, Final Project User Manual

TEAM JAKD WIICONTROL

CSE 125 Boot Camp. Or: How I Learned to Stop Worrying and Love The Lab

Octave Shifter 2 Audio Unit

Mobile Audio Designs Monkey: A Tool for Audio Augmented Reality

Chapter 7. Waves and Sound

Presents. fiddle! for NI Kontakt 5.5+ Go to Index: 2

The Study and Modification of Open Source Game-Based Learning Engines with the Development of Game-Based Learning Prototypes for Higher Education

Transcription:

An Audio Processing Library for Game Development in Flash August 27th, 2009 Ray Migneco, Travis Doll, Jeff Scott, Youngmoo Kim, Christian Hahn and Paul Diefenbach Music and Entertainment Technology Lab Research and Play Lab Drexel University Philadelphia, PA, USA

Recent popularity of music-based games Guitar Hero, Rock Band and Dance, Dance Revolution Console platforms offer: - Rich graphics - Innovative control interfaces - Tight synchronization with audio processing Motivation Music-based games add an unprecedented amount of culture to the gaming experience Limitations of these games? Most are bundled with pre-prepared tracks - What if you don t like the music?

Motivation Rise in popularity of web-based games Wide availability of broadband connections Improved client processing power Adobe Flash Allows for rapid game development and deployment Cross-platform support Accommodates programmers of many skill levels

Music-centric Flash games Super Crazy Guitar Maniac 2 Guitar Hero -style game - Players press keys in response to derived beats JamLegend Players can upload their own tracks Limited audio processing - No control over instrument sound when notes miss Music in Motion Side scrolling game: obstacles generated in response to music Audio tracks are fixed and levels are preprocessed...many more

Limiting factors Audio support Previous versions restricted to just audio clip playback Dynamic, buffer-based audio was recently added (ver 10) Processing limitations ActionScript was not intended for computationally intensive algorithms Some existing Flash-audio libraries authored in AS: - StandingWave - sound generation library - SoundTouch - time compression/expansion, pitch transposition - ActionScript Math Library - contains FFT functions

Adobe Alchemy What is Alchemy? Allows C/C++ libraries to be integrated into Flash projects - C/C++ code is compiled to byte code, optimized for the ActionScript Virtual Machine (AVM2) - Minimal performance degradation on AVM2 from native compilation Alchemy compiler generates a.swc file from C/C++ code, which is integrated into the Flash project -.swc : an archive file containing components and resources representing the C/C++ library

Alchemy performance FFT Computation Times for Web-based platforms (msec) FFT Size Target Platform 16384 8192 4096 2048 1024 512 256 FFT computation time Core function in DSP analysis/synthesis algorithms 10,000 iterations for each size on each platform Average elapsed times reported

Alchemy performance Target Platform ActionScript (AS2 Math) FFT Computation Times for Web-based platforms (msec) FFT Size 16384 8192 4096 2048 1024 512 256 96.377 45.157 20.818 9.276 4.460 2.041 0.925 FFT computation time Core function in DSP analysis/synthesis algorithms 10,000 iterations for each size on each platform Average elapsed times reported

Alchemy performance Target Platform ActionScript (AS2 Math) Java (JTransforms) FFT Computation Times for Web-based platforms (msec) FFT Size 16384 8192 4096 2048 1024 512 256 96.377 45.157 20.818 9.276 4.460 2.041 0.925 29.517 20.703 9.393 4.345 1.956 0.901 0.385 FFT computation time Core function in DSP analysis/synthesis algorithms 10,000 iterations for each size on each platform Average elapsed times reported

Alchemy performance Target Platform ActionScript (AS2 Math) Java (JTransforms) C (Alchemy) FFT Computation Times for Web-based platforms (msec) FFT Size 16384 8192 4096 2048 1024 512 256 96.377 45.157 20.818 9.276 4.460 2.041 0.925 29.517 20.703 9.393 4.345 1.956 0.901 0.385 3.009 1.371 0.628 0.297 0.139 0.067 0.034 FFT computation time Core function in DSP analysis/synthesis algorithms 10,000 iterations for each size on each platform Average elapsed times reported

The goal A fast, versatile and open source audio processing library for Flash game development Requirements: Optimized for maximum performance Flexibility for developers Ease of implementation The result: ALF - Audio processing Library for Flash

Architecture Alchemy is used to compile a.swc for a C/C++ DSP-based library DSP Audio Toolkit for Flash (DATF) AS3-based wrapper for.swc file C/C++ DSP Library Alchemy Compiler ALF is the top layer of abstraction AS3 wrapper for DATF Open-source flexibility at all levels Varying developer interaction at each level

Architecture Alchemy is used to compile a.swc for a C/C++ DSP-based library DSP Audio Toolkit for Flash (DATF) AS3-based wrapper for.swc file ALF is the top layer of abstraction AS3 wrapper for DATF Alchemy DSP Library (.swc file) Open-source flexibility at all levels Varying developer interaction at each level

Architecture Alchemy is used to compile a.swc for a C/C++ DSP-based library DSP Audio Toolkit for Flash (DATF) AS3-based wrapper for.swc file DATF Alchemy DSP Library (.swc file)

Architecture Alchemy is used to compile a.swc for a C/C++ DSP-based library ALF DATF Alchemy DSP Library (.swc file) DSP Audio Toolkit for Flash (DATF) AS3-based wrapper for.swc file ALF is the top layer of abstraction AS3 wrapper for DATF Open-source flexibility at all levels Varying developer interaction at each level

Alchemy Layer Alchemy DSP Library

Alchemy Layer Foundation of audio processing library Alchemy compiled C/C++ code Alchemy DSP Library Contains: Audio buffers DSP library functions Developer responsibilities Edit/add audio processing functions in C/C++ Compile.swc file and integrate

DATF Layer Alchemy DSP Library

DATF Layer DSP Audio Toolkit for Flash (DATF) AS3-based code DATF Alchemy DSP Library Interfaces with Alchemy DSP Library Establishes shared AS3/Alchemy memory Developer responsibilities Allocate audio buffers Read and write buffers Call DATF library functions

ALF Layer DATF Alchemy DSP Library

ALF Layer AS3-based code ALF DATF Alchemy DSP Library Developer specifies: Audio file for analysis/playback Desired ALF functions to use Audio processing rate Simple interfacing No DSP knowledge required No memory management No direct access to audio buffers

Audio Support Flash 10 limitations Compatible with.mp3 and.wav file types 22.05 khz and 44.1 khz sample rates Event listener is used to update the application when an audio frame has been computed

Available functions getspectrum getintensity getbandwidth getflux getbrightness getharmonics filter reverb

Available functions getspectrum getintensity getbandwidth getflux getbrightness getharmonics filter reverb

Players upload.mp3 tracks from their music library Game environment is rendered in real-time based on game audio Features are extracted using ALF and mapped to game parameters Development Programmed and design with Adobe CS4 components Deployed via Adobe Air 1.5: Flash for the Desktop - Avoids network latency for file uploads

Audio-driven environment

Audio-driven environment Pulse

Audio-driven environment Platform Slope: getflux

Audio-driven environment Enemies: getintensity

Audio-driven environment Cloud Color: getcentroid

Audio-driven environment Cloud Size: getbandwidth

Pulse 2 Demo

Conclusions Developed an efficient, open source, high-level interface for audio processing in Flash applications Utilized computational benefits of Alchemy Accommodates developers of varying skill levels Capable of real-time processing Future work: Expand the functional palette of ALF - Phase vocoder for time and/or pitch-scale modification - Additive synthesis methods for sound effect generation - Beat tracker

More info and downloads http://music.ece.drexel.edu Game links: Pulse 2 Educational activities: Tone Bender and Hide & Speak ALF Preview documentation Sources coming soon

Questions?

Architecture Music Library Pulse Game Playlist Track 1 Track 2 Additional Tracks ActionScript Extract Audio Frame Update Attributes Ground Slope Enemy Velocity Enemy Attacks Cloud Size Cloud Color Point Value Render Video Frame ALF getspectrum getintensity getflux getcentroid getbandwidth Video Output Audio Output show the game Architecture using ALF utilized functions, etc; getflux, getintensity, getcentroid, getbandwidth

ALF DATF Alchemy DSP Library