Episode 1 of the deepdive series into FLAC, digital audio and its lossless compression.
Manim source code for the series: https://github.com/kleinesfilmroellch...
The FLAC specification: https://www.xiph.org/flac/format.html (Official Specification) https://datatracker.ietf.org/doc/html... (Internet Draft as of January 2022; mostly a copy of the specification + corrections)
SerenityOS: https://serenityos.org
95% of this video was created with the Manim animation tool, created by Grant Sanderson (3Blue1Brown) and supported by the Manim community. https://www.manim.community/
TV news: tagesschau 1960/11/16, 8 pm (https://www.tagesschau.de/multimedia/... )
Concert recording: Carlos Kleiber Beethoven symphony No.7, Op.92: mov.4 ( • Video )
Footnotes (square brackets in the video):
[1] For the purposes of this video a codec is just a file format
[2] CDAudio is not a real file format, but stands for the encoding used by CD audio discs
[3] OVERSIMPLIFICATION, I know, and also I don’t know shit about ZIP so don’t @ me
[4] http://hyperphysics.phyastr.gsu.edu/...
[5] We could also average the signal over the short time slice instead, there are multiple approaches of best finding a sample value.
[6] Additionally, there needs to be an analog low pass filter (blocking frequencies above some point) that blocks all frequencies above the maximum representable frequency, the “Nyquist limit”. This needs to be in place both before converting the signal to digital and after reconverting it to analog. Otherwise, you get “aliasing”, pseudofrequency information that isn’t actually there.
[7] It mainly comes down to the fact that analog low pass filters are imperfect, and these frequencies are wellsuited for syncing with other data streams, such as standard definition video in the case of 48kHz. For those reasons, we rather choose the sampling rate a bit too high than too low.
[8] Technically, the entire process of digitizing a signal is called quantization, but that’ll get confusing.
[9] We can also use floatingpoint numbers (basically decimal), but that’s not something FLAC supports and it’s not generally superior to integer sample representation.
[10] This is a simplification and technically wrong. Any range sizes for these values are possible as an amplitude, and there are five differently sized ranges with six numbers. My point still stands: The differences are very hearable.