LIVE · Product
🗣️

ECHO

Vocal Looper & Script Rehearsal
LIVE Web Audio APIMediaRecorderBufferSource playbackRate

What it is

Private loop station: mic → WebM → decoded AudioBuffers, layered up to 6 loops. Vocal Looper & Script Rehearsal is a core component of the P31 Labs sovereign cognitive infrastructure stack — built to run offline, deployed to the edge, and designed without dark patterns.

Recording: MediaRecorder( webm/opus ) → Blob → decodeAudioData. Playback: AudioBufferSourceNode with loop=true; pitch uses playbackRate = 2^(semitones/12) (varispeed: pitch and duration scale together — not a phase-vocoder). Graph uses AnalyserNode + GainNode only; no deprecated ScriptProcessorNode.

Core features

Private loop station: mic → WebM → decoded AudioBuffers, layered up to 6 loops

Pitch via playbackRate (varispeed): global semitone slider retunes loops in real time

Each loop loops via buffer source with independent gain — mix layers in mono

Offline-first: audio never leaves your device; no accounts, no uploads

Live input meter via AnalyserNode on the microphone graph

How to use

1Grant mic permission on first Record — waveform uses live time-domain frames
2Set pitch (semitones) before recording, or move the slider to retune all loops (playing loops restart)
3Play All stacks every loop; Stop All clears buffer sources without deleting buffers

Architecture

Recording: MediaRecorder( webm/opus ) → Blob → decodeAudioData. Playback: AudioBufferSourceNode with loop=true; pitch uses playbackRate = 2^(semitones/12) (varispeed: pitch and duration scale together — not a phase-vocoder). Graph uses AnalyserNode + GainNode only; no deprecated ScriptProcessorNode.
P31 Labs, Inc. (Georgia nonprofit, EIN 42-1888158) builds open tools for cognitive sovereignty, communication clarity, and family coordination. This page is technical documentation, not medical or legal advice. Mission and support: phosphorus31.org.
⬡ Launch ECHO ← Back to Hub