Isn't the ability to back out of the stack context basically half the point of stack operations? Without the LIFO behavior, it's not really a "stack" in any computational sense.
The article doesn't describe a stack. The closest thing is progressive bitwise OR operations on a ring buffer, good until your whole ring buffer is filled with 1s.
During one of my daily perusals of the YouTubes I came across KT Tunstall[0] going into detail on how she does live looping for her shows. Apparently, I'm not up on the pop scene, she's pretty well respected as one of the best 'loopers'.<p>[0] <a href="https://www.youtube.com/watch?v=liOOHp61nZE" rel="nofollow">https://www.youtube.com/watch?v=liOOHp61nZE</a>
I guess it's a stack in the sense that each additional loop is being pushed onto a stack of sorts. This is how the Ditto looper I use works, and you can even perform the "pop" operation and back out of an additional layer.<p>I'm working on a digital delay pedal at the moment, and the underlying data structure is really similar in principle to a looper in that it's a ring buffer that continually loops around (although a bit more complex since the delay time can change!)<p>In actual production loop pedals I'm sure there's optimizations that can be done, but a naive implementation of the layering would just mean creating additional buffers for each layer, and keeping the read/write pointers sync'd between all of them. The output then just becomes a mixed version of all of the loops.<p>When a phrase extends beyond the loop length and repeats over itself, the buffer for that given layer would read the existing value and write a mixed version of the two signals.
What I love about loop pedals is it makes time a musical instrument. Brian Eno played with this. Dustin Wong is a delight.<p>Dustin Wong
<a href="https://www.youtube.com/watch?v=j1PuWrE9nKY" rel="nofollow">https://www.youtube.com/watch?v=j1PuWrE9nKY</a>