<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Phil Schatzmann</provider_name><provider_url>https://www.pschatzmann.ch/home</provider_url><author_name>pschatzmann</author_name><author_url>https://www.pschatzmann.ch/home/author/pschatzmann/</author_url><title>Arduino Audio Tools: Using Tasks - Phil Schatzmann</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="Bxy9FzriJX"&gt;&lt;a href="https://www.pschatzmann.ch/home/2024/04/04/arduino-audio-tools-using-tasks/"&gt;Arduino Audio Tools: Using Tasks&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://www.pschatzmann.ch/home/2024/04/04/arduino-audio-tools-using-tasks/embed/#?secret=Bxy9FzriJX" width="600" height="338" title="&#x201C;Arduino Audio Tools: Using Tasks&#x201D; &#x2014; Phil Schatzmann" data-secret="Bxy9FzriJX" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://www.pschatzmann.ch/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><thumbnail_url>https://www.pschatzmann.ch/wp-content/uploads/2024/04/task.jpeg</thumbnail_url><thumbnail_width>300</thumbnail_width><thumbnail_height>168</thumbnail_height><description>So far I have always used the Arduino loop to do the audio processing with the hint, that there must not be any longer delay added to the processing. If you have some blocking functions in the loop, the solution is to run the audio in a separate task. I [&hellip;]</description></oembed>
