{"id":906,"date":"2009-01-20T22:56:04","date_gmt":"2009-01-21T06:56:04","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/?p=906"},"modified":"2020-07-25T22:28:57","modified_gmt":"2020-07-26T05:28:57","slug":"science-into-engineering","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/","title":{"rendered":"Science Into Engineering"},"content":{"rendered":"<p>I modified my <a href=\"http:\/\/multimedia.cx\/eggs\/rpc-based-distributed-test-staging\/\">distributed RPC test staging utility<\/a> to implement my <a href=\"http:\/\/multimedia.cx\/eggs\/not-an-exact-science\/\">imprecise audio testing idea<\/a>. This is the output under typical conditions:<\/p>\n<pre>\r\nThere was 1 unique stdout blob collected\r\nall successful configurations agreed on this stdout blob:\r\npass\r\n<\/pre>\n<p>So, <strong>it worked<\/strong>. Yeah, I&#8217;m surprised too. That result means that all the configurations (20 total) produce an audio waveform in which no individual PCM sample deviates from the reference wave by more than 1. Since I had to choose <em>some<\/em> configuration to generate the reference sample, I used Linux \/ x86_32 \/ gcc 2.95.3.<\/p>\n<p>BTW, this is the general Python algorithm I am using to compare the waves. It takes a full minute, give or take a second, to compare 2 33MB samples:<\/p>\n<p><script src=\"https:\/\/gist.github.com\/multimediamike\/535f96d4db9457169cf7e184686426fa.js\"><\/script><\/p>\n<p>I replaced abs() with a branch to check if the diff is < -1 or > 1, but that didn&#8217;t improve speed measurably. I think the constant unpacking might have something to do with it. Better solutions welcome. (By comparison, performing a comparison using &#8216;cmp&#8217; of 2 identical files that have the same size as the test above, living on a network share, takes less than 2 seconds.)<\/p>\n<p>For a 10-second sample of a .m4a stereo AAC file (882,000 samples), these are the number of PCM samples that deviated by 1 (first number), and by more than 1 (second number). You will notice that no samples deviated by more than 1, which was my hypothesis at the start, and the basis on which I devised this plan:<\/p>\n<pre>\r\nMac OS X \/ PPC \/ gcc 4.0.1\r\n432691, 0\r\n\r\nLinux \/ x86_32 \/ icc\r\n238, 0\r\n\r\nLinux \/ x86_32 \/ gcc 2.95.3\r\n0, 0\r\n\r\nLinux \/ PPC \/ gcc 4.0.4\r\nLinux \/ PPC \/ gcc 4.1.2\r\nLinux \/ PPC \/ gcc 4.2.4\r\nLinux \/ PPC \/ gcc 4.3.2\r\nLinux \/ PPC \/ gcc svn\r\n432701, 0\r\n\r\nLinux \/ x86_64 \/ gcc 4.0.4\r\nLinux \/ x86_64 \/ gcc 4.1.2\r\nLinux \/ x86_64 \/ gcc 4.2.4\r\nLinux \/ x86_64 \/ gcc 4.3.2\r\nLinux \/ x86_64 \/ gcc svn\r\n248, 0\r\n\r\nLinux \/ x86_32 \/ gcc 3.4.6\r\nLinux \/ x86_32 \/ gcc 4.0.4\r\nLinux \/ x86_32 \/ gcc 4.1.2\r\nLinux \/ x86_32 \/ gcc 4.2.4\r\nLinux \/ x86_32 \/ gcc 4.3.2\r\nLinux \/ x86_32 \/ gcc svn\r\n237, 0\r\n\r\nMac OS X \/ x86_64 \/ gcc 4.0.1\r\n244, 0\r\n<\/pre>\n<p>I have thrown RealAudio Cooker and 28.8 samples at this, and both work. I am still testing this against some more audio samples to ensure that this idea holds water.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I think that this imprecise audio testing idea might work<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101,55],"tags":[134,108],"class_list":["post-906","post","type-post","status-publish","format-standard","hentry","category-fate-server","category-python","tag-audio","tag-fate"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"I think that this imprecise audio testing idea might work\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Multimedia Mike\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta property=\"og:description\" content=\"I think that this imprecise audio testing idea might work\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2009-01-21T06:56:04+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-26T05:28:57+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I think that this imprecise audio testing idea might work\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#article\",\"name\":\"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes\",\"headline\":\"Science Into Engineering\",\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"},\"datePublished\":\"2009-01-20T22:56:04-08:00\",\"dateModified\":\"2020-07-25T22:28:57-07:00\",\"inLanguage\":\"en-US\",\"commentCount\":12,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#webpage\"},\"articleSection\":\"FATE Server, Python, audio, fate\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/python\\\/#listItem\",\"name\":\"Python\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/python\\\/#listItem\",\"position\":2,\"name\":\"Python\",\"item\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/python\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#listItem\",\"name\":\"Science Into Engineering\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#listItem\",\"position\":3,\"name\":\"Science Into Engineering\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/category\\\/python\\\/#listItem\",\"name\":\"Python\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/\",\"name\":\"Multimedia Mike\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Multimedia Mike\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#webpage\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/\",\"name\":\"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes\",\"description\":\"I think that this imprecise audio testing idea might work\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/science-into-engineering\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/author\\\/multimedia-mike\\\/#author\"},\"datePublished\":\"2009-01-20T22:56:04-08:00\",\"dateModified\":\"2020-07-25T22:28:57-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#website\",\"url\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/\",\"name\":\"Breaking Eggs And Making Omelettes\",\"description\":\"Topics On Multimedia Technology and Reverse Engineering\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/multimedia.cx\\\/eggs\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes","description":"I think that this imprecise audio testing idea might work","canonical_url":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#article","name":"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes","headline":"Science Into Engineering","author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"},"datePublished":"2009-01-20T22:56:04-08:00","dateModified":"2020-07-25T22:28:57-07:00","inLanguage":"en-US","commentCount":12,"mainEntityOfPage":{"@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#webpage"},"isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#webpage"},"articleSection":"FATE Server, Python, audio, fate"},{"@type":"BreadcrumbList","@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","position":1,"name":"Home","item":"https:\/\/multimedia.cx\/eggs","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/python\/#listItem","name":"Python"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/python\/#listItem","position":2,"name":"Python","item":"https:\/\/multimedia.cx\/eggs\/category\/python\/","nextItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#listItem","name":"Science Into Engineering"},"previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#listItem","position":3,"name":"Science Into Engineering","previousItem":{"@type":"ListItem","@id":"https:\/\/multimedia.cx\/eggs\/category\/python\/#listItem","name":"Python"}}]},{"@type":"Organization","@id":"https:\/\/multimedia.cx\/eggs\/#organization","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","url":"https:\/\/multimedia.cx\/eggs\/"},{"@type":"Person","@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author","url":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/","name":"Multimedia Mike","image":{"@type":"ImageObject","@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/2eb93f7cada658f7986b5092062849fa255779eada3342c8f6b9a40764b95fdd?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Multimedia Mike"}},{"@type":"WebPage","@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#webpage","url":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/","name":"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes","description":"I think that this imprecise audio testing idea might work","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/multimedia.cx\/eggs\/#website"},"breadcrumb":{"@id":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/#breadcrumblist"},"author":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"creator":{"@id":"https:\/\/multimedia.cx\/eggs\/author\/multimedia-mike\/#author"},"datePublished":"2009-01-20T22:56:04-08:00","dateModified":"2020-07-25T22:28:57-07:00"},{"@type":"WebSite","@id":"https:\/\/multimedia.cx\/eggs\/#website","url":"https:\/\/multimedia.cx\/eggs\/","name":"Breaking Eggs And Making Omelettes","description":"Topics On Multimedia Technology and Reverse Engineering","inLanguage":"en-US","publisher":{"@id":"https:\/\/multimedia.cx\/eggs\/#organization"}}]},"og:locale":"en_US","og:site_name":"Breaking Eggs And Making Omelettes | Topics On Multimedia Technology and Reverse Engineering","og:type":"article","og:title":"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes","og:description":"I think that this imprecise audio testing idea might work","og:url":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/","article:published_time":"2009-01-21T06:56:04+00:00","article:modified_time":"2020-07-26T05:28:57+00:00","twitter:card":"summary","twitter:title":"Testing The Imprecise Audio Tester | Breaking Eggs And Making Omelettes","twitter:description":"I think that this imprecise audio testing idea might work"},"aioseo_meta_data":{"post_id":"906","title":"Testing The Imprecise Audio Tester | #site_title","description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2020-12-31 22:02:34","updated":"2025-12-31 19:03:20","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/multimedia.cx\/eggs\/category\/python\/\" title=\"Python\">Python<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tScience Into Engineering\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/multimedia.cx\/eggs"},{"label":"Python","link":"https:\/\/multimedia.cx\/eggs\/category\/python\/"},{"label":"Science Into Engineering","link":"https:\/\/multimedia.cx\/eggs\/science-into-engineering\/"}],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=906"}],"version-history":[{"count":21,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/906\/revisions"}],"predecessor-version":[{"id":4589,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/906\/revisions\/4589"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=906"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}