ChuxiJ commited on
Commit
3f2c850
·
1 Parent(s): e1ce8b3

feat: api-server sample mode params fallback

Browse files
Files changed (1) hide show
  1. 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
- return int(s)
 
 
 
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
- return float(s)
 
 
 
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
  {