Fixed grouping issue
This commit is contained in:
@@ -151,11 +151,14 @@ def group_speakers(speakers, scene) -> List[List[bpy.types.Object]]:
|
|||||||
|
|
||||||
ret_val = [[]]
|
ret_val = [[]]
|
||||||
for spk in by_priority:
|
for spk in by_priority:
|
||||||
|
success = False # flaggy-flag because I can't do a break->continue from the inner
|
||||||
for elem in ret_val:
|
for elem in ret_val:
|
||||||
if list_can_accept_speaker(elem, spk):
|
if list_can_accept_speaker(elem, spk):
|
||||||
elem.append(spk)
|
elem.append(spk)
|
||||||
|
success = True
|
||||||
break
|
break
|
||||||
ret_val.append([spk])
|
if not success:
|
||||||
|
ret_val.append([spk])
|
||||||
|
|
||||||
for i in range(len(ret_val)):
|
for i in range(len(ret_val)):
|
||||||
ret_val[i] = speakers_by_start_time(ret_val[i])
|
ret_val[i] = speakers_by_start_time(ret_val[i])
|
||||||
@@ -265,15 +268,8 @@ def load_infiles_for_muxing(mixdowns):
|
|||||||
return infiles, shortest_file
|
return infiles, shortest_file
|
||||||
|
|
||||||
|
|
||||||
def rm_object_mixes(mixdowns):
|
|
||||||
print("rm_object_mixes entered")
|
|
||||||
for elem in mixdowns:
|
|
||||||
os.unlink(elem[0])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def write_muxed_wav(mixdowns, scene, out_format, room_size, outfile, shortest_file, object_count, infiles):
|
def write_muxed_wav(mixdowns, scene, out_format, room_size, outfile, shortest_file, object_count, infiles):
|
||||||
print("write_muxed_wav entered")
|
#print("write_muxed_wav entered")
|
||||||
READ_BLOCK=1024
|
READ_BLOCK=1024
|
||||||
speaker_groups = list(map(lambda x: x[1], mixdowns))
|
speaker_groups = list(map(lambda x: x[1], mixdowns))
|
||||||
|
|
||||||
@@ -302,6 +298,8 @@ def mux_adm_from_object_mixdowns(scene, mixdowns_spk_list_tuple, output_filename
|
|||||||
"""
|
"""
|
||||||
mixdowns are a tuple of wave filename, and corresponding speaker object
|
mixdowns are a tuple of wave filename, and corresponding speaker object
|
||||||
"""
|
"""
|
||||||
|
#print("mux_adm_from_object_mixdowns entered")
|
||||||
|
|
||||||
object_count = len(mixdowns_spk_list_tuple)
|
object_count = len(mixdowns_spk_list_tuple)
|
||||||
assert object_count > 0
|
assert object_count > 0
|
||||||
|
|
||||||
@@ -320,7 +318,11 @@ def mux_adm_from_object_mixdowns(scene, mixdowns_spk_list_tuple, output_filename
|
|||||||
for infile in infiles:
|
for infile in infiles:
|
||||||
infile._buffer.close()
|
infile._buffer.close()
|
||||||
|
|
||||||
rm_object_mixes(mixdowns_spk_list_tuple)
|
|
||||||
|
def rm_object_mixes(mixdowns):
|
||||||
|
#print("rm_object_mixes entered")
|
||||||
|
for elem in mixdowns:
|
||||||
|
os.remove(elem[0])
|
||||||
|
|
||||||
|
|
||||||
def all_speakers(scene):
|
def all_speakers(scene):
|
||||||
@@ -351,6 +353,7 @@ def create_mixdown_for_object(scene, speaker_group, basedir):
|
|||||||
|
|
||||||
fn = os.path.join(basedir, "%s_%s.wav" % (scene_name, speaker_name) )
|
fn = os.path.join(basedir, "%s_%s.wav" % (scene_name, speaker_name) )
|
||||||
bpy.ops.sound.mixdown(filepath=fn, container='WAV', codec='PCM', format='S24')
|
bpy.ops.sound.mixdown(filepath=fn, container='WAV', codec='PCM', format='S24')
|
||||||
|
print("Created mixdown named {}".format(fn))
|
||||||
return fn
|
return fn
|
||||||
|
|
||||||
|
|
||||||
@@ -393,11 +396,16 @@ def write_some_data(context, filepath, room_size, max_objects):
|
|||||||
too_far_speakers = []
|
too_far_speakers = []
|
||||||
if len(object_groups) > max_objects:
|
if len(object_groups) > max_objects:
|
||||||
too_far_speakers = object_groups[max_objects:]
|
too_far_speakers = object_groups[max_objects:]
|
||||||
object_groups =object_groups[0:max_objects]
|
object_groups = object_groups[0:max_objects]
|
||||||
|
|
||||||
print("Will create {} objects for {} sources, ignoring {} sources".format(
|
print("Will create {} objects for {} sources, ignoring {} sources".format(
|
||||||
len(object_groups), len(sound_sources), len(too_far_speakers)))
|
len(object_groups), len(sound_sources), len(too_far_speakers)))
|
||||||
|
|
||||||
|
for i, group in enumerate(object_groups):
|
||||||
|
print("Object Group %i"%i)
|
||||||
|
for source in group:
|
||||||
|
print(" - %s" % source.name)
|
||||||
|
|
||||||
mixdowns_spk_list_tuple = list(generate_speaker_mixdowns(scene, object_groups, filepath))
|
mixdowns_spk_list_tuple = list(generate_speaker_mixdowns(scene, object_groups, filepath))
|
||||||
|
|
||||||
mixdown_count = len(mixdowns_spk_list_tuple)
|
mixdown_count = len(mixdowns_spk_list_tuple)
|
||||||
@@ -410,6 +418,8 @@ def write_some_data(context, filepath, room_size, max_objects):
|
|||||||
room_size=room_size)
|
room_size=room_size)
|
||||||
|
|
||||||
#cleanup
|
#cleanup
|
||||||
|
#print("Will delete {} input object files".format(len(mixdowns_spk_list_tuple)))
|
||||||
|
rm_object_mixes(mixdowns_spk_list_tuple)
|
||||||
unmute_all_speakers(scene)
|
unmute_all_speakers(scene)
|
||||||
restore_output_state(ctx, context)
|
restore_output_state(ctx, context)
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|||||||
Reference in New Issue
Block a user