pipe
is a framework for floating point signal processing. It utilizes pipeline pattern to build fast, asynchronomous and easy-to-extend pipes for signal processing. Each pipe consists of one Pump, zero or multiple Processors and one or more Sinks. pipe
also offers a friendly API for new pipe components implementations.
The concept is explained in details in this article on Medium.
Find examples in example repository. For better explanations check its godoc.
Please, note that since pipe
is in the active development stage, all packages are in experimental state. One of the main focus points is the stability of all listed and future packages.
pipelined/audio
- higher-level to manipulate audio signal. Allows to sample and compose tracks.pipelined/mixer
- mix from to 2 up to N signals with same number of channels and sample rates.pipelined/mock
- mock pipe components to create integration tests.pipelined/mp3
- read/write mp3 files.pipelined/pipe
-pipe
framework.pipelined/portaudio
- play signal via portaudio API.pipelined/signal
- manipulate signal on lower level. Allows to convert float/int with different bit depth.pipelined/vst2
- process signal with vst2 plugins.pipelined/wav
- read/write wav files.
phono/vst2
and portaudio
packages do have external non-go dependencies. To use these packages, please check the documentation:
For a complete guide to contributing to pipe
, see the Contribution giude