<commit_before>Soundpipe
=========

Soundpipe is a lightweight music DSP library written in C. It aims to provide
a set of high-quality DSP modules for composers, sound designers,
and creative coders. 

Features
---------

- A great set of high-quality modules ported directly from the Csound library
- Sample accurate timing
- Tiny codebase
- Static library
- Easily extendable
- Easily embeddable

Soundpipe is primarily desgined to generate wav files, however there are 
optional modules which allow Soundpipe to be run in realtime via JACK or
from a Raspberry Pi (ALSA). See the *compilation* section for how to enable 
these.

Compilation
-----------

By default, Soundpipe only needs libsndfile. To compile:

make

sudo make install

To build additional plugins with external library dependencies, uncomment lines 
in the file "config.mk".

To build the examples, go into the (e)xamples folder and run "make". Each 
example will generate a 5 second file called "test.wav". Examples in the "extra"
folder are for optional modules. Open up the Makefile and uncomment the
specific files you want to compile.

Future Plans
------------
- multi-channel support (only mono right now)
- dynamic documentation generation (HTML, LaTeX, manpage, etc...)
- Faust support
- Commandline utilities

The Soundpipe Model
-------------------

Soundpipe is callback driven. Every time Soundpipe needs a frame, it will 
call upon a single function specified by the user. Soundpipe modules are 
designed to process a signal, one sample at a time.  Every module follows the 
same life cycle:

1. Create: Memory is allocated for the data struct.
2. Initialize: Buffers are allocated, and initial variables and constants
are set.
3. Compute: the module takes in inputs (if applicable), and generates a
single sample of output. 
4. Destroy: All memory allocated is freed.

Contributors of Soundpipe:<commit_msg>Added OS X notes to the 'compilation' section.<commit_after>Soundpipe
=========

Soundpipe is a lightweight music DSP library written in C. It aims to provide
a set of high-quality DSP modules for composers, sound designers,
and creative coders. 

Features
---------

- A great set of high-quality modules ported directly from the Csound library
- Sample accurate timing
- Tiny codebase
- Static library
- Easily extendable
- Easily embeddable

Soundpipe is primarily desgined to generate wav files, however there are 
optional modules which allow Soundpipe to be run in realtime via JACK or
from a Raspberry Pi (ALSA). See the *compilation* section for how to enable 
these.

Compilation
-----------

By default, Soundpipe only needs libsndfile. To compile on Linux:

make

sudo make install

To build additional plugins with external library dependencies, uncomment lines 
in the file "config.mk".

To build the examples, go into the (e)xamples folder and run "make". Each 
example will generate a 5 second file called "test.wav". Examples in the "extra"
folder are for optional modules. Open up the Makefile and uncomment the
specific files you want to compile.


Installation is slightly different on a Mac, due to the way OSX places files.
Unless you already have it installed, download libsndfile, and run
'make'. You'll see an OSX error regarding Carbon. To fix that, open the file the 
error referecnes, and change "#include <Carbon.h>" to "#include <Carbon/Carbon.h>". 

Then, run:

make

sudo make install

Soundpipe should now successfully be installed.  


Future Plans
------------
- multi-channel support (only mono right now)
- dynamic documentation generation (HTML, LaTeX, manpage, etc...)
- Faust support
- Commandline utilities

The Soundpipe Model
-------------------

Soundpipe is callback driven. Every time Soundpipe needs a frame, it will 
call upon a single function specified by the user. Soundpipe modules are 
designed to process a signal, one sample at a time.  Every module follows the 
same life cycle:

1. Create: Memory is allocated for the data struct.
2. Initialize: Buffers are allocated, and initial variables and constants
are set.
3. Compute: the module takes in inputs (if applicable), and generates a
single sample of output. 
4. Destroy: All memory allocated is freed.

Contributors of Soundpipe:
{'fraction_non_alphanumeric': 0.07445048451902624, 'fraction_numerical': 0.002363507445048452, 'mean_word_length': 3.755056179775281, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5651046', 'n_tokens_mistral': 1120, 'n_tokens_neox': 1078, 'n_words': 610}