> Is there some way I could store a sample rate with 32 bit precision? It
seems like the sample rate doesn't actually make any difference for raw data
and people are just using 48000 as a placeholder, but it would be really useful
if the true sample rate could be stored as it is required by the decoding tools.
It does need more than 16 bits of precision.
FLACs sample rate is a bit odd.
the codedsampleraete is a 4 bit field with common values, 44100 (CD), 48000
(DVD), etc.
there is a way to use a custom sample rate, but it is also limited to some odd
values with weird multiplication tables i don't reember off the top of my
head.
there is another avenue you can explore though, and that's simply creating
your own block type to provide the information you need.
FLAC allows people to create their own blocks, i believe there's a max of
127 kinds of blocks, and FLAC has reserved just 7 of them, including a Custom
blocktype option
> What about other metadata? Can I store arbitrary information? I don't
need to store things like artist/title that you would expect for audio tracks. I
need to store things like the format of the capture, hardware used, number of
samples per line and number of lines per field.
as I just explained, you can put whatever information you need into your own
blocktype.
> I also need a way to mark sections of the file. Think of this like having a
FLAC file of a whole album, and marking in the metadata where each track begins
and ends within the file. In my case, these are the start and end of different
recordings on one VHS tape. These sections will also need their own metadata.
Basically I need to store structured data, not just flat key=value records.
I don't see why you couldn't just create a CueSheet block for this;
it's the exact same as what CDs have been doing for decades...
> A lot of this information is not available at capture time and can only be
found by decoding the samples - which cannot be done in real-time. So I need to
be able to insert it after the decoding process, without rewriting the whole
file. I gather that it is possible to pad the metadata block to allow it to grow
later. Are there any limits on how much padding I can insert?
It's been a while since I've played with the FLAC decoder/encoder I
wrote, so I don't recall off the top of my head, but yes, you can reserve
space for metadata. libFLAC defaults to 8192 bytes of padding I believe, but you
can easily change on the command line.
as for maximum, not that I'm aware of, beyond the usual limits for FLAC
blocks
> Would there be any advantage to using OGA container instead of straight
FLAC files for this?
No, OGG would just add overhead; it's an optional container, NativeFLAC is
mandatory and default.
> Finally, the programming language of choice for this type of work is
Python. Can you suggest a good binding that supports encode, decode, metadata
manipulation, and fast sample accurate seeking?
lmao, no idea dude, and not really the place to ask. this mailing list is for
the reference FLAC implementation written in C, and generally bugs/features for
it, not user questions.