Button Start Stop Loop Play Audio

Yes and 99% of all these tutorials are beaten with

the experts blindness for beginner difficulties

That is the reason why reading one of these tutorials requires

That all these tons of tutorials make it hard to understand has three reasons:

  1. NOT emphasizing the fundamental difference between delay() and non-blocking timing which is only BASED on millis(). It needs more than a simple call to function millis().

From a quick reading most newcomers think replace delay() with millis() and you are done
which is totally wrong.

  1. this: has been handed down for ages
    but still a very bad example this
    infamous inglorious blink without delay example of the arduino-IDE
    making non-blocking timing unnecessarily difficult to understand through badly chosen variable names, and scattering the variables around in the code.

  2. not using an everyday-example with easy to follow numbers that explains all details written out for most easiest understanding

The experienced users here will roll their eyes :roll_eyes: but I will repeat such postings until the Arduino-team will have replaced this BW-understand-example code with something much better and setup a tutorial that follows the three reasons I have written above

So here it is:

Additionally here is a short not yet finished tutorial outer high-level circular-repeating coding
which shows the fundamental difference to linear coding / inner low-level repeating coding.

best regards Stefan