---
name: "amidi"
section: "1"
platform: "linux"
package: "alsa-utils"
version: "1.2.16-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/amidi"
---

# amidi(1)

read from and write to ALSA RawMIDI ports

## NAME

amidi - read from and write to ALSA RawMIDI ports

## SYNOPSIS

**amidi** \[*-p port*\] \[*-s file* \| *-S data*\] \[*-r file*\] \[*-d*\] \[*-t seconds*\] \[*-a*\]

## DESCRIPTION

**amidi** is a command-line utility which allows one to receive and send SysEx (system exclusive) data from/to external MIDI devices. It can also send any other MIDI commands.

**amidi** handles only files containing raw MIDI commands, without timing information. **amidi** does not support Standard MIDI (.mid) files, but **[aplaymidi(1)](/aplaymidi/1.md)** and **[arecordmidi(1)](/arecordmidi/1.md)** do.

## OPTIONS

Use the *-h,* *-V,* *-l,* or *-L* options to display information; or use at least one of the *-s,* *-r,* *-S,* or *-d* options to specify what data to send or receive.

- *-h, --help*

  Help: prints a list of options.

- *-V, --version*

  Prints the current version.

- *-l, --list-devices*

  Prints a list of all hardware MIDI ports.

- *-x, --list-inactive*

  Use together with *-l* option. Print all MIDI ports including inactive ports.

- *-L, --list-rawmidis*

  Prints all RawMIDI definitions. (used when debugging configuration files)

- *-p, --port=name*

  Sets the name of the ALSA RawMIDI port to use. If this is not specified, **amidi** uses the default port defined in the configuration file (the default for this is port 0 on card 0, which may not exist).

- *-s, --send=filename*

  Sends the contents of the specified file to the MIDI port. The file must contain raw MIDI commands (e.g. a .syx file); for Standard MIDI (.mid) files, use **[aplaymidi(1)](/aplaymidi/1.md).**

- *-r, --receive=filename*

  Writes data received from the MIDI port into the specified file. The file will contain raw MIDI commands (such as in a .syx file); to record a Standard MIDI (.mid) file, use **[arecordmidi(1)](/arecordmidi/1.md).**

  **amidi** will filter out any Active Sensing and Clock bytes (FEh, F8h), unless the *-a* or *-c* options have been given.

- *-S, --send-hex="..."*

  Sends the bytes specified as hexadecimal numbers to the MIDI port.

- *-d, --dump*

  Prints data received from the MIDI port as hexadecimal bytes. Active Sensing and Clock bytes (FEh, F8h) will not be shown, unless the *-a* or *-c* options have been given.

  This option is useful for debugging.

- *-t, --timeout=seconds*

  Stops receiving data when no data has been received for the specified amount of time.

  If this option has not been given, you must press Ctrl+C (or kill **amidi)** to stop receiving data.

- *-a, --active-sensing*

  Does not ignore Active Sensing bytes (FEh) when saving or printing received MIDI commands.

- *-c, --clock*

  Does not ignore Clock bytes (F8h) when saving or printing received MIDI commands.

- *-i, --sysex-interval=mseconds*

  Adds a delay in between each SysEx message sent to a device. It is useful when sending firmware updates via SysEx messages to a remote device.

## EXAMPLES

- **amidi -p hw:0 -s my\_settings.syx**

  will send the MIDI commands in *my\_settings.syx* to port *hw:0.*

- **amidi -p hw:1,0,0 -s firmware.syx -i 100**

  will send the MIDI commands in *firmware.syx* to port *hw:1,0,0* with 100 milliseconds delay in between each SysEx message.

- **amidi -S 'F0 43 10 4C 00 00 7E 00 F7'**

  sends an XG Reset to the default port.

- **amidi -p hw:1,2 -S F0411042110C000000000074F7 -r dump.syx -t 1**

  sends a “Parameter Dump Request” to a GS device, saves the received parameter data to the file *dump.syx,* and stops after the device has finished sending data (when no data has been received for one second).

- **amidi -p virtual -d**

  creates a virtual RawMIDI port and prints all data sent to this port.

## FILES

*/usr/share/alsa/alsa.conf* default rawmidi definitions\
 */etc/asound.conf* system-wide rawmidi definitions\
 *~/.asoundrc* user specific rawmidi definitions

## SEE ALSO

[aplaymidi(1)](/aplaymidi/1.md)\
 [arecordmidi(1)](/arecordmidi/1.md)

## AUTHOR

Clemens Ladisch \<clemens@ladisch.de\>
