# `Cauldron3D.Formats.Wav`
[🔗](https://github.com/jaman/cauldron/blob/v0.3.3/cauldron_3d_formats/lib/cauldron_3d/formats/wav.ex#L1)

RIFF WAVE sounds of 8- or 16-bit mono PCM, read to 16-bit PCM.

    {:ok, %{rate: rate, pcm: pcm, loop: loop}} = Cauldron3D.Formats.Wav.read(bytes)

A file with a cue point loops from it; `loop` says where, in seconds.

# `read`

```elixir
@spec read(binary() | nil) ::
  {:ok, %{rate: pos_integer(), pcm: binary(), loop: float() | nil}} | :error
```

The sound's rate, 16-bit PCM and loop start in seconds (`nil` for a sound that plays once).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
