
Description:
11ffload~ starts a separate thread to decode audio data and write into a buffer~.
Compared to buffer~‘s own loading of files, we are not blocked until the complete file has been decoded and written to the refered buffer~. As soon as some data has been written to the target buffer, outlet 1 outputs properties of the source and we can start playback while the remaining data is written.
Outlet 2 will confirm with a bang when the write operation is completed.
Outlet 3 outputs a bang if no audio can be found in the source file or an error occured while processing the file.
We can abort a running decode process with a new load request.
Based on ffmpeg, we support a lot of video and audio file formats.
https://ffmpeg.org/general.html#Audio-Codecs
MSGs:
set [buffername] - set the target buffer~;
replace [filename] [opt. parameters] - load file into buffer~;
importreplace [filename] [opt. parameters] - replace buffer~ with part of file;
import [filename] [opt. parameters] - load part of file into buffer~;
info [filename] - only info output (outlet1);
break - stop decoding;
ATTRIBUTES:
resample [int] - resample loaded audio, see inspector for available values;
metadatadict [dictname] - fill a dict with the metadata of a loaded file;
debug 1/0 - print progress to Max window;
more attributes related to the "import" message (see help file)
SPECIALS:
With "importreplace" and "import" messages, you can use "buffer=<name>" instead of a filename to use another buffer~ as source.
You can use "dict=<dictname>" instead of a filename. Other externals can write a C-string to keys "name" and "path" of a dict. You can open the file without using Max symbol table for the file name.
Source Code:
soon on github
Changelog:
2022/06/22
- added importreplace, import and info messages
- added resample, metadatadict and import related attributes
- added "channel route" argument for all messages
- added ability to import from another buffer~
- updated help patcher