Skip to content

christopherball/languageLearningAudioLooper

Repository files navigation

Language Learning Audio Looper

Local-only dark-themed A/B audio looper for language learning and close listening.

The app runs entirely in the browser. There is no backend, no uploads, and no cloud dependency. Open a local audio file, inspect its waveform, set or drag loop boundaries, and jump through detected speech sections.

Features

  • Open local audio files such as mp3, wav, ogg, m4a, and aac when the browser can decode them
  • Dark waveform view with draggable loop region and visible section dividers
  • Playback rate controls with pitch preservation
  • Silence-based sentence/section detection with tunable sensitivity sliders
  • Manual section editing by splitting at the playhead, dragging dividers, or deleting dividers to merge sections
  • Per-file persistence for loop region, zoom, playback rate, detection settings, and custom sections

Quick Start

  1. Install dependencies:
npm install
  1. Start the dev server:
npm run dev
  1. Open:
http://127.0.0.1:5173/index.html

Production Build

Build the app:

npm run build

Serve the built files locally:

python3 -m http.server 4173 --directory dist

Then open:

http://127.0.0.1:4173/index.html

The production build emits dist/index.html as the primary entry point.

Controls

  • Space: Play / pause
  • Left Arrow: Skip back 2 seconds
  • Right Arrow: Skip forward 2 seconds
  • Delete or Backspace: Delete the selected divider and merge neighboring sections
  • Double-click the waveform: Split the current section at that point
  • Drag the loop overlay: Adjust loop start/end directly on the waveform
  • Drag a divider: Retime a section boundary

Notes

  • Use a local HTTP server or Vite during development. Opening module files directly via file:// is not recommended.
  • MP3 timing can vary slightly depending on browser decoding behavior, so testing in your target browser is still a good idea.

Scripts

  • npm run dev: Start the Vite dev server
  • npm run build: Type-check and build the production bundle
  • npm run preview: Preview the production build through Vite
  • npm test -- --run: Run the test suite once

About

Local-only dark-themed A/B audio looper for language learning and close listening.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors