[LAD] [Ann] Folve: Fuse file system that convolves flac files on-the-fly
h.zeller at acm.org
Tue Sep 18 00:04:03 UTC 2012
On 16 September 2012 09:10, Fons Adriaensen <fons at linuxaudio.org> wrote:
> On Sun, Sep 16, 2012 at 12:46:42AM -0700, Henner Zeller wrote:
> > Over the week or so, I've build some fuse filesystem filters flac files
> > on-the-fly
> > using the zita convolver. This makes it real easy to play
> > around with files and filters. In particular with systems that otherwise
> > don't support stream convolving, but just can read files.
> Interesting project...
> One thing: when skipping forward (or seeking in general)
> there's no need to convolve all data up to that point.
> If P is the new position and L is the lenght of the IR,
> then just call Convproc->reset(), seek the input file to
> P - L (or 0 if P < L), and convolve up to P. You're
> computing a FIR filter, so no more history is required.
I know. The only reason for doing what I am doing is entirely because of
the filesystem semantics.
On the filesystem level, I don't 'see' seeks to audio frame positions but
_only_ file positions. Since the input and the output is a compressed flac
file, the relationship cannot be predicted - this is why I have to walk up
to that point to present a consistent view of the file (in particular if
that file is mmap()ed or if users jump around in it, this is important).
(this would be different if input and output was wav where the relationship
is clear; but wav doesn't provide such a rich header format, so that the
user in media server that display tags and images would be bad).
> If the seek involves an output discontinuity for the user,
> you could even just call Conproc->reset(), seek to P, and
> proceed normally. The result will be as if there was only
> silence before P.
> A world of exhaustive, reliable metadata would be an utopia.
> It's also a pipe-dream, founded on self-delusion, nerd hubris
> and hysterically inflated market opportunities. (Cory Doctorow)
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Linux-audio-dev