---
title: "AudioPlot"
language: "en"
type: "Symbol"
summary: "AudioPlot[audio] plots the waveform of audio. AudioPlot[{audio1, audio2, ...}] plots waveforms of all audioi. AudioPlot[video] plots the waveform of the first audio track in video."
keywords: 
- audio waveform
- audio visualization
- audio plot
- audio waveform plot
- sound waveform
- sound plot
- audio fingerprint
- audio signature
canonical_url: "https://reference.wolfram.com/language/ref/AudioPlot.html"
source: "Wolfram Language Documentation"
related_guides: 
  - 
    title: "Audio Processing"
    link: "https://reference.wolfram.com/language/guide/AudioProcessing.en.md"
  - 
    title: "Audio Representation"
    link: "https://reference.wolfram.com/language/guide/AudioRepresentation.en.md"
  - 
    title: "Audio Analysis"
    link: "https://reference.wolfram.com/language/guide/AudioAnalysis.en.md"
  - 
    title: "Signal Visualization & Analysis"
    link: "https://reference.wolfram.com/language/guide/SignalAnalysis.en.md"
  - 
    title: "Video Analysis"
    link: "https://reference.wolfram.com/language/guide/VideoAnalysis.en.md"
  - 
    title: "Video Computation: Update History"
    link: "https://reference.wolfram.com/language/guide/VideoComputation-UpdateHistory.en.md"
  - 
    title: "Speech Computation"
    link: "https://reference.wolfram.com/language/guide/SpeechComputation.en.md"
---
# AudioPlot

AudioPlot[audio] plots the waveform of audio.

AudioPlot[{audio1, audio2, …}] plots waveforms of all audioi.

AudioPlot[video] plots the waveform of the first audio track in video.

## Details and Options

* ``AudioPlot`` returns a single graphic showing the waveform corresponding to channels of ``audio``.

[image]

* ``AudioPlot`` has the same options as ``Graphics``, with the following additions and changes: []

|                       |               |                                             |
| --------------------- | ------------- | ------------------------------------------- |
| Appearance            | Automatic     | appearance of the plot                      |
| AspectRatio           | 1 / 6         | the aspect ratio of the plot                |
| Axes                  | {True, False} | whether to draw axes                        |
| AxesOrigin            | {0, 0}        | where axes should cross                     |
| ColorFunction         | Automatic     | how to determine the coloring of waveforms  |
| ColorFunctionScaling  | False         | whether to scale color function arguments   |
| Frame                 | True          | whether to put a frame around the plot      |
| MaxPlotPoints         | Automatic     | maximum number of samples to show           |
| PlotLayout            | Automatic     | the layout to be used                       |
| PlotRange             | Automatic     | range of values to include                  |
| PlotRangeClipping     | True          | whether to clip at the plot range           |
| PlotStyle             | Automatic     | the styles in which objects are to be drawn |
| PlotTheme             | \$PlotTheme   | overall theme for the plot                  |

* Possible settings for the ``Appearance`` option include:

|         |                 |                                    |
| ------- | --------------- | ---------------------------------- |
| [image] | "Continuous"    | continuous plot                    |
| [image] | "Discrete"      | discrete plot                      |
| [image] | "ContinuousAbs" | continuous plot of absolute values |
| [image] | "DiscreteAbs"   | discrete plot of absolute values   |

* The plot layout can be specified as ``PlotLayout -> {individual, combination}``, where ``individual`` specifies the layout for each audio object, and ``combination`` specifies how to combine multiple audio objects.

* Possible settings for ``individual`` include:

|         |            |                                         |
| ------- | ---------- | --------------------------------------- |
| [image] | "Averaged" | waveform of the average of the channels |
| [image] | "Overlaid" | overlaid waveforms of the channels      |
| [image] | "Vertical" | waveform of channels in a vertical grid |

* Possible settings for ``combination`` layouts include:

|         |            |                                              |
| ------- | ---------- | -------------------------------------------- |
| [image] | "Overlaid" | overlaid waveforms of the audio objects      |
| [image] | "Vertical" | grid waveforms of objects in a vertical grid |

* ``PlotRange`` supports the following special settings:

|          |                       |                                         |
| -------- | --------------------- | --------------------------------------- |
| t        | {{0, t}, Automatic}   | plot the first t seconds                |
| {t1, t2} | {{t1, t2}, Automatic} | plot the waveform from t1 to t2 seconds |

* The time specification ``ti`` can also be a time quantity (e.g. ``Quantity[0.1, "Minutes"]``) or sample quantity (e.g. ``Quantity[1000, "Samples"]``).

* ``ColorData["DefaultPlotColors"]`` gives the default sequence of colors used by ``PlotStyle``.

### List of all options

|                        |                 |                                                                                    |
| ---------------------- | --------------- | ---------------------------------------------------------------------------------- |
| AlignmentPoint         | Center          | the default point in the graphic to align with                                     |
| Appearance             | Automatic       | appearance of the plot                                                             |
| AspectRatio            | 1 / 6           | the aspect ratio of the plot                                                       |
| Axes                   | {True, False}   | whether to draw axes                                                               |
| AxesLabel              | None            | axes labels                                                                        |
| AxesOrigin             | {0, 0}          | where axes should cross                                                            |
| AxesStyle              | {}              | style specifications for the axes                                                  |
| Background             | None            | background color for the plot                                                      |
| BaselinePosition       | Automatic       | how to align with a surrounding text baseline                                      |
| BaseStyle              | {}              | base style specifications for the graphic                                          |
| ColorFunction          | Automatic       | how to determine the coloring of waveforms                                         |
| ColorFunctionScaling   | False           | whether to scale color function arguments                                          |
| ContentSelectable      | Automatic       | whether to allow contents to be selected                                           |
| CoordinatesToolOptions | Automatic       | detailed behavior of the coordinates tool                                          |
| Epilog                 | {}              | primitives rendered after the main plot                                            |
| FormatType             | TraditionalForm | the default format type for text                                                   |
| Frame                  | True            | whether to put a frame around the plot                                             |
| FrameLabel             | None            | frame labels                                                                       |
| FrameStyle             | {}              | style specifications for the frame                                                 |
| FrameTicks             | Automatic       | frame ticks                                                                        |
| FrameTicksStyle        | {}              | style specifications for frame ticks                                               |
| GridLines              | None            | grid lines to draw                                                                 |
| GridLinesStyle         | {}              | style specifications for grid lines                                                |
| ImageMargins           | 0.              | the margins to leave around the graphic                                            |
| ImagePadding           | All             | what extra padding to allow for labels etc.                                        |
| ImageSize              | Automatic       | the absolute size at which to render the graphic                                   |
| LabelStyle             | {}              | style specifications for labels                                                    |
| MaxPlotPoints          | Automatic       | maximum number of samples to show                                                  |
| Method                 | Automatic       | details of graphics methods to use                                                 |
| PlotLabel              | None            | an overall label for the plot                                                      |
| PlotLayout             | Automatic       | the layout to be used                                                              |
| PlotRange              | Automatic       | range of values to include                                                         |
| PlotRangeClipping      | True            | whether to clip at the plot range                                                  |
| PlotRangePadding       | Automatic       | how much to pad the range of values                                                |
| PlotRegion             | Automatic       | the final display region to be filled                                              |
| PlotStyle              | Automatic       | the styles in which objects are to be drawn                                        |
| PlotTheme              | \$PlotTheme     | overall theme for the plot                                                         |
| PreserveImageOptions   | Automatic       | whether to preserve image options when displaying new versions of the same graphic |
| Prolog                 | {}              | primitives rendered before the main plot                                           |
| RotateLabel            | True            | whether to rotate y labels on the frame                                            |
| Ticks                  | Automatic       | axes ticks                                                                         |
| TicksStyle             | {}              | style specifications for axes ticks                                                |

---

## Examples (54)

### Basic Examples (3)

Waveform of a mono audio object:

```wl
In[1]:= AudioPlot[\!\(\*AudioBox["![Embedded Audio Player](audio://content-ruo7c)"]\)]

Out[1]= [image]
```

---

Waveform of a stereo audio object:

```wl
In[1]:= AudioPlot[\!\(\*AudioBox["![Embedded Audio Player](audio://content-cj385)"]\)]

Out[1]= [image]
```

---

Waveform of the audio track of a video:

```wl
In[1]:= AudioPlot[\!\(\*VideoBox["![Video Player: ExampleData/fish.mp4](video://content-2sfji)"]\)]

Out[1]= [image]
```

### Scope (9)

#### Basic Uses (4)

A mono audio object:

```wl
In[1]:=
mono = AudioGenerator["Sin", .01];
AudioPlot[mono]

Out[1]= [image]
```

---

A stereo audio object:

```wl
In[1]:=
stereo = ExampleData[{"Sound", "Piano"}, "Audio"];
AudioPlot[stereo]

Out[1]= [image]
```

---

A multichannel audio object:

```wl
In[1]:=
multi = AudioChannelCombine[Table[AudioGenerator[i, .01], {i, {"Sin", "Sawtooth", "Triangle"}}]];
AudioPlot[multi]

Out[1]= [image]
```

---

A list of audio objects:

```wl
In[1]:= AudioPlot[{\!\(\*AudioBox["![Embedded Audio Player](audio://content-ruo7c)"]\), \!\(\*AudioBox["![Embedded Audio Player](audio://content-cj385)"]\)}]

Out[1]= [image]
```

#### Presentation (5)

Plot the waveform without any frame or axes:

```wl
In[1]:=
a = Import["ExampleData/rule30.wav"];
AudioPlot[a, Appearance -> "Discrete", Frame -> None, Axes -> None, PlotRange -> All]

Out[1]= [image]
```

---

Specify the plot style:

```wl
In[1]:=
a = Import["ExampleData/rule30.wav"];
AudioPlot[a, PlotStyle -> RGBColor[0, Rational[2, 3], 0], PlotRange -> All]

Out[1]= [image]
```

---

Specify a plot theme:

```wl
In[1]:=
a = Import["ExampleData/rule30.wav"];
AudioPlot[a, PlotTheme -> "Marketing", PlotRange -> All]

Out[1]= [image]
```

---

Add an epilog to the audio plot:

```wl
In[1]:=
a = ExampleData[{"Sound", "Piano"}, "Audio"];
AudioPlot[a, Epilog -> {Dashed, Red, Line[{{1, -1}, {1, 1}}]}]

Out[1]= [image]
```

---

Color the waveform with the corresponding value of the high-frequency content to localize onsets:

```wl
In[1]:= a = Audio["ExampleData/rule30.wav"];

In[2]:= hfc = Rescale@AudioLocalMeasurements[a, "HighFrequencyContent"];

In[3]:= Quiet@AudioPlot[a, PlotRange -> {All, All}, Appearance -> "DiscreteAbs", ColorFunction -> Function[{x, y}, ColorData["SunsetColors"]@hfc[x]]]

Out[3]= [image]
```

### Options (37)

#### Appearance (4)

By default, a continuous waveform is shown for audio objects:

```wl
In[1]:=
a = Audio["ExampleData/rule30.wav"];
AudioPlot[a, PlotRange -> {All, All}]

Out[1]= [image]
```

Show a discrete plot:

```wl
In[2]:= AudioPlot[a, Appearance -> "Discrete", PlotRange -> {All, All}]

Out[2]= [image]
```

Show a discrete plot of absolute values:

```wl
In[3]:= AudioPlot[a, Appearance -> "DiscreteAbs", PlotRange -> {All, All}]

Out[3]= [image]
```

---

The appearance elements are applied to channels of multichannel audio objects:

```wl
In[1]:=
a = ExampleData[{"Sound", "Piano"}, "Audio"];
AudioPlot[a]

Out[1]= [image]
```

Discrete absolute plot for a stereo audio object:

```wl
In[2]:= AudioPlot[a, Appearance -> "DiscreteAbs"]

Out[2]= [image]
```

---

Discrete plot for a list of audio objects:

```wl
In[1]:=
a = ExampleData[{"Sound", "Piano"}, "Audio"];
b = Audio["ExampleData/rule30.wav"];
AudioPlot[{a, b}, Appearance -> "DiscreteAbs"]

Out[1]= [image]
```

---

It is possible to control the density of vertical bars in the ``"Discrete"`` and ``"DiscreteAbs"`` visualizations using the ``MaxPlotPoints`` option:

```wl
In[1]:=
a = Audio["ExampleData/rule30.wav"];
AudioPlot[a, Appearance -> "DiscreteAbs", MaxPlotPoints -> 40, PlotRange -> {All, All}]

Out[1]= [image]
```

#### AspectRatio (1)

``AspectRatio`` controls the aspect ratio of the plot:

```wl
In[1]:=
mono = Audio["ExampleData/rule30.wav"];
AudioPlot[mono, ImageSize -> Small, AspectRatio -> 1]

Out[1]= [image]
```

With ``"Vertical"`` layout, the setting of ``AspectRatio`` controls the aspect ratio of each waveform:

```wl
In[2]:=
stereo = ExampleData[{"Sound", "Piano"}, "AudioFile"];
AudioPlot[stereo, AspectRatio -> 1]

Out[2]= [image]
```

#### Axes (1)

All the options related to ``Axes`` refer to the axes of the plots of the single channels:

```wl
In[1]:=
mono = Audio["ExampleData/rule30.wav"];
stereo = ExampleData[{"Sound", "Piano"}, "AudioFile"];

In[2]:= AudioPlot[mono, Axes -> False]

Out[2]= [image]

In[3]:= AudioPlot[stereo, Axes -> False]

Out[3]= [image]
```

#### AxesOrigin (1)

``AxesOrigin`` refers to the plots of the single channels:

```wl
In[1]:=
mono = Audio["ExampleData/rule30.wav"];
stereo = ExampleData[{"Sound", "Piano"}, "AudioFile"];

In[2]:= AudioPlot[mono, Axes -> True, AxesOrigin -> {1, .5}]

Out[2]= [image]

In[3]:= AudioPlot[stereo, Axes -> True, AxesOrigin -> {1, .5}]

Out[3]= [image]
```

#### ColorFunction (5)

Color by a scaled $y$ coordinate and scaled $x$ coordinate, respectively:

```wl
In[1]:=
a = AudioGenerator[{"Sawtooth", 2}];
AudioPlot[a, ColorFunction -> Function[{x, y}, Blend[{Red, Green}, x]]]

Out[1]= [image]

In[2]:= AudioPlot[a, ColorFunction -> Function[{x, y}, Blend[{Red, Green}, y]]]

Out[2]= [image]
```

---

Color a curve red when its absolute $x$ coordinate is above 0.6:

```wl
In[1]:= a = AudioGenerator[{"Sawtooth", 2}];

In[2]:= AudioPlot[a, ColorFunction -> Function[{x, y}, If[x > .6, Red, Blue]]]

Out[2]= [image]
```

---

``ColorFunction`` can be used to visualize properties of the audio object:

```wl
In[1]:= a = ExampleData[{"Audio", "PianoScale"}];
```

Compute the fundamental frequency of the audio object:

```wl
In[2]:= f0 = AudioLocalMeasurements[a, "FundamentalFrequency"];
```

Delete the missing values and rescale it between 0 and 1:

```wl
In[3]:= f0 = Rescale[TimeSeries[DeleteMissing[f0//Normal, 1, 2]]]

Out[3]=
TemporalData[TimeSeries, {CompressedData["«2392»"], CompressedData["«1912»"], 1, {"Continuous", 1}, {"Discrete", 1}, 1, 
  {ResamplingMethod -> {"Interpolation", InterpolationOrder -> 1}, ValueDimensions -> 1}}, False, 
 14.3]
```

Use the result so that the color of the waveform is proportional to the fundamental frequency at that time:

```wl
In[4]:= Quiet@AudioPlot[a, ColorFunction -> Function[{x, y}, ColorData["SolarColors"][f0[x]]]]

Out[4]= [image]
```

---

``ColorFunction`` has higher priority than ``PlotStyle`` for coloring the waveform:

```wl
In[1]:= audio = AudioGenerator[{"Sawtooth", 2}];

In[2]:= AudioPlot[audio, ColorFunction -> Function[{x, y}, Hue[x]], PlotStyle -> Orange]

Out[2]= [image]
```

---

``ColorFunction`` can be used with any setting of ``Appearance`` :

```wl
In[1]:= a = Audio["ExampleData/rule30.wav"];

In[2]:= AudioPlot[a, ColorFunction -> Function[{x, y}, Hue[y]], Appearance -> "DiscreteAbs", PlotRange -> {All, All}]

Out[2]= [image]
```

#### ColorFunctionScaling (1)

No argument scaling on the left; automatic scaling on the right:

```wl
In[1]:= audio = AudioGenerator[{"Sawtooth", 4}, .5];

In[2]:= Table[AudioPlot[audio, ColorFunction -> Function[{x, y}, Blend[{Red, Green}, x]], ColorFunctionScaling -> cf, ImageSize -> Small], {cf, {False, True}}]

Out[2]= [image]
```

#### FillingStyle (2)

Control the filling style:

```wl
In[1]:=
a = Audio["ExampleData/car.mp3"];
AudioPlot[a, FillingStyle -> Opacity[.3], MaxPlotPoints -> 200]

Out[1]= [image]
```

Control the filling style channel by channel:

```wl
In[2]:=
a = ExampleData[{"Audio", "Piano"}];
AudioPlot[a, FillingStyle -> {RGBColor[1, 0.5, 0], RGBColor[0, Rational[2, 3], 0]}]

Out[2]= [image]
```

---

Control the filling style of multiple audio objects:

```wl
In[1]:=
a1 = Import["ExampleData/rule30.wav"];
a2 = ExampleData[{"Audio", "Piano"}];

In[2]:= AudioPlot[{a1, a2}, FillingStyle -> Opacity[.3]]

Out[2]= [image]
```

Control the filling style audio by audio:

```wl
In[3]:= AudioPlot[{a1, a2}, FillingStyle -> {RGBColor[1, 0.5, 0], RGBColor[0, Rational[2, 3], 0]}]

Out[3]= [image]
```

Specify the filling style of the channels of each audio object:

```wl
In[4]:= AudioPlot[{a1, a2}, FillingStyle -> {{RGBColor[Rational[1, 3], Rational[1, 3], 1]}, {RGBColor[0, Rational[2, 3], 0], RGBColor[Rational[2, 3], 0, 0]}}]

Out[4]= [image]
```

#### FrameTicks (5)

The ``Automatic`` setting will generate only two ticks for the $y$ axis independently of ``PlotRange`` :

```wl
In[1]:= a = Audio["ExampleData/rule30.wav"];AudioPlot[a, FrameTicks -> {None, Automatic}, PlotRange -> {All, All}]

Out[1]= [image]
```

---

It is possible to specify the ``FrameTicks`` for each axis:

```wl
In[1]:=
a = ExampleData[{"Audio", "Piano"}];
AudioPlot[a, FrameTicks -> {{Automatic, All}, {None, All}}]

Out[1]= [image]
```

---

Place tick marks at specified positions:

```wl
In[1]:= a = ExampleData[{"Audio", "Piano"}];

In[2]:= yticks = {-.8, 0, .8};

In[3]:= AudioPlot[a, FrameTicks -> {{yticks, None}, {None, None}}]

Out[3]= [image]
```

---

Place tick marks at specified positions with arbitrary labels:

```wl
In[1]:= a = ExampleData[{"Audio", "Piano"}];

In[2]:= yticks = {{-.8, -.8}, {0, "zero"}, {.8, .8}};

In[3]:= AudioPlot[a, FrameTicks -> {{yticks, None}, {None, None}}]

Out[3]= [image]
```

---

Specify the ticks as a function:

```wl
In[1]:= audio = Import["ExampleData/rule30.wav"];

In[2]:= ticks[min_, max_] := Table[i, {i, 0, max, Round[(max - min) / 6, .1]}]

In[3]:= AudioPlot[audio, FrameTicks -> {ticks, Automatic}]

Out[3]= [image]
```

#### MaxPlotPoints (1)

``MaxPlotPoints`` controls the maximum number of points displayed:

```wl
In[1]:= a = 2.Import["ExampleData/rule30.wav"];

In[2]:= AudioPlot[a, MaxPlotPoints -> 5000]

Out[2]= [image]
```

The smaller the number of points displayed, the more smoothing is applied:

```wl
In[3]:= AudioPlot[a, MaxPlotPoints -> 40]

Out[3]= [image]
```

#### PlotLabel (2)

Add a label:

```wl
In[1]:= AudioPlot[AudioGenerator["Sin", .01], PlotLabel -> Sin[440 2Pi t]]

Out[1]= [image]
```

---

For multichannel audio, only one label is added to the whole plot:

```wl
In[1]:= stereo = ExampleData[{"Audio", "Piano"}];

In[2]:= AudioPlot[stereo, PlotLabel -> "piano"]

Out[2]= [image]
```

#### PlotLayout (3)

Choose among different plot layouts with a multichannel audio object:

```wl
In[1]:= a = ExampleData[{"Audio", "Piano"}];
```

Vertical layout:

```wl
In[2]:= AudioPlot[a, PlotLayout -> "Vertical"]

Out[2]= [image]
```

Overlaid layout:

```wl
In[3]:= AudioPlot[a, PlotLayout -> "Overlaid"]

Out[3]= [image]
```

Averaged layout:

```wl
In[4]:= AudioPlot[a, PlotLayout -> "Averaged"]

Out[4]= [image]
```

---

Choose between different plot layouts with a list of audio objects:

```wl
In[1]:=
a1 = Import["ExampleData/rule30.wav"];
a2 = ExampleData[{"Audio", "Piano"}];
```

Vertical layout:

```wl
In[2]:= AudioPlot[{a1, a2}, PlotLayout -> "Vertical"]

Out[2]= [image]
```

Overlaid layout:

```wl
In[3]:= AudioPlot[{a1, a2}, PlotLayout -> "Overlaid"]

Out[3]= [image]
```

---

Control the individual and combination layouts independently:

```wl
In[1]:=
a1 = Import["ExampleData/rule30.wav"];
a2 = ExampleData[{"Audio", "Piano"}];

In[2]:= AudioPlot[{a1, a2}, PlotLayout -> {"Overlaid", "Vertical"}, MaxPlotPoints -> 500, PlotLabel -> {"Overlaid", "Vertical"}, PlotRange -> All]

Out[2]= [image]

In[3]:= AudioPlot[{a1, a2}, PlotLayout -> {"Averaged", "Overlaid"}, MaxPlotPoints -> 500, PlotLabel -> {"Averaged", "Overlaid"}, PlotRange -> All]

Out[3]= [image]
```

#### PlotRange (4)

Plot only the first second of an audio object:

```wl
In[1]:= AudioPlot[ExampleData[{"Sound", "Piano"}, "Audio"], PlotRange -> 1]

Out[1]= [image]
```

---

Specify the $x$ range using a time ``Quantity`` :

```wl
In[1]:=
a = AudioGenerator["Sin", 10];
AudioPlot[a, PlotRange -> Quantity[10, "Milliseconds"]]

Out[1]= [image]
```

Use a ``"Samples"`` ``Quantity`` :

```wl
In[2]:= AudioPlot[a, PlotRange -> Quantity[200, "Samples"]]

Out[2]= [image]
```

---

Plot the waveform between 100 and 120 ms:

```wl
In[1]:=
a = ExampleData[{"Sound", "Piano"}, "Audio"];
AudioPlot[a, PlotRange -> {Quantity[100, "Milliseconds"], Quantity[120, "Milliseconds"]}]

Out[1]= [image]
```

---

Change the range of the $y$ axis:

```wl
In[1]:=
a = ExampleData[{"Sound", "Piano"}, "AudioFile"];
AudioPlot[a, PlotRange -> {Automatic, {0, 1}}]

Out[1]= [image]
```

#### PlotStyle (4)

``PlotStyle`` specifies the style in which the waveform is to be drawn:

```wl
In[1]:= a = Audio["ExampleData/rule30.wav"];

In[2]:= AudioPlot[a, PlotStyle -> RGBColor[1, 0.5, 0]]

Out[2]= [image]

In[3]:= AudioPlot[a, PlotStyle -> Directive[RGBColor[0, 0, 1], Opacity[.3]]]

Out[3]= [image]
```

---

Explicitly style each channel:

```wl
In[1]:= a = ExampleData[{"Audio", "Piano"}];

In[2]:= AudioPlot[a, PlotStyle -> {RGBColor[1, 0.5, 0], RGBColor[0, Rational[2, 3], 0]}]

Out[2]= [image]
```

---

``AudioPlot`` will automatically style multiple audio objects:

```wl
In[1]:=
a1 = ExampleData[{"Audio", "Piano"}];
a2 = Audio["ExampleData/rule30.wav"];

In[2]:= AudioPlot[{a1, a2}]

Out[2]= [image]
```

---

Control the style of multiple audio objects:

```wl
In[1]:=
a1 = ExampleData[{"Audio", "Piano"}];
a2 = Audio["ExampleData/rule30.wav"];

In[2]:= AudioPlot[{a1, a2}, PlotStyle -> Opacity[.5]]

Out[2]= [image]
```

Explicitly style multiple audio objects:

```wl
In[3]:= AudioPlot[{a1, a2}, PlotStyle -> {RGBColor[1, 0.5, 0], RGBColor[0, Rational[2, 3], 0]}]

Out[3]= [image]
```

Specify the style of the individual channels of each audio object:

```wl
In[4]:= AudioPlot[{a1, a2}, PlotStyle -> {{RGBColor[0, Rational[2, 3], 0], RGBColor[Rational[1, 3], Rational[1, 3], 1]}, {RGBColor[1, 0.5, 0]}}]

Out[4]= [image]
```

#### PlotTheme (3)

Use a theme with simple styling and a bright color scheme:

```wl
In[1]:= AudioPlot[ExampleData[{"Audio", "Piano"}], PlotTheme -> "Business"]

Out[1]= [image]
```

---

Change the color scheme:

```wl
In[1]:= AudioPlot[ExampleData[{"Audio", "Piano"}], PlotTheme -> "Business", PlotStyle -> ColorData[96]]

Out[1]= [image]
```

---

Use minimal styling:

```wl
In[1]:= AudioPlot[ExampleData[{"Audio", "Piano"}], PlotTheme -> "Minimal"]

Out[1]= [image]
```

### Applications (3)

Highlight parts of an audio object:

```wl
In[1]:= a = ExampleData[{"Sound", "FluteScale"}, "Audio"];

In[2]:=
silence = AudioIntervals[a, "Inaudible", 0.1];
AudioPlot[a, Epilog -> {RGBColor[1, 0, 0, .2], Rectangle[{#[[1]], -1}, {#[[2]], 1}]& /@ silence}]

Out[2]= [image]
```

---

Plot waveforms of audio files in a collection:

```wl
In[1]:= Multicolumn[AudioPlot[ExampleData[#, "AudioFile"], PlotLabel -> #[[2]], PlotTheme -> "Minimal"]& /@ ExampleData["Sound"][[ ;; 12]], 3]

Out[1]= [image]
```

---

Show a ``TimeSeries`` on top of the waveform:

```wl
In[1]:= a = Audio["ExampleData/car.mp3"];

In[2]:= ts = AudioLocalMeasurements[a, "RMSAmplitude"];

In[3]:= Show[AudioPlot[a], ListLinePlot[ts, PlotStyle -> Pink]]

Out[3]= [image]
```

### Interactive Examples (1)

Build a dynamic waveform visualization:

```wl
In[1]:=
DynamicModule[{audio, d}, audio = Import["ExampleData/car.mp3"];
	d = QuantityMagnitude[Duration[audio], "s"];
	Manipulate[AudioPlot[audio, PlotRange -> {start, start + zoom}], {start, 0, d - zoom}, {{zoom, 2}, 0.01, d}]]

Out[1]= [image]
```

### Neat Examples (1)

Create a 3D-printable model of the waveform of an audio object:

```wl
In[1]:= a = AudioChannelMix[ExampleData[{"Audio", "Drums"}], 1];
```

Plot the waveform:

```wl
In[2]:= plot = AudioPlot[a, AspectRatio -> 1 / 3, PlotStyle -> White, Background -> Black, Frame -> False, Axes -> False]

Out[2]= [image]

In[3]:= RegionProduct[ImageMesh@plot, Line[{{0.}, {20}}]]

Out[3]= [image]
```

3D print the model:

```wl
In[4]:= Printout3D[%, "waveform.stl"]
```

## See Also

* [`Periodogram`](https://reference.wolfram.com/language/ref/Periodogram.en.md)
* [`Spectrogram`](https://reference.wolfram.com/language/ref/Spectrogram.en.md)
* [`ListPlot`](https://reference.wolfram.com/language/ref/ListPlot.en.md)
* [`ListLinePlot`](https://reference.wolfram.com/language/ref/ListLinePlot.en.md)
* [`AudioTrim`](https://reference.wolfram.com/language/ref/AudioTrim.en.md)
* [`AudioData`](https://reference.wolfram.com/language/ref/AudioData.en.md)
* [`VideoSummaryPlot`](https://reference.wolfram.com/language/ref/VideoSummaryPlot.en.md)
* [`Audio`](https://reference.wolfram.com/language/ref/netencoder/Audio.en.md)

## Related Guides

* [Audio Processing](https://reference.wolfram.com/language/guide/AudioProcessing.en.md)
* [Audio Representation](https://reference.wolfram.com/language/guide/AudioRepresentation.en.md)
* [Audio Analysis](https://reference.wolfram.com/language/guide/AudioAnalysis.en.md)
* [Signal Visualization & Analysis](https://reference.wolfram.com/language/guide/SignalAnalysis.en.md)
* [Video Analysis](https://reference.wolfram.com/language/guide/VideoAnalysis.en.md)
* [Video Computation: Update History](https://reference.wolfram.com/language/guide/VideoComputation-UpdateHistory.en.md)
* [Speech Computation](https://reference.wolfram.com/language/guide/SpeechComputation.en.md)

## History

* [Introduced in 2016 (11.0)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn110.en.md) \| [Updated in 2024 (14.1)](https://reference.wolfram.com/language/guide/SummaryOfNewFeaturesIn141.en.md)