More refactoring
This commit is contained in:
@@ -83,7 +83,7 @@ def group_speakers(speakers, scene) -> List[List[bpy.types.Object]]:
|
|||||||
return ret_val
|
return ret_val
|
||||||
|
|
||||||
|
|
||||||
def adm_for_object(scene, sound_object: ObjectMix, room_size, adm_builder, object_index, wav_format):
|
def adm_for_object(scene, sound_object: ObjectMix, room_size, adm_builder, object_index):
|
||||||
fps = scene.render.fps
|
fps = scene.render.fps
|
||||||
frame_start = scene.frame_start
|
frame_start = scene.frame_start
|
||||||
frame_end = scene.frame_end
|
frame_end = scene.frame_end
|
||||||
@@ -95,11 +95,11 @@ def adm_for_object(scene, sound_object: ObjectMix, room_size, adm_builder, objec
|
|||||||
|
|
||||||
created.audio_object.start = Fraction(frame_start, fps)
|
created.audio_object.start = Fraction(frame_start, fps)
|
||||||
created.audio_object.duration = Fraction(frame_end - frame_start, fps)
|
created.audio_object.duration = Fraction(frame_end - frame_start, fps)
|
||||||
created.track_uid.sampleRate = wav_format.sampleRate
|
created.track_uid.sampleRate = sound_object.sample_rate
|
||||||
created.track_uid.bitDepth = wav_format.bitsPerSample
|
created.track_uid.bitDepth = sound_object.bits_per_sample
|
||||||
|
|
||||||
|
|
||||||
def adm_for_scene(scene, sound_objects: List['ObjectMix'], wav_format, room_size):
|
def adm_for_scene(scene, sound_objects: List['ObjectMix'], room_size):
|
||||||
adm_builder = ADMBuilder()
|
adm_builder = ADMBuilder()
|
||||||
|
|
||||||
frame_start = scene.frame_start
|
frame_start = scene.frame_start
|
||||||
@@ -113,7 +113,7 @@ def adm_for_scene(scene, sound_objects: List['ObjectMix'], wav_format, room_size
|
|||||||
adm_builder.create_content(audioContentName="Objects")
|
adm_builder.create_content(audioContentName="Objects")
|
||||||
|
|
||||||
for object_index, sound_object in enumerate(sound_objects):
|
for object_index, sound_object in enumerate(sound_objects):
|
||||||
adm_for_object(scene, sound_object, room_size, adm_builder, object_index, wav_format)
|
adm_for_object(scene, sound_object, room_size, adm_builder, object_index)
|
||||||
|
|
||||||
adm = adm_builder.adm
|
adm = adm_builder.adm
|
||||||
|
|
||||||
@@ -149,13 +149,18 @@ def write_muxed_wav(mix_pool: ObjectMixPool, scene, out_format, room_size, outfi
|
|||||||
READ_BLOCK = 1024
|
READ_BLOCK = 1024
|
||||||
|
|
||||||
sound_objects = mix_pool.object_mixes
|
sound_objects = mix_pool.object_mixes
|
||||||
adm, chna = adm_for_scene(scene, sound_objects, out_format, room_size=room_size)
|
adm, chna = adm_for_scene(scene, sound_objects, room_size=room_size)
|
||||||
|
|
||||||
outfile.axml = lxml.etree.tostring(adm, pretty_print=True)
|
outfile.axml = lxml.etree.tostring(adm, pretty_print=True)
|
||||||
outfile.chna = chna
|
outfile.chna = chna
|
||||||
outfile.bext = bext_data(scene, out_format.sampleRate, room_size=room_size)
|
outfile.bext = bext_data(scene, out_format.sampleRate, room_size=room_size)
|
||||||
|
|
||||||
cursor = 0
|
cursor = 0
|
||||||
|
|
||||||
|
# Not sure if this is necessary but lets do it
|
||||||
|
for obj in mix_pool.object_mixes:
|
||||||
|
obj.mixdown_reader.seek(0)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
remainder = shortest_file - cursor
|
remainder = shortest_file - cursor
|
||||||
to_read = min(READ_BLOCK, remainder)
|
to_read = min(READ_BLOCK, remainder)
|
||||||
@@ -221,6 +226,5 @@ def generate_adm(context: bpy.types.Context, filepath: str, room_size: float, ma
|
|||||||
output_filename=filepath,
|
output_filename=filepath,
|
||||||
room_size=room_size)
|
room_size=room_size)
|
||||||
|
|
||||||
|
|
||||||
print("generate_adm exiting")
|
print("generate_adm exiting")
|
||||||
return {'FINISHED'}
|
return {'FINISHED'}
|
||||||
|
|||||||
@@ -30,6 +30,14 @@ class ObjectMix:
|
|||||||
def frame_end(self):
|
def frame_end(self):
|
||||||
return self.scene.frame_end
|
return self.scene.frame_end
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sample_rate(self):
|
||||||
|
return self.mixdown_reader.sampleRate
|
||||||
|
|
||||||
|
@property
|
||||||
|
def bits_per_sample(self):
|
||||||
|
return self.mixdown_reader.bitdepth
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def mixdown_reader(self) -> Bw64Reader:
|
def mixdown_reader(self) -> Bw64Reader:
|
||||||
if self._mixdown_reader is None:
|
if self._mixdown_reader is None:
|
||||||
|
|||||||
Reference in New Issue
Block a user