Reviens is a small web application for creating perfectly loopable audio clips from any audio file. It provides tempo (BPM) detection, pitch detection, selection tools (snap to beat / zero crossing), enhanced crossfade options and a straightforward WAV export workflow.
- Drag-and-drop or file picker for loading audio (standard formats supported)
- Waveform visualization with beat/measure navigation
- Automatic BPM and pitch detection
- Quick length presets (1 / 2 / 4 / 8 / 16 / 32 beats)
- Advanced tools: crossfade types, click reduction, snap to beat / zero crossing
- Automatic loop suggestion (
FIND LOOPS) - WAV export with enriched filename metadata (pitch, bpm, length, crossfade, timestamp)
-
Open the app in your browser:
-
Open the file directly:
reviens/reviens.html -
Or run a local static server (recommended) from the repository root:
# from the project root python3 -m http.server 8000 # then open http://localhost:8000/reviens/reviens.html
-
-
Drag and drop an audio file or click the upload area to choose a file.
-
Use the waveform to place the loop start point, or click
FIND LOOPSto let the app suggest segments. -
Adjust loop length (1 / 2 / 4 beats, ...), position and advanced settings (crossfade, click reduction, snap).
-
Click
EXPORTto generate a WAV file. The export applies a crossfade to create seamless loops.
Tip: For best results, enable βSnap to beatβ and choose durations that match whole musical measures (1 bar, 2 bars, ...).
reviens/reviens.htmlβ main UIreviens/REVIENS/β scripts and styles (e.g.main.js,loop-analyzer.js,export-manager.js, etc.)
Export logic is implemented in REVIENS/export-manager.js: it produces a 16-bit WAV and builds a descriptive filename including pitch, bpm, length and timestamp.
-
No build step required β the app is static. Edit files in
REVIENS/directly. -
To test locally:
python3 -m http.server 8000 # or use a static dev server (live-server, http-server, etc.) -
Check your browser console for logs and errors (audio detection, export, permission issues).
-
Format: WAV 16-bit
-
The exporter will try to use the File System Access API when available, otherwise it will fall back to a classic download.
-
Example generated filename:
reviens_C4_120bpm_1bar_2_0s_cos_CR_440hz_20260110_120000.wav(contains detected note, bpm, musical length, duration, crossfade type, click reduction flag, detected frequency and timestamp)
- Report issues or suggest improvements via the repository's issue tracker.
- Fork & PR: describe your change and include tests or a demo when applicable.
No explicit license is provided in this repository. Add a LICENSE file (e.g. MIT, Apache-2.0) if you want to specify terms.
- Associated with TOPLAP Strasbourg (see link in the app UI)
For questions or technical discussions, open an issue in the repository or contact the project author.
Notes & future ideas:
- Multi-format export (MP3/OGG) via a backend or ffmpeg
- Improve tempo detection for polyrythmic music
- Add a small envelope editor and advanced fade shaper
Thanks β have fun making loops! ππΆ