cutcutcodec.core.filter.audio.add

Allow to combine overlapping streams.

Classes

FilterAudioAdd(in_streams)

Combine the stream in once by additing the overlapping slices.

Details

class cutcutcodec.core.filter.audio.add.FilterAudioAdd(in_streams: Iterable[Stream])[source]

Combine the stream in once by additing the overlapping slices.

Examples

>>> from cutcutcodec.core.filter.audio.add import FilterAudioAdd
>>> from cutcutcodec.core.filter.audio.delay import FilterAudioDelay
>>> from cutcutcodec.core.generation.audio.noise import GeneratorAudioNoise
>>>
>>> (s_audio_0,) = GeneratorAudioNoise(0).out_streams
>>> (s_audio_1,) = FilterAudioDelay(GeneratorAudioNoise(.5).out_streams, 10).out_streams
>>> (s_add_audio,) = FilterAudioAdd([s_audio_0, s_audio_1]).out_streams
>>>
>>> s_audio_0.snapshot(8, 1, 5)
FrameAudio(8, 1, 'stereo', [[-0.6345538 ,  0.4154123 , -0.7169694 ,
                              0.78363144,  0.61358166],
                            [-0.5202795 , -0.46771908,  0.16872191,
                              0.01911473,  0.62246954]])
>>> s_audio_1.snapshot(10, 1, 3)
FrameAudio(10, 1, 'stereo', [[-0.15122247, -0.22395265,  0.25110817],
                             [-0.6546018 , -0.37251115,  0.3317027 ]])
>>> s_add_audio.snapshot(8, 1, 5)
FrameAudio(8, 1, 'stereo', [[-0.6345538 ,  0.4154123 , -0.86819184,
                              0.5596788 ,  0.8646898 ],
                            [-0.5202795 , -0.46771908, -0.4858799 ,
                             -0.35339642,  0.95417225]])
>>>

Initialise and create the class.

Parameters

in_streamstyping.Iterable[Stream]

Transmitted to cutcutcodec.core.classes.filter.Filter. About the overlaping portions, if the stream is an audio stream, a simple addition is performed but if the stream is a video stream, the frames are combined like a superposition of semi-transparent windows.