Surn commited on
Commit
8817130
1 Parent(s): 505e571

generate_music_segments: Logical error fix

Browse files
Files changed (1) hide show
  1. audiocraft/utils/extend.py +3 -1
audiocraft/utils/extend.py CHANGED
@@ -73,12 +73,14 @@ def generate_music_segments(text, melody, seed, MODEL, duration:int=10, overlap:
73
  while excess_duration + duration_loss > segment_duration:
74
  total_segments += 1
75
  #calculate duration loss from segment overlap
76
- duration_loss = max(total_segments - 1,0) * math.ceil(overlap / 2)
77
  #calc excess duration
78
  excess_duration = segment_duration - (total_segments * segment_duration - duration)
79
  print(f"total Segments to Generate: {total_segments} for {duration} seconds. Each segment is {segment_duration} seconds. Excess {excess_duration} Overlap Loss {duration_loss}")
80
  if excess_duration + duration_loss > segment_duration:
81
  duration += duration_loss
 
 
82
 
83
  # If melody_segments is shorter than total_segments, repeat the segments until the total_segments is reached
84
  if len(melody_segments) < total_segments:
 
73
  while excess_duration + duration_loss > segment_duration:
74
  total_segments += 1
75
  #calculate duration loss from segment overlap
76
+ duration_loss += math.ceil(overlap / 2)
77
  #calc excess duration
78
  excess_duration = segment_duration - (total_segments * segment_duration - duration)
79
  print(f"total Segments to Generate: {total_segments} for {duration} seconds. Each segment is {segment_duration} seconds. Excess {excess_duration} Overlap Loss {duration_loss}")
80
  if excess_duration + duration_loss > segment_duration:
81
  duration += duration_loss
82
+ duration_loss = 0
83
+ total_segments = min(total_segments, (720 // segment_duration))
84
 
85
  # If melody_segments is shorter than total_segments, repeat the segments until the total_segments is reached
86
  if len(melody_segments) < total_segments: