📚 flac - Awesome Go Library for Audio and Music

Go Gopher mascot for flac

Native Go FLAC encoder/decoder with support for FLAC streams.

🏷️ Audio and Music
📂 Libraries for manipulating audio.
316 stars
View on GitHub 🔗

Detailed Description of flac

flac

Go build status Coverage Status GoDoc

This package provides access to FLAC (Free Lossless Audio Codec) streams.

Documentation

Documentation provided by GoDoc.

  • flac: provides access to FLAC (Free Lossless Audio Codec) streams.
    • frame: implements access to FLAC audio frames.
    • meta: implements access to FLAC metadata blocks.

Changes

  • Version 1.0.12 (2024-08-11)

    • Improve performance of flac.NewSeek() by using a buffered reader (see #72).
    • Fix off-by-one error in Seek end of stream check (see #73).
  • Version 1.0.11 (2024-08-04)

    • Move example tools to dedicated mewkiz/flac-tools repository to reduce external dependencies (see #62).
    • Fix seek to frame start (see #71). Thanks to Mark Kremer.
    • Simplify internal handling of io.Closer element in flac.Stream and flac.Encoder types (see #70). Thanks to Mario Salgado.
  • Version 1.0.10 (2023-11-11)

    • Add support for LPC audio sample encoding (see #66). Thanks to Mark Kremer for bug fixes and Mattias Wadman for the invaluable fq tool used to investigate FLAC encoding issues.
    • Replace Travis CI with GitHub actions for CI build status, test status and code coverage #64). Thanks to Mark Kremer.
  • Version 1.0.9 (2023-10-24)

    • Fix integer overflow during unfolding of rice residual (see #61). Thanks to Mark Kremer.
    • Fix decoding of escaped partition audio samples (see #60). Thanks to Mark Kremer.
    • Handle frame hashing of audio samples with bits-per-sample not evenly divisible by 8 (see 9d50c9e).
  • Version 1.0.8 (2023-04-09)

    • Fix race condition when reading meta data (see #56). Thanks to Zach Orosz.
    • Fix encoding of 8-bps WAV audio samples (see #52). Thanks to Martijn van Beurden.
    • Fix StreamInfo block type error message (see #49).
  • Version 1.0.7 (2021-01-28)

  • Version 1.0.6 (2019-12-20)

    • Add experimental Encoder API to encode audio samples and metadata blocks (see #32).
    • Use go.mod.
    • Skip ID3v2 data prepended to flac files when parsing (see 36cc17e).
    • Add 16kHz test case. Thanks to Chewxy.
    • Fix lint issues (see #25).
  • Version 1.0.5 (2016-05-06)

    • Simplify import paths. Drop use of gopkg.in, and rely on vendoring instead (see azul3d/engine#1).
    • Add FLAC decoding benchmark (see d675e0a).
  • Version 1.0.4 (2016-02-11)

    • Add API examples to documentation (see #11).
    • Extend test cases (see aadf80a).
  • Version 1.0.3 (2016-02-02)

    • Implement decoding of FLAC files with wasted bits-per-sample (see #12).
    • Stress test the library using go-fuzz (see #10). Thanks to Patrick Mézard.
  • Version 1.0.2 (2015-06-05)

  • Version 1.0.1 (2015-02-25)

    • Fix two subframe decoding bugs (see #7). Thanks to Jonathan MacMillan.
    • Add frame decoding test cases.
  • Version 1.0.0 (2014-09-30)

    • Initial release.
    • Implement decoding of FLAC files.