This is the story of the glory and struggle of bringing a high quality YouTube experience to the mobile web. Once upon a time there was a web developer who wanted to play videos on the web. So he filmed a cat and wrote a Flash and a HTML5 player. He spent many hours making it work on his favorite desktop browsers and even the one his grandfather still used. People could watch his cat video, he smiled, and the world was good. Then one day someone put a browser in a phone and soon there were many phones with many different browsers. This new set of environments were even harder to develop for and had a slew of new terrifying bugs. The web developer was miserable knowing people couldn’t watch his cat video. With much time and effort he figured out many of the secrets needed to combat the evils of the different mobile platforms. Once again people could watch his cat video, he smiled, and the world was good. The end.
Greg Schechter & Eugene Goldin — Mobile Meow: Bringing YouTube Videos to a Mobile World
This is the story of the glory and struggle of bringing a high quality YouTube experience to the mobile web. Once upon a time there was a web developer who wanted to play videos on the web. So he filmed a cat and wrote a Flash and a HTML5 player. He spent many hours making it work on his favorite desktop browsers and even the one his grandfather still used. People could watch his cat video, he smiled, and the world was good. Then one day someone put a browser in a phone and soon there were many phones with many different browsers. This new set of environments were even harder to develop for and had a slew of new terrifying bugs. The web developer was miserable knowing people couldn’t watch his cat video. With much time and effort he figured out many of the secrets needed to combat the evils of the different mobile platforms. Once again people could watch his cat vid eo, he smiled, and the world was good. The end.
Greg is a fearless web warrior, fighting for browser and website progress. While training at the University of Illinois in Urbana-Champaign, he published articles with the Opera Web Standards Curriculum. Subsequently, he went on to battle alongside many different web companies, including Amazon, Yahoo, and Google. His current alliance is with YouTube, where he spearheads the movement for HTML5 video capabilities.
Eugene Goldin is a javascript developer at YouTube. His interests include taking web videos where no video could go before, improving how users interact with web technologies, and long walks on the beach.
This is the story of the glory and struggle of bringing a high quality YouTube experience to the mobile web. Once upon a time there was a web developer who wanted to play videos on the web. So he filmed a cat and wrote a Flash and a HTML5 player. He spent many hours making it work on his favorite desktop browsers and even the one his grandfather still used. People could watch his cat video, he smiled, and the world was good. Then one day someone put a browser in a phone and soon there were many phones with many different browsers. This new set of environments were even harder to develop for and had a slew of new terrifying bugs. The web developer was miserable knowing people couldn’t watch his cat video. With much time and effort he figured out many of the secrets needed to combat the evils of the different mobile platforms. Once again people could watch his cat video, he smiled, and the world was good. The end.
HTML5, Flash, and the Battle For Faster Cat VideosGreg Schechter
HTML5; it's new, it's awesome, and it's powerful, but can it take down the champ of video distribution, Flash. Which technology's got the ability to bring cat video to the next level? This talk covers the many challenges of both HTML5 and YouTube adapting to change video distribution on the web.
JS Days HTML5 Flash and the Battle for Faster Cat VideosGreg Schechter
HTML5; it’s new, it’s awesome, and it’s powerful, but can it take down the champ of video distribution, Flash? Which technology’s got the ability to bring cat video to the next level. This talk will cover the many challenges of both HTML5 and YouTube adapting to change video distribution on the web.
Greg Schechter & Eugene Goldin — Mobile Meow: Bringing YouTube Videos to a Mobile World
This is the story of the glory and struggle of bringing a high quality YouTube experience to the mobile web. Once upon a time there was a web developer who wanted to play videos on the web. So he filmed a cat and wrote a Flash and a HTML5 player. He spent many hours making it work on his favorite desktop browsers and even the one his grandfather still used. People could watch his cat video, he smiled, and the world was good. Then one day someone put a browser in a phone and soon there were many phones with many different browsers. This new set of environments were even harder to develop for and had a slew of new terrifying bugs. The web developer was miserable knowing people couldn’t watch his cat video. With much time and effort he figured out many of the secrets needed to combat the evils of the different mobile platforms. Once again people could watch his cat vid eo, he smiled, and the world was good. The end.
Greg is a fearless web warrior, fighting for browser and website progress. While training at the University of Illinois in Urbana-Champaign, he published articles with the Opera Web Standards Curriculum. Subsequently, he went on to battle alongside many different web companies, including Amazon, Yahoo, and Google. His current alliance is with YouTube, where he spearheads the movement for HTML5 video capabilities.
Eugene Goldin is a javascript developer at YouTube. His interests include taking web videos where no video could go before, improving how users interact with web technologies, and long walks on the beach.
This is the story of the glory and struggle of bringing a high quality YouTube experience to the mobile web. Once upon a time there was a web developer who wanted to play videos on the web. So he filmed a cat and wrote a Flash and a HTML5 player. He spent many hours making it work on his favorite desktop browsers and even the one his grandfather still used. People could watch his cat video, he smiled, and the world was good. Then one day someone put a browser in a phone and soon there were many phones with many different browsers. This new set of environments were even harder to develop for and had a slew of new terrifying bugs. The web developer was miserable knowing people couldn’t watch his cat video. With much time and effort he figured out many of the secrets needed to combat the evils of the different mobile platforms. Once again people could watch his cat video, he smiled, and the world was good. The end.
HTML5, Flash, and the Battle For Faster Cat VideosGreg Schechter
HTML5; it's new, it's awesome, and it's powerful, but can it take down the champ of video distribution, Flash. Which technology's got the ability to bring cat video to the next level? This talk covers the many challenges of both HTML5 and YouTube adapting to change video distribution on the web.
JS Days HTML5 Flash and the Battle for Faster Cat VideosGreg Schechter
HTML5; it’s new, it’s awesome, and it’s powerful, but can it take down the champ of video distribution, Flash? Which technology’s got the ability to bring cat video to the next level. This talk will cover the many challenges of both HTML5 and YouTube adapting to change video distribution on the web.
Presentation about YouTube and its accompanying APIs at the National Association of Government Webmasters conference in Cincinnati, OH on September 15, 2011.
YouTube today is much more than a site. Using Google Data APIs and YouTube Player APIs, developers can harness the power of world’s most popular video destination to build new and innovative applications.
A session on using Flex and AIR to develop application that can run on IOS, Android,or PlayBook. A primer on getting at least close to the dream of one code base, multiple devices.
Youtube API at Glance. presenting different type of Yotube APIs, getting data from youtube, examples and use case as (videosanjal.com).
@GDG Kathmandu Startup Weekend Bootcamp
Date: Jan 5th, 2013
http://mobilenepal.net/events/gdg-kathmandu-startup-weekend-bootcamp
Presentation on WordPress and Social Media integration given at WordCamp Raleigh on May 22, 2011. Sharing tools, techniques, and technology to implement social media tools into WordPress CMS.
Presentation about YouTube and its accompanying APIs at the National Association of Government Webmasters conference in Cincinnati, OH on September 15, 2011.
YouTube today is much more than a site. Using Google Data APIs and YouTube Player APIs, developers can harness the power of world’s most popular video destination to build new and innovative applications.
A session on using Flex and AIR to develop application that can run on IOS, Android,or PlayBook. A primer on getting at least close to the dream of one code base, multiple devices.
Youtube API at Glance. presenting different type of Yotube APIs, getting data from youtube, examples and use case as (videosanjal.com).
@GDG Kathmandu Startup Weekend Bootcamp
Date: Jan 5th, 2013
http://mobilenepal.net/events/gdg-kathmandu-startup-weekend-bootcamp
Presentation on WordPress and Social Media integration given at WordCamp Raleigh on May 22, 2011. Sharing tools, techniques, and technology to implement social media tools into WordPress CMS.
A lecture given at MIT in Boston about the benefits and technicalities of open web standards for Video and Audio. Lots of examples how to manipulate live video using CSS3 and Canvas.
HTML5 Multimedia: where we are, where we're goingbrucelawson
A much-hyped feature of HTML5 is native multimedia. In this session we’ll look at embedding <audio> and <video> into your pages, and how to make it work cross-browser and degrade gracefully in older browsers. Sound too good to be true? It’s not!
We’ll look at the pros and the cons of HTML5 multimedia and see how to write simple controls with JavaScript. Most excitingly, we’ll also look at how HTML5 builds in support for subtitles and captions for multimedia accessibility. And you might pick up a Turkish dancing tip on the way.
---
Edited version of my Web Directions London talk on 26 May 2011. Slides that don't make sense out of context are removed.
HTML5 video & Amazon elastic transcoder - FCIP August 2014RZasadzinski
An intro to implementing HTML5 video in HTML files, as well as using the WordPress short code to embed HTML5 video. A brief description of the Flash approach that still works better for transparent video, and how to embed that Flash content with SWFObject 2 and include fallback content using the HTML5 video techniques covered. This allows use of Flash for video with a transparent background for all users & browsers that have Flash installed, and uses an HTML5 fallback for devices and users that don't have an appropriate version of the Flash Player installed.
A few key items are also listed with regard to using Amazon's Elastic Transcoder to convert videos into the needed formats for HTML5 video.
Сергей Батищев: 2D игры на HTML5: мифы и реальность разработкиDevGAMM Conference
Разработчики и издатели активно экспериментируют с HTML5 играми для мобильных браузеров. Cтандарт развивается очень быстро, но на разных устройствах и платформах все еще отличаются возможности, ограничения и особенности реализации HTML5 API. Докладчик поделится практическим опытом разработки игр на HTML5: какие проблемы уже не актуальны, какие сильно преувеличены, а какие, наоборот, реальны и требуют пристального внимания разработчика.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
18. Native
○ For fallbacks, use rtsp:// protocol (serving .3pg) if the
device won't support HTML5
○ Use custom protocol / URL scheme to launch your own
Android, iOS native app (no Windows Phone yet)
■ youtube://video_id
28. Mobile Formats Support
Chrome Safari Firefox Opera IE Android
H.264
WebM Android 4+ Android 4+ Android 4+
HLS Android 3+
Platform Versions and Distribution
29. The Source
<video>
<source src="funny_cat_video.mp4">
<source src="funny_cat_video.webm">
</video>
30. HLS = HTTP Live Streaming
<video src="playlist.m3u8">
32. HLS
Big Features
○ Live and Adaptive Streaming
○ Built in CDN failover
○ Metadata + Cue Points
Apple App Requirements
○ > 10 minutes in duration or 5 mb in 5 minutes
○ at least one 64 kbps or lower stream required
Tools and more information on Apple's website:
Apple's Using HTTP Live Streaming
36. Basic video tag
Safari
○ Renders a thumbnail poster and play button (flaky)
○ Background is set to black and cannot be overwritten
○ If a parent element has display:none set at any point the video fails to
playback properly
Opera
○ Gives video dimentions black background if the information is
available
○ Has issues with stretching WebM
IE and Android
○ Play button/film icon for all video tags regardless if browser can play
the format
○ Background is set to black/grey and cannot be overwritten
38. Poster Attribute
Use the poster attribute to get a thumbnail
Safari, Chrome, Android, and Opera
○ Preserve aspect ratio of poster image
IE and Firefox
○ Stretch image to size of video tag
IE
○ Keeps poster as paused state
All Others
○ Replace video with the paused frame
39. Basic video tag
Chrome
○ Default click to toggle play/pause
○ Remove with an empty onclick handler
Safari
○ Will launch any supported video with or without an onclick handler
Android and IE
○ Shows click interactions but does not play with empty onclick
40. Basic video tag
Pro tips:
○ Create your own cued state to convey you can play the video
○ Set the background color to black for continuity across platforms
43. Controls
Chrome Safari Firefox Opera IE Android
Play/pause
Button
Volume Only in Mute toggle Don't work in
Controls Fullscreen only Android 4
Seek bar
Fullscreen Button Gesture Button
button
Playback Both Fullscreen Inline only Determined Fullscreen Both
Type only by hardware only
53. Fullscreen
● Desktop
○ requestFullScreen
● Mobile
○ Open New Tab
○ webkitEnterFullscreen
● Webkit only
● Video element only
● metadata must be loaded
54. Fullscreen
● Desktop
○ requestFullScreen
● Mobile
○ Open New Tab
○ webkitEnterFullscreen
● Webkit only
● Video element only
● metadata must be loaded
● Pro Tip: Remember size context changes so
use viewport to scale icons and controls
57. Custom Controls
● Preserve your brand
● Unified experience across platforms and
browsers
● Allows us to expand the set of controls and add our own
○ annotations
○ playlist
○ captions
○ more
58. Custom Controls Pro Tips
● User expect to be able to drag the progress
bar
○ Need to remender to prevent scroll on touchstart
● Volume can't be set everywhere and users
are accustomed to using device controls
○ So don't build controls for it
59. Custom Controls Pro Tips
● Fullscreen
○ The browsing context is always fullscreen so fake it
● Don't overload clicking for both play/pause
and show/hiding controls
● Don't trigger content with hover
60. Custom Controls Pro Tips
● Fingers are fat
○ Average finger is 11mm so make targets at least
40px with 10px padding
○ Use SVG's so icons can be scaled and shared with
desktop application
○ Do what you can in css
63. autoplay
In Safari on iOS (for all devices, including iPad),
where the user may be on a cellular network and
be charged per data unit, preload and autoplay are
disabled. No data is loaded until the user initiates it.
64. autoplay
In Safari on iOS (for all devices, including iPad),
where the user may be on a cellular network and
be charged per data unit, preload and autoplay are
disabled. No data is loaded until the user initiates it.
71. autoplay
function someClickEvent(evt) {
// In a user initiated thread.
myVideoElement.load();
getVideoData(); // Triggers an ajax call.
}
function onGetVideoDataReturned(data) {
// Not in a user initiated thread.
setVideoElementSrc(data);
myVideoElement.load();
myVideoElement.play();
}
72. autoplay
function someClickEvent(evt) {
// In a user initiated thread.
myVideoElement.load();
getVideoData(); // Triggers an ajax call.
}
function onGetVideoDataReturned(data) {
// Not in a user initiated thread.
setVideoElementSrc(data);
myVideoElement.load();
// For Android
window.setTimeout(function() {
myVideoElement.play();
}, 0);
}
76. Embeds
<script>
○ We need our content to be sandboxed
○ More than just a video tag
77. Embeds
<script>
○ We need our content to be sandboxed
○ More than just a video tag
<object>
78. Embeds
<script>
○ We need our content to be sandboxed
○ More than just a video tag
<object>
○ Can load content with the data
attribute
○ But no way to interact with it via
JavaScript
83. Embeds
Pro tip: Plan for the future (if you can)
<iframe type="text/html"
width="640"
height="385"
frameborder="0"
src="http://www.youtube.com/embed/VIDEO_ID"
allowfullscreen>
</iframe>
89. API Communication
● Poll the URL fragment?
○ http://youtube.com/embed/video_id#fragment
● Messages are one dimensional.
● Polling eats up CPU and is not instant.
● Both directions of communication use the same
fragment.
91. API Communication
● Better idea: PostMessage API.
○ someWindow.postMessage(message, targetOrigin);
● Uses JSON for native encoding and decoding of data.
● No polling.
● Native event listeners.
● Communications are sandboxed per-window.
● Calls are asynchronous.
● Great for Mobile, but desktop support is missing in IE7
94. Testing: The Old Fashioned Way
● Device lab
○ accurate
○ costly
○ space inefficient
○ boring
95. Testing: With Software
● Hardware Emulators / Simulators
○ available for major systems
○ approximation varies
○ still boring
● Android Emulator
○ bulky, slow, no video codecs
● iOs Simulator
○ both tablet and phone
96. Testing: With Software
● Browser Simulators
○ Poorer approximation
● Opera Mobile Simulator
○ missing video tag support
● Fennec (FF) Simulator
○ poor touch control mapping
○ sends desktop user agent
98. Testing: Automation
● Android Webdriver
○ Still no video support
● iOS Webdriver
○ Need to register as ios dev
○ Intermittent issues with playback
● IE
○ No webdriver APIs for mobile
99. Testing: Automation
● Chrome, Opera
○ Driver APIs built-in
○ Remote debugging
● FFMobile
○ No webdriver APIs
100. Testing: Automation Strategy
● Test API methods in mobile context first
○ cheap
○ can approximate video playback by video.
currentTime
101. Testing: Automation Strategy
● More sophisticated tests to follow
○ screenreader
● Screen cap processing
○ check for distortion
○ playback accuracy