---
name: "cdio"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/cdio"
---

# cdio(1)

compact disc control utility

## NAME

**cdio** – compact disc control utility

## SYNOPSIS

**cdio** \[**-sv**\] \[**-d** *host*:*port*\] \[**-f** *device*\] \[*command* \[*arg* *...*\]\]

## DESCRIPTION

The **cdio** program is a compact disc control utility, with support for playing audio CDs and Track-At-Once (TAO) CD writing.

If no command is given, **cdio** enters interactive mode, reading commands from the standard input.

The options are as follows:

-

  **-d** *host*:*port* Specifies a CDDB host \[default: gnudb.gnudb.org:8880\].

- **-f** *device*

  Specifies the name of the CD device, such as */dev/rcd0c*. Both absolute and relative paths to */dev* filenames are possible; the raw partition name is added if needed.

- **-s**

  Silent mode. Do not print table headers or human-readable comments.

- **-v**

  Verbose mode. A second occurrence of **-v** causes even more information to be printed.

The available commands are listed below. Only as many characters as are required to uniquely identify a command need be specified. If no command is given, only a track number or range, then **play** is assumed.

- **blank**

  Minimally blank the disc.

- **cddbinfo** \[*n*\]

  Print the Table Of Contents (TOC) after matching the disc with the CDDB. In case of multiple matches, reissue the command with *n*.

- **cdid**

  Print the disc ID that will be used for matching with the CDDB.

- **cdplay** \[*track1-trackN* *...*\]

  Play specified tracks from disk. Unlike **play**, the CD player need not be connected to an audio device; instead it rips tracks from disk and outputs audio data to the default audio device. Both individual tracks and track ranges may be specified. If range is specified in descending order, tracks will be played in descending order. If the first value in the range is omitted, tracks from first track on disk to the specified one will be played. If the last value in the range is omitted, tracks from the specified track to the last track on disk will be played.

- **cdrip** \[*track1-trackN* *...*\]

  Rip specified tracks from disk. Audio tracks are saved as WAVE sound files. All tracks will be saved in the current working directory. If parameters are omitted, all tracks are ripped. Both individual tracks and track ranges may be specified, in the same format as the **cdplay** command.

- **close**

  Inject the disc.

- **debug** *on* \| *off*

  Enable/disable the debugging mode of the CD device driver.

- **device** *devname*

  Make *devname* the current CD device. This is the equivalent of quitting **cdio** and restarting with a different device.

- **eject**

  Eject the disc.

- **exit**

  A synonym for **quit**.

- **help**

  Print the list of available commands.

- **info**

  Print the Table Of Contents (TOC). If **-v** is also specified, the current features and current profile is printed. If **-v** is specified twice, the complete list of supported profiles and a hex dump of each current feature is printed.

- **next**

  Play the next track. If we're at the last track, stop.

- **pause**

  Stop playing. Do not stop the disc.

- **play**

  \[ *track1*\[*.index1*\] \[*track2*\[*.index2*\]\]\] Play from *track1* to *track2*; an optional index point can be specified for each track. If only one track is specified, play from that track to the end of the disc. If no tracks are specified, play the whole disc.

- **play**

  \[ \[*tr1*\]*m1*:*s1*\[ *.f1*\] \[*tr2*\]\[*m2*:*s2* \[*.f2*\]\]\] Play from the absolute address (MSF) defined by *m1* in minutes, *s1* in seconds, frame number *f1*, to the absolute address defined by *m2* in minutes, *s2* in seconds, frame number *f2*. If a track number is specified (tr*X*), then the minutes, seconds, and frame numbers are relative to the start of that track. Minutes are in the range 0–99. Seconds are in the range 0–59. Frame numbers are in the range 0–74.

- **play** \[*#block* \[*len*\]\]

  Play starting from the logical *block* using *len* logical blocks.

- **previous**

  Play the previous track. If we're at the first track, restart.

- **quit**

  Quit the program.

- **replay**

  Replay the current track.

- **reset**

  Perform a hardware reset of the device.

- **resume**

  Resume playing. Used after the **pause** command.

- **set** *lba* \| *msf*

  Set LBA (*lba*) or minute-second-frame (*msf*) ioctl mode. The default is minute-second-frame ioctl mode.

- **status**

  Print information about the disc: the current playing status and position, the current media catalog status, and the current values of the volume for left and right channels.

- **stop**

  Stop the disc.

- **tao**

  \[**-ad**\] \[**-s** *speed*\] *trackfile* *...* \[command line only\]  Write a TAO CD containing the specified *trackfile*.

  The options are as follows:

  - **-a**

    Write files as audio tracks. File formats of audio tracks may be CDDA or WAVE with 2 channels of PCM audio, signed 16-bit (little endian) values sampled at 44100 Hz.

  - **-d**

    Write files as data tracks (the default).

  - **-s** *speed*

    Specify a write speed for tracks. *speed* may be a numerical value between 1 and the maximum speed supported by the media and drive, or one of the literal strings “auto” or “max”, meaning the optimal or maximum speed detected. The default speed is “auto”.

- **volume** *left\_channel* *right\_channel*

  Set the volume of the left channel to *left\_channel* and the volume of the right channel to *right\_channel*. Allowed values are in the range 0–255.

- **volume**

  **left** \| **right** \| **mono** \| **stereo** \| **mute** Respectively: play the left subtrack on both left and right channels; play the right subtrack on both left and right channels; set mono mode; set stereo mode; turn the sound off.

## ENVIRONMENT

- DISC, CDROM

  Specifies the name of the CD device to use. If both DISC and CDROM are set, DISC takes precedence. If neither DISC nor CDROM are set, the default is *cd0*. See also the **-f** option, above.

- AUDIODEVICE

  Name of the [aucat(1)](/aucat/1.md) socket to connect to, or path to the [audio(4)](/audio/4.md) device to use.

## FILES

- */dev/rcd0c*

  ## SEE ALSO

[aucat(1)](/aucat/1.md), [audio(4)](/audio/4.md), [audioctl(8)](/audioctl/8.md), [mixerctl(8)](/mixerctl/8.md)

## HISTORY

The **cdio** command is based on **cdcontrol**, which first appeared in FreeBSD 2.1.

## AUTHORS

Jean-Marc Zucconi, Andrey A. Chernov, Serge V. Vakulenko, Marc Espie
