Audio

Audio[file]

represents audio stored in the given file.

Audio[url]

represents audio stored in the given URL.

Audio[data]

represents audio with samples given by the array data.

Details and Options

  • Audio[] displays an audio player.
  • In Audio[file], file can be specified as a string or as a File object, referring to an audio file. Supported file formats include: AIFF, FLAC, M4A, MP3, MP4, Ogg, QuickTime and WAV.
  • In Audio[url], url can be specified as a string, URL object, or CloudObject.
  • Audio can represent an audio signal stored in memory or can link to a local or remote audio file that is accessed as a stream for playback and processing.
  • When constructing an audio object by just keeping a link, the byte count of the representative object and therefore the containing notebook will be smaller.
  • In Audio[data], data can be either of the following:
  • {v1,v2,}sample values of the single-channel audio
    {{v11,v12,},{v21,v22,},}sample values of the multichannel audio, with values vij corresponding to channel i
  • The input array data can be given as a List, NumericArray, SparseArray, etc.
  • In Audio[data], rows of data are assumed to be channels of the resulting audio.
  • By default, sampling rate of 44100 Hz is assumed. Other sampling rates can be specified using the SampleRate option.
  • Audio[Sound[]] converts the sound to an audio object, sampling SoundNote primitives as needed.
  • Audio[Video[]] creates an Audio object referring to the first audio track for file formats supported by Audio.
  • Audio[data,"type"] can be used to create an audio object of a different type. Values in data are coerced to the specified type by rounding or clipping. By default, "Real32" is assumed.
  • Possible settings for "type" include:
  • "SignedInteger8"signed 8-bit integers from through
    "SignedInteger16"signed 16-bit integers from through
    "SignedInteger32"signed 32-bit integers from through
    "Real32"single-precision real (32 bit)
    "Real64"double-precision real (64 bit)
  • Audio is treated as a raw object by functions like AtomQ and for purposes of pattern matching.
  • The following options can be specified:
  • AppearanceAutomaticappearance of the generated player
    AnnotationRulesNonea list of named annotations
    AudioChannelAssignmentAutomatichow to assign audio channels to outputs
    AudioOutputDevice$DefaultAudioOutputDeviceaudio output device to use for playback
    AudioLabelAutomaticthe label to show on the audio object
    MetaInformationmetainformation associated with the audio
    SampleRateAutomaticsampling rate
    SoundVolume1sound volume
  • Possible settings for Appearance are "Minimal", "Basic", and "Detailed".
  • Information for Audio may include the following properties:
  • "Channels"number of audio channels
    "DataType"underlying data type
    "Duration"duration of the audio signal
    "Length"number of audio samples
    "ResourcePath"path to the audio file
    "SampleRate"sampling rate

Examples

open allclose all

Basic Examples  (2)

An audio object linking to a local file:

Waveform plot of the audio:

Attenuate an audio signal by simply multiplying it with a number:

Scope  (10)

Basic Uses  (5)

Import an Audio object from a file:

An audio object linking to a local file:

An audio object linking to a URL:

An audio object linking to a CloudObject:

An audio track of a video file:

Audio Generation  (5)

Create a mono audio signal from a list of data values:

Create a stereo audio sample:

Convert a Sound object to Audio:

Convert a Sound object including notes:

Create an audio signal of type "SignedInteger8":

Change the audio type from 8-bit signed integer to 32-bit real:

Options  (5)

Appearance  (1)

By default, a basic GUI is shown:

Show a minimal GUI:

Show a detailed GUI:

AudioLabel  (1)

By default, an automatic label is used based on the audio type:

Display a custom label on the GUI:

AudioOutputDevice  (1)

By default, $DefaultAudioOutputDevice is used for playback:

Check the list of available devices:

MetaInformation  (1)

Add custom metainformation to an audio object:

Use Options to extract the metainformation:

SampleRate  (1)

By default, a sample rate of 44.1 kHz is assumed:

Specify a different sample rate:

Properties & Relations  (7)

Use AudioQ to check for valid audio expressions:

Audio objects are atoms and cannot be subdivided:

Different audio types use different bit depths. Use smaller bit depth for compression:

Audio[file] and Audio[url] are not importing the underlying data into the memory:

Extract ByteCount of the generated player:

Compare with the byte count of the original file:

Use Normal to bring the data in out-of-core audio objects into memory:

Use AudioGenerator to create various oscillators and noises:

Create a pink noise:

Use AudioPlot to visualize the waveform of an audio object:

Neat Examples  (1)

Create a complex audio signal using only bitwise operations:

Introduced in 2016
 (11.0)
 |
Updated in 2017
 (11.2)
2019
 (12.0)
2020
 (12.1)