SlideShare a Scribd company logo
1 of 49
Download to read offline
Dynamic Audio
For Apps and Games
360 iDev tackmobile.com
About Me
• @thillerson, +thillerson (if you’re into that)
• Developer at Tack Mobile (tackmobile.com)
• iOS, Android, and Mobile Web
• Rails, Node, maybe Elixir (one day)
360 iDev tackmobile.com
Rawk Star
About Me
360 iDev tackmobile.com
About Me
• Bass
• Electronic Music
• Some day I hope to
play this thing
--------->
360 iDev tackmobile.com
Sound Design Work: Start
• Alarm App
• Alarm Sounds
• App Store: “Start by Tack”
360 iDev tackmobile.com
Sound Design Work: Adrift
• Puzzle Game - “Adrift by Tack” in App Store
• Background Music
• Sound Effects
360 iDev tackmobile.com
Programming Sound
• In Beta Soon*
(*this week)
• http://pragprog.com/
• What we’re talking
about today...
• ... and much more
360 iDev tackmobile.com
What We’re Going To Do Today
• Answer: What Is Sound Design?
• Discuss UX Principles of Sound Design
• Introduce Pure Data
• Introduce libpd
• Tour Two iOS Apps Embedding Pd
360 iDev tackmobile.com
When We Are Done, You Will
• Understand Sound Design
• Understand Procedural Audio
• Know what Pd is, and how libpd makes it
awesome
• Be excited about Dynamic Audio in your apps
and games
360 iDev tackmobile.com
What is Sound Design?
360 iDev tackmobile.com
A Sound Designer
Ben Burtt
360 iDev tackmobile.com
A Sound Designer...
• Conceptualizes
• Captures or Designs
• Records
• Engineers
• Produces
• ... the sound for
an experience
360 iDev tackmobile.com
Sound Designer Skills
• Understand Sound
• Intuitive vs. Theoretical
• Music vs. Sound
• Audio Engineering
360 iDev tackmobile.com
Sound Design in Mobile Apps
• Developers/Designers wear lots of hats
• Control
• Efficiency
• Asset size
360 iDev tackmobile.com
Sound Design Principles
360 iDev tackmobile.com
A Sound Designer’s Goals
• Audible Feedback
• Fulfill Expectations
• Immersion
• Emotional Response
360 iDev tackmobile.com
Sound Design and Good UX
• Your app doesn’t need sound
• Expect to be turned off
• Don’t make me listen to you
• Listen on lots of devices/environments
• Engineer for small speakers
• Make your sound mean something!
360 iDev tackmobile.com
Always
• Test with phone calls
• Test while playing music
• Have fallbacks - e.g. No music, just effects
• Provide control to the user
360 iDev tackmobile.com
A Good Example: Clear
• Realmac Software
• Josh Mobley
• Meaningful Sound
• demo
360 iDev tackmobile.com
Sound
360 iDev tackmobile.com
Longitudinal Waves
360 iDev tackmobile.com
Of Pressure
360 iDev tackmobile.com
Through A Medium
360 iDev tackmobile.com
Transverse Wave
Longitudinal Wave
360 iDev tackmobile.com
• Longitudinal Waves
• Of Pressure
• Through a Medium
Sound
360 iDev tackmobile.com
Properties of Waves
• A - Wavelength (Distance), Period (Time)
• B - Amplitude
• C - Frequency - 1/Period (measured in Hertz)
A
B
B
C 1 2 3
360 iDev tackmobile.com
Fourier Series
• Based on his work ------->
• Periodic signals composed
of simple oscillating
functions
• Sine/Cosine waves are
fundamental
360 iDev tackmobile.com
Oscillators
• Something that moves according to a periodic
function
• A physical body
• An electronic device
360 iDev tackmobile.com
Basic Electronic Sound
oscillator
voltage
magnet
pressure
waves
speaker
360 iDev tackmobile.com
Digital Audio
• Stream of Numbers
• Signal
• Frequency and Amplitude
• DAC - Digital to Analog Converter
360 iDev tackmobile.com
Dynamic Audio
360 iDev tackmobile.com
Procedural Audio
• Functions
• Objects
• Controls and Components
• Produce a Signal
• “Building Sound from First Principles”
360 iDev tackmobile.com
Pure Data
• Procedural Audio
• Visual Programming Environment
• Free and Open Source
• pure-data.info
360 iDev tackmobile.com
Pure Data 101
360 iDev tackmobile.com
Signals and Values
• Signals are streams of numbers, usually audio
data
• Values are numbers or symbols
360 iDev tackmobile.com
• Pd’s class
• or, kind of like a command line tool
Objects
osc~ 440
signal inlet inlet
signal outlet
class name arguments
360 iDev tackmobile.com
Hot vs Cold Inlets
• Hot inlets make objects immediately act
• Cold inlets usually store a value
• Execution is right to left
360 iDev tackmobile.com
• Signal connections are thick
• Others are thin
Connections
osc~ 440
*~
dac~
1
360 iDev tackmobile.com
Messages
• Used for sending values without a connection
• [send] and [receive] objects
• Message boxes
360 iDev tackmobile.com
libpd
• http://libpd.cc
• Peter Brinkmann - Google Engineer
• Enables you to embed an instance of Pd in your
app
• iOS and Android
360 iDev tackmobile.com
Examples
360 iDev tackmobile.com
Source Code
• github.com/thillerson/dynamic-sound-ios
• Examples of capabilities, not necessarily the
best architecture
• Goal: understand capabilities, have a place to
start
360 iDev tackmobile.com
Example 1: A Simple Keyboard
• Sine wave oscillator
• Single voice
• Note on/off
360 iDev tackmobile.com
Example 1: A Simple Keyboard Patch
osc~
dac~
receive midinote
mtof
receive gate
line~
*~
;
midinote 60;
gate 1;
;
gate 0$1 1
print
360 iDev tackmobile.com
Example 2: A Game
• Top down perspective space shooter
• Code by Lucas Jordan
from iOS 5 Game Dev ->
• Now with sound!
360 iDev tackmobile.com
Example 2: A Game Patch
load a square wave
at startup
Thruster
noise~
*~
samphold~
dac~
hip~ 200
phasor~ 800
line~
$1 200
*~ 0.1
receive thruster
BulletShip_HitAsteroid_Hit
samphold~
tabosc4~ square
dac~
line~
phasor~ 8000
tabosc4~ square
line~
unpack f f
0 $1
tabosc4~ square
line~
unpack f f
0 $1
hip~ 1000
unpack f f
0 $1
*~ 0.5
receive asteroid receive ship receive bullet
8-bit-ify
these sounds
cut low frequencies
comment
comment
Test_Messages
;
bullet 25 200;
;
thruster 0
;
thruster 1
pd wavesetup
;
ship 1000 50;
;
asteroid 200 100;
360 iDev tackmobile.com
Further Reading
• puredata.info && libpd.cc
• youtube.com/user/cheetomoskeeto
• http://designingsound.org
• mitpress.mit.edu/books/designing-sound
360 iDev tackmobile.com
Questions
Thank you!
Dynamic Audio • Tony Hillerson
• We’re Hiring!
• careers@tackmobile.com
• Excellent Team
• Awesome Projects
• Great Office

More Related Content

What's hot

Low Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source BridgeLow Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source Bridge
Aaron Parecki
 

What's hot (12)

Assignment2 presentation
Assignment2 presentationAssignment2 presentation
Assignment2 presentation
 
MacPeople Presentation - June, 2014
MacPeople Presentation - June, 2014MacPeople Presentation - June, 2014
MacPeople Presentation - June, 2014
 
Kubernetes and AWS Lambda can play nicely together
Kubernetes and AWS Lambda can play nicely togetherKubernetes and AWS Lambda can play nicely together
Kubernetes and AWS Lambda can play nicely together
 
Low Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source BridgeLow Friction Personal Data Collection - Open Source Bridge
Low Friction Personal Data Collection - Open Source Bridge
 
Interns What Is DevOps
Interns What Is DevOpsInterns What Is DevOps
Interns What Is DevOps
 
Web APIs: The future of software
Web APIs: The future of softwareWeb APIs: The future of software
Web APIs: The future of software
 
Adopting Elixir in a 10 year old codebase
Adopting Elixir in a 10 year old codebaseAdopting Elixir in a 10 year old codebase
Adopting Elixir in a 10 year old codebase
 
Ansible-DK: So That's a Thing
Ansible-DK: So That's a ThingAnsible-DK: So That's a Thing
Ansible-DK: So That's a Thing
 
Elevations credit union furniture overview
Elevations credit union furniture overviewElevations credit union furniture overview
Elevations credit union furniture overview
 
Maintaining the Netflix Front Door - Presentation at Intuit Meetup
Maintaining the Netflix Front Door - Presentation at Intuit MeetupMaintaining the Netflix Front Door - Presentation at Intuit Meetup
Maintaining the Netflix Front Door - Presentation at Intuit Meetup
 
Talk Like Orcs in Warcraft
Talk Like Orcs in WarcraftTalk Like Orcs in Warcraft
Talk Like Orcs in Warcraft
 
Localization Challenges of Non-Traditional Content in Games - Declan Groves (...
Localization Challenges of Non-Traditional Content in Games - Declan Groves (...Localization Challenges of Non-Traditional Content in Games - Declan Groves (...
Localization Challenges of Non-Traditional Content in Games - Declan Groves (...
 

Similar to Dynamic Sound for iOS Apps and Games

Code strong rob_chohan_september_2011
Code strong rob_chohan_september_2011Code strong rob_chohan_september_2011
Code strong rob_chohan_september_2011
Axway Appcelerator
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
Zivtech, LLC
 

Similar to Dynamic Sound for iOS Apps and Games (20)

Electronic for Software Developers
Electronic for Software DevelopersElectronic for Software Developers
Electronic for Software Developers
 
[DSC Europe 22] Make some noise for AI in JavaScript - Sead Delalic
[DSC Europe 22] Make some noise for AI in JavaScript - Sead Delalic[DSC Europe 22] Make some noise for AI in JavaScript - Sead Delalic
[DSC Europe 22] Make some noise for AI in JavaScript - Sead Delalic
 
Mira Georgieva - VoIP2DAY 2016 | Open hardware to be used by your deaf grandma
Mira Georgieva - VoIP2DAY 2016 | Open hardware to be used by your deaf grandmaMira Georgieva - VoIP2DAY 2016 | Open hardware to be used by your deaf grandma
Mira Georgieva - VoIP2DAY 2016 | Open hardware to be used by your deaf grandma
 
6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend6 reasons Jubilee could be a Rubyist's new best friend
6 reasons Jubilee could be a Rubyist's new best friend
 
Deep dive into Android’s audio latency problem
Deep dive into Android’s audio latency problemDeep dive into Android’s audio latency problem
Deep dive into Android’s audio latency problem
 
Writing Alexa Voice Skills With NodeJS (with a little IoT)
Writing Alexa Voice Skills With NodeJS (with a little IoT)Writing Alexa Voice Skills With NodeJS (with a little IoT)
Writing Alexa Voice Skills With NodeJS (with a little IoT)
 
Writing Alexa Voice Skills with NodeJS- David Janes
Writing Alexa Voice Skills with NodeJS- David JanesWriting Alexa Voice Skills with NodeJS- David Janes
Writing Alexa Voice Skills with NodeJS- David Janes
 
ProjectTox: Free as in freedom Skype replacement
ProjectTox: Free as in freedom Skype replacementProjectTox: Free as in freedom Skype replacement
ProjectTox: Free as in freedom Skype replacement
 
Japanese CloudSearch Use-Cases and Tech Deep Dive
Japanese CloudSearch Use-Cases and Tech Deep DiveJapanese CloudSearch Use-Cases and Tech Deep Dive
Japanese CloudSearch Use-Cases and Tech Deep Dive
 
Torquebox rubyhoedown-2012
Torquebox rubyhoedown-2012Torquebox rubyhoedown-2012
Torquebox rubyhoedown-2012
 
Don't fear our new robot overlords – A new way to test on mobile
Don't fear our new robot overlords – A new way to test on mobileDon't fear our new robot overlords – A new way to test on mobile
Don't fear our new robot overlords – A new way to test on mobile
 
Rob Chohan: Titanium+Plus Modules and Javascript Bridges: Controlling Hardwar...
Rob Chohan: Titanium+Plus Modules and Javascript Bridges: Controlling Hardwar...Rob Chohan: Titanium+Plus Modules and Javascript Bridges: Controlling Hardwar...
Rob Chohan: Titanium+Plus Modules and Javascript Bridges: Controlling Hardwar...
 
Code strong rob_chohan_september_2011
Code strong rob_chohan_september_2011Code strong rob_chohan_september_2011
Code strong rob_chohan_september_2011
 
How to Augment your Marketing Strategy with Alexa - August 22, 2019
How to Augment your Marketing Strategy with Alexa - August 22, 2019How to Augment your Marketing Strategy with Alexa - August 22, 2019
How to Augment your Marketing Strategy with Alexa - August 22, 2019
 
Phillip Heckinger (Microsoft): Empowering AR & VR with Tech Art
Phillip Heckinger (Microsoft): Empowering AR & VR with Tech ArtPhillip Heckinger (Microsoft): Empowering AR & VR with Tech Art
Phillip Heckinger (Microsoft): Empowering AR & VR with Tech Art
 
A Serverless first approach - Will it Lambda?
A Serverless first approach - Will it Lambda?A Serverless first approach - Will it Lambda?
A Serverless first approach - Will it Lambda?
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
GDSC NYCU | 如何建立自己的開源專案
 GDSC NYCU | 如何建立自己的開源專案 GDSC NYCU | 如何建立自己的開源專案
GDSC NYCU | 如何建立自己的開源專案
 
Amy mania - Put Words In My Mouth - DC2711 2019
Amy mania - Put Words In My Mouth - DC2711 2019Amy mania - Put Words In My Mouth - DC2711 2019
Amy mania - Put Words In My Mouth - DC2711 2019
 
Creating a Connected Foosball Table with Arduino, Raspberry Pi, and Salesforce
Creating a Connected Foosball Table with Arduino, Raspberry Pi, and SalesforceCreating a Connected Foosball Table with Arduino, Raspberry Pi, and Salesforce
Creating a Connected Foosball Table with Arduino, Raspberry Pi, and Salesforce
 

More from Tack Mobile

Advanced Android Design Implementation
Advanced Android Design ImplementationAdvanced Android Design Implementation
Advanced Android Design Implementation
Tack Mobile
 
Scala for android
Scala for androidScala for android
Scala for android
Tack Mobile
 

More from Tack Mobile (9)

Assembly • Creative Mornings
Assembly • Creative MorningsAssembly • Creative Mornings
Assembly • Creative Mornings
 
Introduction to Hardware with littleBits
Introduction to Hardware with littleBitsIntroduction to Hardware with littleBits
Introduction to Hardware with littleBits
 
Prototyping with Framer.js
Prototyping with Framer.jsPrototyping with Framer.js
Prototyping with Framer.js
 
Adrift: The Making of an iOS Game
Adrift: The Making of an iOS GameAdrift: The Making of an iOS Game
Adrift: The Making of an iOS Game
 
Advanced Android Design Implementation
Advanced Android Design ImplementationAdvanced Android Design Implementation
Advanced Android Design Implementation
 
Git for Android Developers
Git for Android DevelopersGit for Android Developers
Git for Android Developers
 
Scala for android
Scala for androidScala for android
Scala for android
 
Designing an Android App from Idea to Market
Designing an Android App from Idea to MarketDesigning an Android App from Idea to Market
Designing an Android App from Idea to Market
 
Mobile Means Business
Mobile Means BusinessMobile Means Business
Mobile Means Business
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Dynamic Sound for iOS Apps and Games