cutcutcodec.core.io.scheduler.audio_frames_async
- cutcutcodec.core.io.scheduler.audio_frames_async(stream: StreamAudio, rate: Fraction | int, start_time: Fraction, samples: int | None = None, **_) Iterable[FrameAudio][source]
Decode the audio frames in an over thread for performance.
Parameters
- streamcutcutcodec.core.classes.stream_audio.StreamAudio
The audio stream for extract the frames.
- rateint
The time frequency between each samples to catch.
- start_timefraction.Fraction
The frame with start time < start_time are ignored.
- samplesint, optional
The maximum number of samples in a frame. The last frame can to contains less samples in order to reach the end. The special default value None means to choose automaticaly the optimal number of samples in accordance to the sample rate. By default, the samples are choose for a duration of 100 ms.
Yields
- cutcutcodec.core.classes.frame_audio.FrameAudio
The frame audio such as create the complete signal if we concatenate her.
Examples
>>> from fractions import Fraction >>> from cutcutcodec.core.filter.audio.subclip import FilterAudioSubclip >>> from cutcutcodec.core.generation.audio.noise import GeneratorAudioNoise >>> from cutcutcodec.core.io.scheduler import audio_frames_async >>> >>> (stream,) = FilterAudioSubclip(GeneratorAudioNoise(0).out_streams, 0, 1).out_streams >>> for frame in audio_frames_async(stream, 1000, Fraction(10, 1001), samples=200): ... frame.time, frame.samples ... (Fraction(1, 100), 200) (Fraction(21, 100), 200) (Fraction(41, 100), 200) (Fraction(61, 100), 200) (Fraction(81, 100), 190) >>>