FLAC (.flac)

Background & Context

    • MIME type:
    • FLAC lossless audio codec.
    • Used for audio archiving and playback and for exchanging audio data on the web.
    • Open standard for audio compression.
    • FLAC is an acronym for Free Lossless Audio Codec.
    • Binary file format.
    • Compresses audio samples using linear prediction and run-length encoding methods.
    • Supports up to eight audio channels.

Import & Export

  • Import["file.flac"] imports a FLAC file, returning an audio object.
  • Import["file.flac",elem] imports the specified element from a FLAC file.
  • The import format can be specified with Import["file","FLAC"] or Import["file",{"FLAC",elem,}].
  • Export["file.flac",expr] exports a sound or an audio object to FLAC.
  • Audio and sound objects are by default exported using an "Integer16" encoding.
  • See the reference pages for full general information on Import and Export.
  • ImportString and ExportString support the FLAC format.

Import Elements

  • General Import elements:
  • "Elements"list of elements and options available in this file
    "Rules"full list of rules for each element and option
    "Options"list of rules for options, properties, and settings
  • Data representation elements:
  • "Audio"an Audio object containing all audio samples
    "AudioFile"an Audio object representing the audio stored in the file
    "Data"raw audio samples given as a list of lists of real numbers, each sublist representing an individual audio channel
    "SampledSoundList"data represented as a SampledSoundList object
    "Sound"data represented as a Sound object
  • Import by default uses the "Audio" element for short FLAC files and the "AudioFile" element otherwise.
  • Advanced Import element:
  • "AudioChannels"number of audio channels
    "AudioEncoding"how samples are encoded
    "Duration"duration in seconds
    "Length"number of sound samples
    "SampleDepth"bits used to encode amplitude levels
    "SampleRate"number of amplitude samples per second and channel
  • Metadata elements:
  • "MetaInformation"interpreted as quantities, locations, dates, numbers, etc.
    "RawMetaInformation"uninterpreted as strings and numbers
  • Available metadata tags include "ID3v1" and "Xiph".
  • When exporting metainformation only to an existing file, Export will update the metainformation in the file, leaving the audio data unchanged.


  • Import and Export option:
  • "AudioChannels"Automaticnumber of audio channels
    IncludeMetaInformationAllmetadata types to import and export
    SampleRateAutomaticsamples per second for each channel
  • Export options:
  • AudioEncoding"Integer16"how samples are encoded
  • If the sample rate is not specified when exporting to FLAC, the highest sample rate occurring in the exported sound is used, and all sounds are resampled as necessary.
  • If the number of channels is unspecified, the highest number of simultaneous channels is taken, and silence is inserted if necessary.
  • If "AudioChannels" is set to a value n that is less than the number of channels to be exported, only the first n channels are exported.
  • AudioEncoding can be set to any of the following codecs:
  • "Integer8"unsigned 8-bit PCM
    "Integer16"16-bit PCM
    "Integer24"24-bit PCM
  • Supported IncludeMetaInformation settings are: "ID3v1", "Xiph", "RawID3v1", "RawXiph", All and None.


open allclose all

Basic Examples  (2)

Import a sample FLAC file:

Use Play to generate sampled sound:

Export the previous output to FLAC:

Import and plot the first 150 amplitude samples from the first audio channel:

Scope  (3)

Show all import elements available in this file:

Import audio properties:

Use ExportString and ImportString with an AIFF:

Import Elements  (16)

Available Elements  (3)

List of available elements:

Get audio-related information as a list of rules:

Import some audio options:

The "Options" element does not return all options that are present in the imported audio:

Data Representation  (5)

"Audio"  (1)

Get an audio signal given as an Audio object:

"AudioFile"  (1)

Get an audio signal given as an out-of-core Audio object:

"Data"  (1)

Get a raw audio sample, given as a list of real numbers:

Create an audio sample from imported data:

"SampledSoundList"  (1)

Get an audio signal given as a SampledSoundList object:

"Sound"  (1)

Get an audio signal given as a Sound object:

Metadata  (8)

"AudioChannels"  (1)

Get the number of audio channels:

"AudioEncoding"  (1)

The audio encoding:

"Duration"  (1)

The duration of the audio given in seconds:

"Length"  (1)

The number of samples:

"MetaInformation"  (1)

Get the audio metadata:

"RawMetaInformation"  (1)

Get the audio metadata in a raw form:

"SampleDepth"  (1)

The number of bits used to store every sample:

"SampleRate"  (1)

The number of amplitude samples per second and channel:

Import Options  (6)

"AudioChannels"  (2)

Generate a stereo FLAC file:

By default, the number of audio channels is set to be Automatic:

Specify all the audio channels to be imported:

Import second channel only:

IncludeMetaInformation  (3)

By default, all available metadata is imported:

Import the sound with no metadata:

Import the audio with only specified classes of metadata:

SampleRate  (1)

By default, the sample rate is extracted from the file:

Specify the sample rate of the imported sound:

Export Options  (4)

"AudioChannels" (1)

By default, the audio is exported using the default number of channels:

Specify the number of channels of exported audio:

AudioEncoding  (1)

By default, the audio is exported using the "Integer16" encoding:

Specify the encoding of exported audio:

IncludeMetaInformation  (1)

By default, the audio is exported using the metadata:

Specify the metadata of exported audio:

SampleRate  (1)

By default, the audio is exported using the default sample rate:

Specify the sample rate of exported audio:

Introduced in 2007
Updated in 2018