Hello again
I been making various loopers in Pd for over a year now and always used ipoke~ because I thought I would need speed changes and instant reversing, but hardly ever did. The often suffered from a whispering artifact that got worse the longer the loop played. Then I came across Looper.pd by Pierre Massat, Guitar Extended, 2013 and it didn't suffer any degradation.
So here's my version along with lots of other little abstractions to make it look nice

Seconds: Loop length in seconds
Fade: Feedback level
Fade: Feedback level
Level: Output level
Pan-out: Pan output
Pan-in: Pan input (if Thru is checked)
Scale: Scale wave display
Tap: Click twice to produce an interval (millisecs)
Interval: Time interval in millisecs
BPM:- Time interval as beats/minute (sets interval)
Beat/bar: Number of beats in a bar (multiplies Interval)
Bars: Multiplies Interval x Beat/bar x Bars = Seconds
Current: Current position in loop in seconds (read only)
Normalize: Normalize wave array (hard wired to 0.5)
Del start: Counts 8 intervals then clears loop, starts Record and starts Play
Update: Allow the wave display to be updated each cycle
Thru: Allow Audio in to pass through
Mute: Mute Output
Record: Record button (requires play to be active)
Play: Play Loop
Save: Save Loop as wave file
Load: Load a wave file (usually a saved loop)
Reverse: Reverse loop (not realtime)
Clear: Clear loop
Metronome: indicators for interval and bar (off by default click to toggle on or off

Inputs: Audio in, Interval in seconds, Record (0 or 1), Stop message in, Start (0 or 1)

Outputs: Audio out L, Audio out R, loop end bang, Stop message out, Start out (outputs 0 or 1).
The number boxes are Pd number gatom boxes hiding behind a canvas, so therefore respond to shift click and drag, however ther is no feedback when entering via the keyboard except for a wedge shape that disappears after 5 seconds. The number appears after pressing enter or zeros if timed out

Any of the boxes related to time (coloured blue) are best changed via the keyboard rather than dragged because there is a delay as the loop array is resized.