A collection of tools for working with raw PCM samples, including source/sink mechanics for desired encoding, channel mixing, interleaving, sample conversion, and other DSP effects.
- Zig 100%
|
|
||
|---|---|---|
| src | implemented peekBits for BitReader | |
| .gitignore | added root file and build scripts | |
| build.zig | removed temp test app | |
| build.zig.zon | forgot to change fingerprint after rename. oops. | |
| CHANGELOG.md | implemented peekBits for BitReader | |
| LICENSE | added LICENSE and README | |
| README.md | fixed typo and added utility functions section | |
common
Provides basic types and functionality that is shared across the audiophile ecosystem.
This repository exists for the sole purpose of eliminating code duplication.
Types
SeekImpl- Optional type for users to provide in order to enable support for seeking.ChannelLayout- Enumeration describing the common 1-8 channel layouts and how they map to physical speakers.BitReader- Provides a wrapper overstd.Io.Readerfor reading at the bit granularity.
Namespaces
-
pcm- Provides a collection of tooling for reading, writing, and transforming raw PCM samples, which can be chained together in linear pipeline of buffers without allocation, and leveraging SIMD wherever it is prudent to do so.- endian-aware reading of generic raw samples from a
std.Io.Reader - endian-aware writing of generic raw samples to a
std.Io.Writer - interleave/deinterleave
- sample conversion (i.e. signed 16-bit to 32-bit float, etc)
- channel mixing (upscale/downscale to more/less channels)
Utility Functions
- endian-aware reading of generic raw samples from a
-
frameToDuration- Convert a frame offset to astd.Io.Duration. -
durationToFrame- Convert astd.Io.Durationto a frame offset.