Better Tools for Sound Designers on PlayStation®3 through Open Architecture Designs Michael Kelly, Senior Audio Engineer, Sony Computer Entertainment.

Slides:



Advertisements
Similar presentations
4/1/2017 4:16 PM.
Advertisements

A Roadmap: Beyond Big API’s Why Software Component Frameworks May Be Interactive Audio’s Future Chris Grigg
CSE 380 – Computer Game Programming Audio Engineering.
Making the most of Satellite Navigation and Tracking Integration with your Business System.
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Spring, Hibernate and Web Services 13 th September 2014.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Technical Architectures
From the market leader in digital signage players
ARCS Data Analysis Software An overview of the ARCS software management plan Michael Aivazis California Institute of Technology ARCS Baseline Review March.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
Chapter 3.2 C++, Java, and Scripting Languages. 2 C++ C used to be the most popular language for games Today, C++ is the language of choice for game development.
Havok Physics May Ang CS 164. Overview Developed by Havok Also make several other development tools Version 1.0 SDK released in 2000 Currently on Version.
CHEP04 - Interlaken - Sep. 27th - Oct. 1st 2004T. M. Steinbeck for the Alice Collaboration1/27 A Control Software for the ALICE High Level Trigger Timm.
Chapter 3.2 C++, Java, and Scripting Languages “The major programming languages used in game development.”
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
XCON architecture and protocol musings Henning Schulzrinne Columbia University.
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
 What is the key progressive change in these objects? Audio Limitations.
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
Joe Comm Audacity in the Classroom. Overview A free download tool to record audio files (voice, music, or both). Teacher laptops, power cords, internet.
Wireshark Presented By: Hiral Chhaya, Anvita Priyam.
Building Public Facing Websites with SharePoint 2010 Prepared for ILTA’s SharePoint for Legal Symposium June 16 th, 2010 George Durzi Principal Consultant.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
ABM Frameworks Dr Andy Evans With additions from Dr Nick Malleson.
Christopher Jeffers August 2012
Tools for Game Developmet Erik Harpstead Carnegie Mellon University 1.
Packetizer ® Copyright © 2008 H.325 Beyond Today’s Second Generation Systems Paul E. Jones Rapporteur, ITU-T Q12/16 1.
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
Video Game Audio Prototyping with Half-Life 2 :: Granulation Leonard J. Paul VideoGameAudio.com.
Overview of implementations openBGP (and openOSPF) –Active development Zebra –Commercialized Quagga –Active development XORP –Hot Gated –Dead/commercialized.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
Lecture 15 Introduction to Web Services Web Service Applications.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
ICALEPCS 2007, Knoxville, Tennessee, October 15-19, 2007 Present Status of VEPP-5 Control System D.Yu.Bolkhovityanov, A.Yu.Antonov, R.E.Kuskov The Budker.
Firmware Storage : Technical Overview Copyright © Intel Corporation Intel Corporation Software and Services Group.
CSE 219 Computer Science III Program Design Principles.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Embedded Runtime Reconfigurable Nodes for wireless sensor networks applications Chris Morales Kaz Onishi 1.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
Model View Controller MVC Web Software Architecture.
Make it, Don’t Fake it Leap Forward with Eyeblaster Workshop™ for Flash December 20,2007.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
11 Computers, C#, XNA, and You Session 1.1. Session Overview  Find out what computers are all about ...and what makes a great programmer  Discover.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Introduction Who are we? Paul Martin – Started out in the industry 1996 as PlayStation programmer – Currently a technical director and one of the principals.
Mixing It Up The Last Great Challenge For Game Audio Garry Taylor Audio Manager – WWS Creative Services Group Sony Computer Entertainment Europe.
TTCN-3 Testing and Test Control Notation Version 3.
Migrating from Legacy ECM Repositories to Alfresco Ray Wijangco Technology Services Group Alfresco Practice Lead.
BIG DATA/ Hadoop Interview Questions.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
Software and Communication Driver, for Multimedia analyzing tools on the CEVA-X Platform. June 2007 Arik Caspi Eyal Gabay.
Android Mobile Application Development
Business System Development
Development Environment
CST 1101 Problem Solving Using Computers
CANalytics TM CAN Interface Software BY.
Software Defined Networking (SDN)
Unit 20 Software Part 2.
Unit 20 Software Part 2.
Universal Serial Bus (USB)
PRODUCTION PHASES CHANGES
Games Development 2 Entity / Architecture Review
Presentation transcript:

Better Tools for Sound Designers on PlayStation®3 through Open Architecture Designs Michael Kelly, Senior Audio Engineer, Sony Computer Entertainment Europe

What does that mean?  On PlayStation 3  Very powerful audio engine  No tools to fully exploit it  Open architecture  Documented  Pluggable  Open Source  Published file format

Overview  Introduce PS3 Audio Engine  Reasons for rethinking audio tools  Discuss our approach  Show  How this model benefits game-audio

MultiStream TM Introduction  The de-facto PS3 Audio Engine  Entirely software based  Therefore it’s optional  Probably the most powerful and flexible audio engine in the world!

MultiStream Routing: Example: Voices to master  Up to 512 voices MASTER Voice 0 Voice n Voice 511

MultiStream Routing: Example: All busses to Master  Multiple busses to master MASTER Voice Bus 0 Bus n Bus 30 Voice

MultiStream Routing: Example: Busses route to each other  Asymmetrical configuration MASTER Bus 0 Bus 1 Bus 2 Bus 3 Voices Bus 4

MultiStream Effects  Compressor, Multiband Compressor, Softclip Distortion, Polynomial Distortion  Eq on bus, Parametric eq, Filters (15 types)  FDN reverb, I3DL2, Convolution Reverb  Pitch Shift/Time Stretch, Vocoder  Delay, Ring Modulator

MultiStream Effects  Each bus can have 8 effects Bus Slot 0 Filter Slot1 Reverb Slot2 Comp Slot3 EQ Slot4 Empty Slot5 Empty Slot6 Empty Slot7 Empty Voice

MultiStream Effects  …So can each voice Slot0: Stretch Slot1 Conv. Slot2 Empty Slot3 Empty Slot4 Empty Slot5 Empty Slot6 Empty Slot7 Empty

MultiStream Effects  Send and return Voices and busses Bus 0 Slot 0 Filter Slot1 Reverb Slot3 EQ Slot4 Empty Slot5 Empty Slot6 Empty Slot7 Empty Voices Bus 1 Slot 1 Filter Slot2 Reverb Slot3 EQ Slot4 Empty Slot5 Empty Slot6 Empty Slot7 Empty Voices Slot2 Send Slot 0 Return

MultiStream Routing: Send and return  Complicates routing further MASTER Bus 0 Bus 1 Bus 2 Bus 3 Voices Bus 4

MultiStream Multi-Channel  Each voice and bus  8 Channels (eg. 7.1 Surround)  Matrix Routing  Voice to Bus  Bus to Bus  Send to Return  Sends and returns  From/To any channel

MutliStream Power  We can run 50 X 2 second impulses  on a single SPU  Decode 400+ MP3 Streams  24kHz / 128kb/s

MultiStream Summary  Endlessly configurable  Many effect combinations  ~15 effects out of the box  ATRAC, VAG, MP3 support  Roll your own Effects  Roll your own formats  How do you make a tool to do that?

New Tool Design

No MultiStream Tools: What about SCREAM?

SCREAM / MultiStream  Uses fixed config MultiStream Bus Stream 0 SRC/ Pitch PEQDist.SendFilt Stream n SRC/ Pitch PEQDist.SendFilt Stream 127 SRC/ Pitch PEQDist.SendFilt

SCREAM Summary  Only uses a fraction of MultiStream  Specific to PlayStation platforms  Robust but dated

New Tool Spec  Easy to use  Provide complex routing and effects configuration  Improve workflow  Cross-Platform Engine  PS3, PlayStation 2, PSP  Xbox 360, PC, MAC

Easy to use  Basic assumption  -A whole other talk

Routing configuration  Sound Punk Tool (working title)  Desribe bus routing  Desribe effects config  Simplifies MultiStream setup

Cross Platform  Many approaches  Eg. Use Sound Punk to describe/emulate another platform  Configure MultiStream to be another engine  Lowest common denominator problem  Cross platform engines  Cross platform tools  What’s the difference

Cross Platform: The traditional approach  Middleware engine  Wraps console hardware  Fixed tools Hardware Engine Tool/Audio API Programmer

Cross Platform: Lowest common denominator  In the hardware days Platform API Tool

Cross Platform: The software engine  XBox360 and PS3  Very little audio hardware  Software engine  Same code  Except for optimizations

Cross Platform: The Tool Engine  With each tool you need the runtime engine  Bound to audio engine  Solves the lowest common denominator problem  This gives us a problem  MultiStream is optional!

Cross Platform: Separate tool & Engine  This is the way it used to be (kind of)  Good for us  Our tool works with other people’s engines  Good for other people because their tools work on our engine  Sound designer and programmer separate choice  It’s not that simple  & How to avoid the LCD problem

Separating the tool from the engine

Engine Overview  Abstract the engine  Configuration  Triggers  Param updates

Abstraction  Abstraction model: SP-EAL Tool API Engine Abstraction Engine

Sound Punk: Describe engine & config  Describes the audio engine  Max voices  Max busses  Effects  Routing Options  Describes specific configuration  Bus routing  Active effects

Abstraction + Sound Punk  Platform file describes engine limits  Voices, busses, effects, etc  Also describes config  bus names, source names, formats  Testing with different well-known APIs

Sound Punk: Supplied libraries on PS3  PS3 runtime library layer  Including source code  Developer can re-implement for other platforms (Wii, Xbox 360)  Example PC implementation  Script Engine also as source  Developer can rebuild for other platforms

Lowest common denominator: solved  Everything is abstracted  Mapping  Scalability

Engine abstraction: Bonuses  Once you abstract the engine, new things for free  Remote auditioning  In game preview  Cross platform

Problems  Voice allocation  Tool or engine  Missing effects  Different effects  File Formats  All implementation dependent  -Accommodate in tool

Another approach: The file format

Common File format  Engine abstraction and File Format  Not mutually exclusive  Agreed tool-level interchange format  Standard format for asset data  Standard format for scripts  Standard format for parameters

Tool choice Tool API Engine

Common file format  Advantages  Sound designer chooses right tool for right job  Common terminology  Common expectations  Should still allow USPs

Common File Format: Where to start?  Don’t reinvent the wheel  IASIG: iXMF  Interactive Extensible Media Format

Common File Format: XMF Folder layout File 1 File 2 Data Folder Nod e Folder Nod e Folder Nod e Data Nod e

Common File Format: Asset Types  Media files  + Chunks: references to media files  Cues and Scripts

Common File Format: Scripting  Script language defined  Roll your own  Everything is extensible

Common File Format: Extensibilty  Metadata  New script languages  New anything

Problems  GUI Metadata  Common file format, common tool?  Unsupported extensions?  Corruption  Inefficient at runtime?

Summary  Rationalising the sound process  SCEE has two approaches  Engine Abstraction + Config Tool  Open File Format  Perfect approach for us  What about you?  Improves workflow

Industry benefits  Mature idea of audio engine  Common terminology  True choice for developers  Improved Workflow  Better sounding games

This isn’t the end  (well it is, but..)  More discussion to follow  Sony Computer Entertainment & Developers  Events like GDC  Bodies like IASIG, AES, BBQ  And the Q&A…