Files
DJ_Teaser_Clipper/README_DA.md
Thomas abf2109171 First Upload
All Files
2026-01-29 10:48:02 +01:00

5.9 KiB
Raw Blame History

Auto Clip (V_1 / V_2 / V_3)

Et lokalt, offline-venligt toolkit til at lave DJ-style album teasers ved automatisk at finde highlights i dine tracks og klippe dem sammen til en kort teaser med Python + FFmpeg.

Repoet er tænkt organiseret sådan her:

Auto Clip/
  V_1/
  V_2/
  V_3/

Hver version bygger ovenpå den forrige og giver mere “DJ-feel” og automation.


Hvad den gør

Du giver en mappe med tracks (WAV/MP3/FLAC osv.), og scripts kan:

  • Scanne tracks automatisk (med max-grænse, fx 20)
  • Vælge tracks efter index (fx 1,2,5,7 eller 1-4,9) eller automatisk vælge en best-of
  • Finde highlight-sektioner (energi + onset/transients)
  • Snappe cuts til et bar-grid (phrase-aligned “DJ” cuts)
  • Valgfri pre-roll (starter 1 bar før highlight)
  • Render klip og samle med acrossfades
  • Eksportere WAV + MP3
  • Lave en JSON rapport med timestamps og metadata

Note: Det her er audio-analyse + heuristik, ikke “generativ musik-AI”.
LLM/Ollama kan hjælpe med README/promo/tracklist, men selve klipningen laves lokalt med librosa + FFmpeg.


Versioner 🧩

V_1 — Minimal MVP

Formål: Hurtig proof-of-concept.

Typisk:

  • Highlight detection (energi/onset)
  • Simpel render + acrossfade teaser
  • JSON rapport

Bedst når: du vil i gang hurtigt.


V_2 — Valg + Best-of + DJ ordering

Formål: Git-klar CLI og bedre “DJ flow”.

Tilføjer:

  • Folder scan (max 20)
  • Track selection via index/range (--select 1-4,7)
  • Auto selection (--select auto --auto-n 8)
  • Ordering heuristics (tempo clustering + energy ramp)
  • WAV + MP3 eksport
  • JSON rapport

Bedst når: du vil have et praktisk tool du kan bruge igen og igen.


V_3 — Harmonic mixing + downbeat-ish snap + 2-pass loudness

Formål: Trance-venlig “DJ teaser” kvalitet.

Tilføjer:

  • Key detection (chroma) + Camelot mapping (best effort)
  • Harmonic ordering (Camelot neighbors) → mere smooth transitions
  • “Downbeat-ish” bar-start snap (beat grid + onset accent heuristik)
  • 2-pass loudnorm pr klip (mere ens output)

Bedst når: du laver old school trance, og det skal føles som mini-mix.


Krav 🛠️

System

  • FFmpeg installeret og i PATH
  • Python 3.10+ anbefalet (3.11+ er perfekt)

Python pakker

Standard:

  • numpy
  • librosa
  • soundfile

Valgfrit:

  • requests (kun hvis du bruger Ollama helper til README/promo assets)

Install (anbefalet) 🐍

Lav et virtualenv:

python -m venv .venv
# Linux/macOS:
source .venv/bin/activate
# Windows PowerShell:
# .\.venv\Scripts\Activate.ps1

pip install -U pip
pip install numpy librosa soundfile

Hvis du vil bruge Ollama helper:

pip install requests

FFmpeg install hints 🎬

Debian/Ubuntu

sudo apt-get update
sudo apt-get install -y ffmpeg

Windows

Installer FFmpeg og sørg for at ffmpeg.exe ligger i PATH (så ffmpeg -version virker).


Brug 🚀

Scripts ligger under V_1/, V_2/, V_3/ alt efter repo-strukturen. Eksemplerne antager at du kører fra en version-mappe og har en tracks/ mappe.

Input

Læg dine filer her:

tracks/
  01 - Track.wav
  02 - Track.mp3
  ...

V_2 eksempler

Brug alle tracks (max scan gælder stadig)

python dj_teaser_v2.py --tracks-dir ./tracks --select all --mode rollcall --teaser 60 --bars 2 --preroll-bars 1

Vælg konkrete tracks via index

python dj_teaser_v2.py --tracks-dir ./tracks --select 1,2,3,7,9 --teaser 60 --bars 2

Range + mix

python dj_teaser_v2.py --tracks-dir ./tracks --select 1-4,7,10-12 --teaser 60 --bars 2

Auto best-of (vælg top N tracks)

python dj_teaser_v2.py --tracks-dir ./tracks --select auto --auto-n 8 --mode bestof --teaser 75 --bars 4 --preroll-bars 1

V_3 eksempler (anbefalet til trance)

Rollcall (alle tracks, hurtigt DJ flip)

python dj_teaser_v3.py --tracks-dir ./tracks --select all --teaser 60 --bars 2 --preroll-bars 1 --avoid-intro 30 --harmonic

Best-of mini-mix vibe

python dj_teaser_v3.py --tracks-dir ./tracks --select auto --auto-n 8 --teaser 75 --bars 4 --preroll-bars 1 --avoid-intro 30 --harmonic

Output 📦

Typisk:

  • out/album_teaser.wav
  • out/album_teaser.mp3
  • out/teaser_report.json

Rapporten indeholder:

  • valgt track order
  • estimeret BPM
  • key/camelot (V_3)
  • clip start og varighed

Tuning tips (old school trance) 💡

  • Undgå lange intros: --avoid-intro 30 eller 45
  • DJ phrasing:
    • --bars 2 til rollcall med mange tracks (14+)
    • --bars 4 hvis du vil have mere “rigtig trance”
  • Lead-in: --preroll-bars 1 giver ofte mere naturlige transitions
  • Crossfade:
    • 0.200.35 sek er typisk sweetspot
  • Harmonic mode (V_3): --harmonic anbefales, men key detection er best-effort

Begrænsninger ⚠️

  • Beat og key detection er heuristik; nogle tracks kan blive “off”, især med:
    • lange breakdowns
    • meget pad/noise
    • ambient intro/outro
  • “Downbeat” er approx (beat grid + onset accent), ikke en trænet downbeat-model
  • Hvis du vil have det helt perfekt, så tweak:
    • --avoid-intro, --bars, --preroll-bars, --select og track order

Valgfrit: Ollama (tekst) 🤖

Hvis du kører Ollama lokalt (fx http://192.168.2.60:11434) kan du bruge den til:

  • README tekst
  • promo tekst (TikTok/IG/YouTube)
  • tracklist med timestamps (ud fra teaser_report.json)

Anbefalet model (som du har):

  • llama3.1:8b-instruct-q4_0

Ollama er valgfri og ikke nødvendig for audio-klipningen.


Repo hygiene 🧼

Foreslået .gitignore:

.venv/
__pycache__/
work/
out/
*.wav
*.mp3

License

Vælg det der passer (MIT er typisk).
Hvis du ikke har valgt endnu, kan du tilføje MIT senere.


Credits

  • FFmpeg til audio processing
  • librosa til audio analyse