# NetMD v0.1.0 - Table of Contents

> Drive MiniDisc recorders over NetMD USB

## Pages

- [NetMD](readme.md)

## Modules

- [NetMD](NetMD.md): Drive MiniDisc recorders over NetMD USB.
- [NetMD.Audio](NetMD.Audio.md): File headers for audio uploaded from a disc, ported from netmd-js.
- [NetMD.Commands](NetMD.Commands.md): High-level operations composed from `NetMD.Interface` commands, ported
from netmd-js's netmd-commands.
- [NetMD.Crypto](NetMD.Crypto.md): DES primitives for the NetMD secure session, matching the CryptoJS
usage in netmd-js. All inputs must be multiples of the 8-byte DES block
size; the reference relies on the same alignment.

- [NetMD.Device](NetMD.Device.md): The fundamental NetMD USB exchange protocol, ported from netmd-js.
- [NetMD.Devices](NetMD.Devices.md): Known NetMD USB devices, from the netmd-js device table.

- [NetMD.Disc](NetMD.Disc.md): Disc contents as returned by `NetMD.Commands.list_content/1`.

- [NetMD.Disc.Group](NetMD.Disc.Group.md): A track group; `title: nil` marks the ungrouped tracks entry.

- [NetMD.Disc.Track](NetMD.Disc.Track.md): A track listing entry. Duration is in frames.

- [NetMD.EKB](NetMD.EKB.md): Enabling Key Blocks for the NetMD secure session, from netmd-js.
- [NetMD.Factory](NetMD.Factory.md): The NetMD factory command set, ported from netmd-js.
- [NetMD.Factory.Commands](NetMD.Factory.Commands.md): Higher-level factory operations, ported from netmd-js's factory
commands: bracketed reads and writes, firmware patching and raw UTOC
sector access.
- [NetMD.Interface](NetMD.Interface.md): The NetMD command set, ported from netmd-js.
- [NetMD.Query](NetMD.Query.md): The NetMD query DSL: build command payloads and parse replies from
printf/scanf-like format strings, as used by netmd-js and libnetmd.
- [NetMD.SJIS](NetMD.SJIS.md): Shift-JIS codec for NetMD titles.
- [NetMD.Session](NetMD.Session.md): The secure session needed to download tracks, ported from netmd-js's
MDSession.
- [NetMD.Simulator](NetMD.Simulator.md): A virtual NetMD device that runs the whole library in-process.
- [NetMD.Simulator.Disc](NetMD.Simulator.Disc.md): The virtual disc a `NetMD.Simulator` presents.
- [NetMD.Simulator.Gadget](NetMD.Simulator.Gadget.md): Present the `NetMD.Simulator` brain as a real USB NetMD device.
- [NetMD.Titles](NetMD.Titles.md): Title sanitization for MiniDisc TOC entries, ported from netmd-js.
- [NetMD.Track](NetMD.Track.md): A track to download to the recorder, ported from netmd-js's MDTrack.
- [NetMD.Transport](NetMD.Transport.md): Behaviour for the USB plumbing underneath `NetMD.Device`.
- [NetMD.Transport.Managed](NetMD.Transport.Managed.md): A `NetMD.Transport` that fronts another transport with a stable pid and
transparent reconnection.
- [NetMD.Transport.Usb](NetMD.Transport.Usb.md): `NetMD.Transport` backed by `BodgeUSB`.

- Exceptions
  - [NetMD.Query.ScanError](NetMD.Query.ScanError.md): Raised by `NetMD.Query.scan!/2` when a reply does not match.

