Spaces:
Sleeping
Sleeping
feat: api-server sample mode params fallback
Browse files- acestep/api_server.py +33 -2
acestep/api_server.py
CHANGED
|
@@ -246,7 +246,10 @@ def _to_int(v: Any, default: Optional[int] = None) -> Optional[int]:
|
|
| 246 |
s = str(v).strip()
|
| 247 |
if s == "":
|
| 248 |
return default
|
| 249 |
-
|
|
|
|
|
|
|
|
|
|
| 250 |
|
| 251 |
|
| 252 |
def _to_float(v: Any, default: Optional[float] = None) -> Optional[float]:
|
|
@@ -257,7 +260,10 @@ def _to_float(v: Any, default: Optional[float] = None) -> Optional[float]:
|
|
| 257 |
s = str(v).strip()
|
| 258 |
if s == "":
|
| 259 |
return default
|
| 260 |
-
|
|
|
|
|
|
|
|
|
|
| 261 |
|
| 262 |
|
| 263 |
def _to_bool(v: Any, default: bool = False) -> bool:
|
|
@@ -651,6 +657,31 @@ def create_app() -> FastAPI:
|
|
| 651 |
|
| 652 |
lm_meta = sample_metadata
|
| 653 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 654 |
print(
|
| 655 |
"[api_server] sample mode metadata:",
|
| 656 |
{
|
|
|
|
| 246 |
s = str(v).strip()
|
| 247 |
if s == "":
|
| 248 |
return default
|
| 249 |
+
try:
|
| 250 |
+
return int(s)
|
| 251 |
+
except Exception:
|
| 252 |
+
return default
|
| 253 |
|
| 254 |
|
| 255 |
def _to_float(v: Any, default: Optional[float] = None) -> Optional[float]:
|
|
|
|
| 260 |
s = str(v).strip()
|
| 261 |
if s == "":
|
| 262 |
return default
|
| 263 |
+
try:
|
| 264 |
+
return float(s)
|
| 265 |
+
except Exception:
|
| 266 |
+
return default
|
| 267 |
|
| 268 |
|
| 269 |
def _to_bool(v: Any, default: bool = False) -> bool:
|
|
|
|
| 657 |
|
| 658 |
lm_meta = sample_metadata
|
| 659 |
|
| 660 |
+
fallback_values: Dict[str, Any] = {}
|
| 661 |
+
default_bpm = _to_int(os.getenv("ACESTEP_SAMPLE_DEFAULT_BPM", "120"), 120) or 120
|
| 662 |
+
default_duration = _to_float(os.getenv("ACESTEP_SAMPLE_DEFAULT_DURATION_SECONDS", "120"), 120.0) or 120.0
|
| 663 |
+
default_key = os.getenv("ACESTEP_SAMPLE_DEFAULT_KEY", "C Major") or "C Major"
|
| 664 |
+
default_timesig = os.getenv("ACESTEP_SAMPLE_DEFAULT_TIMESIGNATURE", "4/4") or "4/4"
|
| 665 |
+
|
| 666 |
+
if req.bpm is None or req.bpm <= 0:
|
| 667 |
+
req.bpm = default_bpm
|
| 668 |
+
fallback_values["bpm"] = default_bpm
|
| 669 |
+
|
| 670 |
+
if req.audio_duration is None or req.audio_duration <= 0:
|
| 671 |
+
req.audio_duration = default_duration
|
| 672 |
+
fallback_values["audio_duration"] = default_duration
|
| 673 |
+
|
| 674 |
+
if not (req.key_scale or "").strip():
|
| 675 |
+
req.key_scale = default_key
|
| 676 |
+
fallback_values["key_scale"] = default_key
|
| 677 |
+
|
| 678 |
+
if not (req.time_signature or "").strip():
|
| 679 |
+
req.time_signature = default_timesig
|
| 680 |
+
fallback_values["time_signature"] = default_timesig
|
| 681 |
+
|
| 682 |
+
if fallback_values:
|
| 683 |
+
print("[api_server] sample mode fallback values:", fallback_values)
|
| 684 |
+
|
| 685 |
print(
|
| 686 |
"[api_server] sample mode metadata:",
|
| 687 |
{
|