LOCAL AUDIO TOOLKIT · GNU GPL v3.0

Find the pocket.
Cut the loop.

Beat Chopper turns long recordings into a library of phrase-aware 4/4 loops. Not just a grid and a pair of scissors: tempo, musical boundaries, and transient evidence guide the cut.

Python CLIRuns locallyWAV + JSONNo audio uploads
SOURCE / A LONG RECORDINGILLUSTRATION — NOT LIVE AUDIO
LOCAL TEMPOONE MUSICAL POCKET → ONE LOOPTRANSIENT EDGES

01 / INSIDE THE CUT

Big picture. Small edges.

Instead of assuming the first beat defines the whole mix, the chopper works from local tempo down to the exact transient. Default runs target eight-bar loops and retain nearby alternatives.

  1. 01

    Listen locally

    Read MP3, WAV, AIFF or FLAC. Analyze long sources in five-minute tempo segments.

  2. 02

    Find the “one”

    Use kick, backbeat, crash, release and harmonic evidence to locate sections and phrases.

  3. 03

    Rank the cuts

    Search nearby sixteenth-note starts, score grid and edge evidence, and retry uncertain regions.

  4. 04

    Keep the evidence

    Write WAV loops, BPM/key filenames and a JSON database explaining the source range and warnings.

02 / YOUR FIRST CUT

Bring your own audio.

Install Python 3.9+ with compatible dependencies. Start with a short section of a steady 4/4 recording you own or have permission to use.

The command below tries a two-minute slice and exports four-bar loops. The full README includes setup notes, every option and troubleshooting.

Full installation guide ↗
QUICK START / macOS · Linux shell● ● ●
git clone https://github.com/mnicholas7/beat-chopper.git
cd beat-chopper
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

python loop_chopper.py \
  "audio/my-mix.wav" "output/audition" \
  --offset 120 --duration 120 --bars 4

Windows activation: .venv\Scripts\activate. Other OS workflows are not certified.

03 / SHAPE THE HARVEST

Your cuts, your choices.

↔

Length & density

Choose bar count, scan stride and overlapping alternates. Short audition slices help you tune a harvest before processing a whole mix.

--bars · --harvest-stride-beats
◷

Tempo & boundaries

Use local tempo segments or global analysis. Keep, mute or trim detected next-downbeat tails, with diagnostics to compare the result.

--tempo-segment-seconds · --tail-next-one-mode
⌘

Evidence & key

Estimate key per source segment or per loop, or switch it off. Detailed alignment metadata helps answer “why did it cut here?”

--key-mode · --debug-align
Explore every CLI option ↗

04 / OUT OF THE TOOL

Loops you can inspect.

Drop the exported WAVs into your DAW or sampler and listen. The filename carries tempo and key; the JSON database preserves the source timeline and alignment evidence.

The optional Rubber Band post-pass repairs transient timing into separate files. MIDI helpers create sample triggers and SP-404MKII-style bundles—not melodic or drum transcription.

output/loops/
├── my-mix/
│   ├── 000_A_min_122.47BPM_my-mix.wav
│   └── 001_A_min_122.47BPM_my-mix.wav
├── loops_database.json
└── .analysis_cache/

05 / NEXT POSSIBILITIES

Room to grow.

These are ideas, not shipped features. Help turn a practical command-line tool into a more transparent, expressive chopping workflow.

CODE, NOT A SAMPLE LIBRARY

Find something worth looping.

Explore the repository ↗

GNU GPL v3.0 · Use audio you have rights to. The code license does not grant recording or composition rights.