feat: reggaeton production system with intelligent sample selection and FLP generation
This commit is contained in:
49
tests/analyzer/test_batch.py
Normal file
49
tests/analyzer/test_batch.py
Normal file
@@ -0,0 +1,49 @@
|
||||
"""Quick test: analyze 20 samples to verify everything works before full batch."""
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
import warnings
|
||||
|
||||
warnings.filterwarnings("ignore")
|
||||
|
||||
PROJECT = r"C:\Users\Administrator\Documents\fl_control"
|
||||
os.chdir(PROJECT)
|
||||
sys.path.insert(0, PROJECT)
|
||||
|
||||
from src.analyzer import collect_audio_files, batch_analyze
|
||||
|
||||
lib1 = os.path.join(PROJECT, "libreria", "reggaeton")
|
||||
lib2 = os.path.join(PROJECT, "librerias", "reggaeton")
|
||||
|
||||
files = collect_audio_files(lib1, lib2)
|
||||
print(f"Total files: {len(files)}")
|
||||
|
||||
# Take first 20
|
||||
test_files = files[:20]
|
||||
print(f"Testing with {len(test_files)} files...\n")
|
||||
|
||||
start = time.time()
|
||||
results = batch_analyze(test_files, workers=8)
|
||||
elapsed = time.time() - start
|
||||
|
||||
valid = [r for r in results if "error" not in r]
|
||||
errors = [r for r in results if "error" in r]
|
||||
|
||||
print(f"\nDone in {elapsed:.1f}s ({elapsed/len(test_files):.2f}s/file)")
|
||||
print(f"Valid: {len(valid)} | Errors: {len(errors)}")
|
||||
|
||||
for r in valid:
|
||||
role = r["role"]
|
||||
char = r["character"]
|
||||
key = r["musical"]["key"]
|
||||
bpm = r["perceptual"]["tempo"]
|
||||
new = r["new_name"]
|
||||
orig = os.path.basename(r["original_path"])
|
||||
print(f" {orig:45s} -> {role:10s} {char:12s} {key:5s} {bpm:5.0f}bpm -> {new}")
|
||||
|
||||
if errors:
|
||||
print(f"\nErrors:")
|
||||
for e in errors:
|
||||
print(f" {e}")
|
||||
|
||||
print(f"\n{'OK - Ready for full batch!' if len(valid) > 15 else 'Too many errors!'}")
|
||||
Reference in New Issue
Block a user