file chance
This commit is contained in:
105
V_1/readme.md
105
V_1/readme.md
@@ -1,42 +1,121 @@
|
||||
Scan mappe og brug alle (max 20)
|
||||
# Auto Clip – V1 (Minimal MVP)
|
||||
|
||||
python dj\_teaser.py --tracks-dir ./tracks --select all --mode rollcall --teaser 60 --bars 2
|
||||
**Auto Clip V1** er den første og mest simple version af projektet.
|
||||
Formålet er at lave en **hurtig proof-of-concept DJ teaser**, hvor korte klip fra flere tracks samles til én teaser.
|
||||
|
||||
V1 fokuserer på:
|
||||
- simpel track-udvælgelse
|
||||
- hurtig teaser-render
|
||||
- minimal DJ-logik
|
||||
|
||||
---
|
||||
|
||||
Vælg specifikke tracks (1-based index)
|
||||
## Hvad gør V1?
|
||||
|
||||
python dj\_teaser.py --tracks-dir ./tracks --select 1,2,3,7,9 --teaser 60 --bars 2
|
||||
Scriptet:
|
||||
|
||||
- Scanner en mappe med audio-tracks
|
||||
- Vælger tracks manuelt eller automatisk
|
||||
- Klipper korte segmenter fra hvert track
|
||||
- Samler dem til en teaser
|
||||
- Eksporterer:
|
||||
- `album_teaser.wav`
|
||||
- `teaser_report.json`
|
||||
|
||||
> ⚠️ V1 har **ingen** harmonic mixing, Camelot, preroll eller avanceret DJ-logik.
|
||||
> For mere “DJ-feel”, se **V2** og **V3**.
|
||||
|
||||
Range + mix
|
||||
---
|
||||
|
||||
python dj\_teaser.py --tracks-dir ./tracks --select 1-4,7,10-12 --teaser 60 --bars 2
|
||||
## Krav
|
||||
|
||||
- Python 3.10+
|
||||
- FFmpeg installeret og i PATH
|
||||
- En mappe med audiofiler (`wav`, `mp3`, osv.)
|
||||
|
||||
---
|
||||
|
||||
## Mappestruktur (eksempel)
|
||||
|
||||
```
|
||||
V_1/
|
||||
├── dj_teaser.py
|
||||
├── tracks/
|
||||
│ ├── 01 - Track.wav
|
||||
│ ├── 02 - Track.wav
|
||||
│ └── ...
|
||||
└── out/
|
||||
```
|
||||
|
||||
Output: ./out/album\_teaser.wav + ./out/teaser\_report.jsonScan mappe og brug alle (max 20)
|
||||
---
|
||||
|
||||
python dj\_teaser.py --tracks-dir ./tracks --select all --mode rollcall --teaser 60 --bars 2
|
||||
## Brug 🚀
|
||||
|
||||
### Scan mappe og brug alle tracks (max 20)
|
||||
|
||||
```bash
|
||||
python dj_teaser.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select all \
|
||||
--mode rollcall \
|
||||
--teaser 60 \
|
||||
--bars 2
|
||||
```
|
||||
|
||||
Vælg specifikke tracks (1-based index)
|
||||
---
|
||||
|
||||
python dj\_teaser.py --tracks-dir ./tracks --select 1,2,3,7,9 --teaser 60 --bars 2
|
||||
### Vælg specifikke tracks (1-baseret index)
|
||||
|
||||
```bash
|
||||
python dj_teaser.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select 1,2,3,7,9 \
|
||||
--teaser 60 \
|
||||
--bars 2
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Range + mix
|
||||
### Range + mix
|
||||
|
||||
python dj\_teaser.py --tracks-dir ./tracks --select 1-4,7,10-12 --teaser 60 --bars 2
|
||||
```bash
|
||||
python dj_teaser.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select 1-4,7,10-12 \
|
||||
--teaser 60 \
|
||||
--bars 2
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output 📦
|
||||
|
||||
Efter kørsel ligger output i `./out/`:
|
||||
|
||||
```
|
||||
out/
|
||||
├── album_teaser.wav
|
||||
└── teaser_report.json
|
||||
```
|
||||
|
||||
Output: ./out/album\_teaser.wav + ./out/teaser\_report.json
|
||||
### `album_teaser.wav`
|
||||
Den færdige teaser (samlede klip).
|
||||
|
||||
### `teaser_report.json`
|
||||
Metadata om:
|
||||
- hvilke tracks der blev brugt
|
||||
- rækkefølge
|
||||
- kliplængder og timing
|
||||
|
||||
---
|
||||
|
||||
## Begrænsninger (V1)
|
||||
|
||||
- Ingen harmonic mixing
|
||||
- Ingen Camelot / key detection
|
||||
- Ingen preroll
|
||||
- Cuts er simple (ingen downbeat-snap)
|
||||
- Loudness kan variere mellem tracks
|
||||
|
||||
👉 **V1 er ment som baseline / MVP**.
|
||||
For mere avanceret DJ-flow og trance-venlige teasers, brug **V2** eller **V3**.
|
||||
|
||||
158
V_2/readme.md
158
V_2/readme.md
@@ -1,34 +1,168 @@
|
||||
Install (til repo)
|
||||
# Auto Clip – V2 (DJ Tooling & Best‑Of)
|
||||
|
||||
**Auto Clip V2** bygger videre på V1 og er den første version, der er tænkt som et **praktisk DJ‑værktøj** – ikke kun et proof‑of‑concept.
|
||||
|
||||
V2 introducerer:
|
||||
- track‑udvælgelse (manuel + auto best‑of)
|
||||
- bedre teaser‑flow
|
||||
- preroll og crossfade
|
||||
- trance‑venlige defaults
|
||||
- mulighed for at generere README / promo via Ollama
|
||||
|
||||
---
|
||||
|
||||
## Hvad gør V2?
|
||||
|
||||
V2‑scriptet kan:
|
||||
|
||||
- Scanne en mappe med tracks (max 20)
|
||||
- Vælge tracks:
|
||||
- alle
|
||||
- specifikke index / ranges
|
||||
- automatisk *best‑of*
|
||||
- Undgå lange intros
|
||||
- Klippe DJ‑venlige segmenter
|
||||
- Samle dem med crossfade
|
||||
- Eksportere:
|
||||
- `album_teaser.wav`
|
||||
- `album_teaser.mp3`
|
||||
- `teaser_report.json`
|
||||
- (Valgfrit) generere README / promo‑tekst via Ollama
|
||||
|
||||
---
|
||||
|
||||
## Install (til repo) 🐍
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
|
||||
source .venv/bin/activate
|
||||
|
||||
pip install -U pip
|
||||
|
||||
pip install numpy librosa soundfile requests
|
||||
```
|
||||
|
||||
\# ffmpeg skal være installeret og i PATH
|
||||
> ⚠️ **FFmpeg skal være installeret og ligge i PATH**
|
||||
|
||||
---
|
||||
|
||||
## Mappestruktur (eksempel)
|
||||
|
||||
🎛️ Kommandoer jeg ville bruge til dine 14 old school trance tracks
|
||||
```
|
||||
V_2/
|
||||
├── dj_teaser_v2.py
|
||||
├── tracks/
|
||||
│ ├── 01 - Track.wav
|
||||
│ ├── 02 - Track.wav
|
||||
│ └── ...
|
||||
└── out/
|
||||
```
|
||||
|
||||
1\) “Rollcall” (alle 14, DJ-flip)
|
||||
---
|
||||
|
||||
python dj\_teaser\_v2.py --tracks-dir ./tracks --select all --teaser 60 --bars 2 --preroll-bars 1 --avoid-intro 30 --crossfade 0.25
|
||||
## Anbefalede kommandoer 🎛️
|
||||
*(til dine 14 old school trance tracks)*
|
||||
|
||||
---
|
||||
|
||||
### 1️⃣ Rollcall – alle tracks (hurtigt DJ‑flip)
|
||||
|
||||
2\) “Best-of” (mere mini-mix vibe)
|
||||
God til:
|
||||
- album previews
|
||||
- “hvem er med?”‑teasers
|
||||
|
||||
python dj\_teaser\_v2.py --tracks-dir ./tracks --select auto --auto-n 8 --mode bestof --teaser 75 --bars 4 --preroll-bars 1 --avoid-intro 30 --crossfade 0.25
|
||||
```bash
|
||||
python dj_teaser_v2.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select all \
|
||||
--teaser 60 \
|
||||
--bars 2 \
|
||||
--preroll-bars 1 \
|
||||
--avoid-intro 30 \
|
||||
--crossfade 0.25
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 2️⃣ Best‑of – mini‑mix vibe
|
||||
|
||||
3\) Samtidig generér README/promo via din Ollama
|
||||
God til:
|
||||
- promo‑teaser
|
||||
- social media
|
||||
- mere musikalsk flow
|
||||
|
||||
python dj\_teaser\_v2.py --tracks-dir ./tracks --select auto --auto-n 8 --teaser 75 --bars 4 \\
|
||||
```bash
|
||||
python dj_teaser_v2.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select auto \
|
||||
--auto-n 8 \
|
||||
--mode bestof \
|
||||
--teaser 75 \
|
||||
--bars 4 \
|
||||
--preroll-bars 1 \
|
||||
--avoid-intro 30 \
|
||||
--crossfade 0.25
|
||||
```
|
||||
|
||||
--ollama http://192.168.2.60:11434 --ollama-model qwen2.5:latest --gen-readme
|
||||
---
|
||||
|
||||
### 3️⃣ Generér README / promo via Ollama (valgfrit) 🤖
|
||||
|
||||
Hvis du kører Ollama lokalt, kan V2 også generere README og promo‑tekst automatisk.
|
||||
|
||||
```bash
|
||||
python dj_teaser_v2.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select auto \
|
||||
--auto-n 8 \
|
||||
--teaser 75 \
|
||||
--bars 4 \
|
||||
--ollama http://192.168.2.60:11434 \
|
||||
--ollama-model qwen2.5:latest \
|
||||
--gen-readme
|
||||
```
|
||||
|
||||
> ℹ️ Ollama er **valgfrit** – audio‑delen virker uden.
|
||||
|
||||
---
|
||||
|
||||
## Output 📦
|
||||
|
||||
Efter kørsel ligger output i `./out/`:
|
||||
|
||||
```
|
||||
out/
|
||||
├── album_teaser.wav
|
||||
├── album_teaser.mp3
|
||||
└── teaser_report.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Hvad er forskellen på V1 og V2?
|
||||
|
||||
| Feature | V1 | V2 |
|
||||
|------|----|----|
|
||||
| Track selection | Basis | Avanceret (index / range / auto) |
|
||||
| Best‑of mode | ❌ | ✅ |
|
||||
| Preroll | ❌ | ✅ |
|
||||
| Crossfade | Simpel | Justerbar |
|
||||
| MP3 output | ❌ | ✅ |
|
||||
| Ollama integration | ❌ | ⚠️ Valgfri |
|
||||
| DJ‑flow | Basis | Mærkbart bedre |
|
||||
|
||||
---
|
||||
|
||||
## Begrænsninger (V2)
|
||||
|
||||
- Ingen harmonic mixing / Camelot
|
||||
- Ingen ægte downbeat‑detektion
|
||||
- Key detection bruges ikke til ordering
|
||||
|
||||
👉 For **trance‑venligt DJ‑flow**, se **V3**.
|
||||
|
||||
---
|
||||
|
||||
## Næste skridt
|
||||
|
||||
- **V3**: harmonic mixing, Camelot, loudnorm, bar‑snap
|
||||
- **V4**: single CLI, bedre phrase‑logik, tempo‑normalisering
|
||||
|
||||
165
V_3/readme.md
165
V_3/readme.md
@@ -1,92 +1,163 @@
|
||||
Install (til v3)
|
||||
# Auto Clip – V3 (DJ / Trance Focused)
|
||||
|
||||
**Auto Clip V3** er den mest avancerede og musikalsk fokuserede version af Auto Clip.
|
||||
Den er designet specifikt til **old school trance** og andre elektroniske genrer, hvor **bars, flow og harmonic mixing** betyder noget.
|
||||
|
||||
V3 er der, hvor Auto Clip går fra “smart klipper” til **mini DJ-mix teaser**.
|
||||
|
||||
---
|
||||
|
||||
## Hvad gør V3 anderledes?
|
||||
|
||||
V3 bygger ovenpå V2 og tilføjer:
|
||||
|
||||
- Harmonic mixing (key detection + Camelot mapping)
|
||||
- DJ-venlig ordering af tracks
|
||||
- Bar-snap (phrase-aligned cuts)
|
||||
- Preroll bars (DJ lead-in)
|
||||
- Bedre teaser-flow
|
||||
- Konsistent loudness (loudnorm)
|
||||
- Klar integration med Ollama til repo/promo-assets
|
||||
|
||||
---
|
||||
|
||||
## Install (V3) 🐍
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
|
||||
source .venv/bin/activate
|
||||
|
||||
pip install -U pip
|
||||
|
||||
pip install numpy librosa soundfile
|
||||
```
|
||||
|
||||
\# ffmpeg skal være installeret
|
||||
> ⚠️ **FFmpeg skal være installeret og ligge i PATH**
|
||||
|
||||
---
|
||||
|
||||
## Kommandoer 🎛️
|
||||
*(optimeret til dine 14 old school trance tracks)*
|
||||
|
||||
🎛️ Kommandoer (til dine 14 old school trance tracks)
|
||||
---
|
||||
|
||||
Rollcall (alle 14, DJ flip, harmonic ordering on)
|
||||
### 1️⃣ Rollcall – alle tracks (DJ flip, harmonic ordering ON)
|
||||
|
||||
python dj\_teaser\_v3.py --tracks-dir ./tracks --select all --teaser 60 --bars 2 --preroll-bars 1 --avoid-intro 30 --harmonic
|
||||
God til:
|
||||
- album previews
|
||||
- “alle tracks med”-teaser
|
||||
|
||||
```bash
|
||||
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 (8 tracks, 4 bars)
|
||||
### 2️⃣ Best-of – mini-mix vibe (8 tracks, 4 bars)
|
||||
|
||||
python dj\_teaser\_v3.py --tracks-dir ./tracks --select auto --auto-n 8 --teaser 75 --bars 4 --preroll-bars 1 --avoid-intro 30 --harmonic
|
||||
God til:
|
||||
- promo-teaser
|
||||
- social media
|
||||
- mere musikalsk sammenhæng
|
||||
|
||||
```bash
|
||||
python dj_teaser_v3.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select auto \
|
||||
--auto-n 8 \
|
||||
--teaser 75 \
|
||||
--bars 4 \
|
||||
--preroll-bars 1 \
|
||||
--avoid-intro 30 \
|
||||
--harmonic
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
💡 V3 tweaks jeg typisk bruger til trance
|
||||
## Typiske V3 tweaks til trance 💡
|
||||
|
||||
- `--avoid-intro 30` eller `45`
|
||||
→ lange trance-intros
|
||||
|
||||
- `--bars 2`
|
||||
→ rollcall (alle tracks hurtigt igennem)
|
||||
|
||||
--avoid-intro 30 eller 45 (lange trance intros)
|
||||
- `--bars 4`
|
||||
→ mere “rigtig” trance / mini-mix feel
|
||||
|
||||
- `--preroll-bars 1`
|
||||
→ DJ lead-in (overgange føles naturlige)
|
||||
|
||||
- `--harmonic`
|
||||
→ næsten altid ON til trance 👌
|
||||
|
||||
--bars 2 hvis alle skal med (rollcall)
|
||||
---
|
||||
|
||||
## Hvordan du bruger V3 i praksis
|
||||
|
||||
### Byg teaser
|
||||
|
||||
--bars 4 hvis du vil have mere “rigtig” trance-feel
|
||||
```bash
|
||||
python dj_teaser_v3.py \
|
||||
--tracks-dir ./tracks \
|
||||
--select all \
|
||||
--teaser 60 \
|
||||
--bars 2 \
|
||||
--preroll-bars 1 \
|
||||
--avoid-intro 30 \
|
||||
--harmonic
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Generér repo-ting + promo via Ollama 🤖
|
||||
|
||||
--preroll-bars 1 giver DJ-lead-in (får overgangen til at føles naturlig)
|
||||
|
||||
|
||||
|
||||
--harmonic næsten altid “on” til trance 👌
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Hvordan du bruger det i praksis
|
||||
|
||||
|
||||
|
||||
Byg teaser med v3:
|
||||
|
||||
|
||||
|
||||
python dj\_teaser\_v3.py --tracks-dir ./tracks --select all --teaser 60 --bars 2 --preroll-bars 1 --avoid-intro 30 --harmonic
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Generér repo-ting + promo med din Llama 3.1:
|
||||
|
||||
|
||||
Hvis du kører Ollama lokalt:
|
||||
|
||||
```bash
|
||||
pip install requests
|
||||
|
||||
python ollama\_assets.py --report ./out/teaser\_report.json --ollama http://192.168.2.60:11434 --model llama3.1:8b-instruct-q4\_0 --artist DjGulvBasS --genre "old school trance"
|
||||
python ollama_assets.py \
|
||||
--report ./out/teaser_report.json \
|
||||
--ollama http://192.168.2.60:11434 \
|
||||
--model llama3.1:8b-instruct-q4_0 \
|
||||
--artist DjGulvBasS \
|
||||
--genre "old school trance"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Output 📦
|
||||
|
||||
🎛️ Små tips (trance)
|
||||
Efter kørsel ligger output i `./out/`:
|
||||
|
||||
```
|
||||
out/
|
||||
├── album_teaser.wav
|
||||
├── album_teaser.mp3
|
||||
└── teaser_report.json
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Hvis cut føles “for tidligt”: sænk --avoid-intro eller sæt --preroll-bars 0
|
||||
## Begrænsninger (V3)
|
||||
|
||||
- Key detection er **best effort**
|
||||
- pad-heavy tracks kan give upræcis Camelot
|
||||
- Downbeat er heuristisk (ikke ML-trænet)
|
||||
- Ikke en erstatning for et rigtigt DJ-mix – men tæt på 😉
|
||||
|
||||
👉 For eksperimenter og videre udvikling, se **V4 roadmap**.
|
||||
|
||||
Hvis du vil have mere “rigtig trance”: brug --bars 4 og vælg --select auto --auto-n 8
|
||||
---
|
||||
|
||||
## Kort version
|
||||
|
||||
|
||||
Hvis key detection virker off på enkelte tracks: det er normalt (pads + noise + modulations). Camelot er “best effort” her.
|
||||
|
||||
> **V3 = DJ teaser med bars, flow og harmonic mixing**
|
||||
> Brug den, når det skal lyde som et rigtigt trance-mini-mix 🔥🎛️
|
||||
|
||||
Reference in New Issue
Block a user