Stack operations on a guitar loop pedal
charlieharrington.com
charlieharrington.com
I'm definitely intrigued by the idea of better understanding these complex signal pipelines. In fact, a usesthis.com style website that shows the pedal box arrangements and signal flow diagrams for various guitarists would be a website I'd quite enjoy visiting.
You can occasionally see guitarists' signal flows and stopbox arrays in interviews etc, but the truth is usually obscured by prestige, sponsorship concerns, and the logistics of touring.
I am currently bread-boarding two guitar pedals for myself, and there is great discussion on modulargrid.net on filtering.
> You can occasionally see guitarists' signal flows and stopbox arrays in interviews etc
It's amazing how much influence these interviews have. They have, in the past, directly led to surges in demand for, e.g. the Klon Centaur and variacs.
Hell, I've gone to shows for the sole purpose of hand-delivering the artist a replacement product.
There are a lot of interviews in Guitar magazine on the total rig used by particular guitarists. For example: https://guitar.com/wp-content/uploads/2020/09/rig-diagram-Ma...
Of course, this includes the whole signal chain, including the pick!
https://www.youtube.com/watch?v=f4ECPsHpI_Q
Jon Gomm's pedal board - set up for his acoustic guitar which has 3 different pickups all sending seperate signals to his pedal board, and with different eq and effects applied to each pickup.
(And to see an amazing performance of that in use, see here: https://www.youtube.com/watch?v=5vCcZIARw9k )
The under-the-saddle piezo acts as an accelerometer right at the termination point of the string. So it gets every partial without any real damping, so they tend to sound far too bright. You're directly picking up vibrations that tend to be damped by the time they go through the impedance matching system that is a live guitar (i.e. acoustic radiation from a few feet or more in front of the soundboard). Fishman often roll their piezos off a lot to de-emphasize the upper partials, because it sounds so bright.
The humbucker is effectively a velocirometer, and is around a quarter of the scale length along, so it sounds a lot more mellow than the piezo, but picks up on different things. It also doesn't get the damping that the string-wood-air interface tends to bring, and also doesn't pick up on the neat interactions the instrument has with the internal and external air elements (for example, the Helmholtz and pipe modes of the air in the internal cavity).
The internal mic does sample the interaction the guitar has with the air. But it misses out on the higher radiation modes, which tend to be radiated out the front of the guitar. So it sounds very 'boomy'. It's convenient, for a mic, but doesn't sound great by itself.
In combination, these sound pretty good! But still doesn't emulate the 'real thing'. Hence Jon also mentions the use of external mics too. That, in addition to the separate channel for the octave pedal!
[edited: added word "pedal"]
If you want to get an idea of how far you can go with live looping, this is one of my favorite videos (Rico Loop wandering around Berlin with looper, a mic and not a whole lot more).
Here's some riffing I did on the Stairway to Heaven solo that showcases it: https://freerobby.wistia.com/medias/vcajgqerla
If it appears "dead", that's mostly because it's essentially finished. It has all the features you've mentioned above, and then a whole lot more. All open-source and GPL'ed. Also fully controllable from e.g. MIDI pedal boards or OSC applications.
I like working within Ableton for a few recording workflow-related reasons but agree SL is fantastic as a standalone tool.
https://www.youtube.com/watch?v=v9GyoUmhKU0&ab_channel=Casey...
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!)
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.
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.
My looper had sort of git model with staging area and committed area. Both staging and committed loops were mixed down to output. You could re-record over staging area as many times as you wanted until you were satisfied, then you could mix it down to commited loop. It's like stack but only top-most loop is changeable. That model provided infinite loop overdubs, ability to undo mistake, and used only x2 memory.
Regarding your delay effect, I was quite fascinated by how analog delay pedals allowed live-changing of loop length and the resulting effect it would produce [2]. I researched into the bucket brigade IC, quite interesting stuff. I think in digital you'd have all kinds of nasty glitches if you tried to do it with simple pointer modifications.
[1] https://github.com/jmiskovic/DSPedal/ [2] https://www.youtube.com/watch?v=xJPde-C28iU
The repitching effect happens because the output from the ring buffer is effectively being resampled. Implementing this is a little funky, but with some clever tricks in how the ring buffer is used and some form of interpolation, you can get essentially the same effect.
Here's my implementation, which uses Hermite interpolation: https://github.com/eric-wood/delay/blob/main/src/delay.rs
Dustin Wong https://www.youtube.com/watch?v=j1PuWrE9nKY