<commit_before># libfriendship
A dsp library for rendering sounds using additive synthesis in real-time

**Note**: libfriendship is far from stable, and not at all useful as of yet.
Give it time.

# Purpose
libfriendship exposes an interface for building complex sounds by constructing
a tree of effects through which the user passes individual frequencies.

For example, one might start with a simple sine wave at 440 Hz (A4) and then:

1. Send it through an effect that generates harmonics at different amplitudes.
2. Send that through an effect that individually detunes each frequency component.
3. Apply a volume envelope to create a "twang" sound
4. Send it through a delay effect that creates temporal copies of the sound

Throughout this process, the sound is passed around internally in its frequency
representation. This allows many effects (e.g. filtering, equalization) to be
implemented very trivially and encourages more unique effects that are
difficult to achieve in the time-domain (like detuning each harmonic individually).
It also moves most of the computationally-intensive portions of audio synthesis
into a single location so that anyone extending the library doesn't need to
worry as much about ruthleslly optimizing their code.

# Design goals
libfriendship aims to be *safe*, *easy to use/understand* and *versatile*
(orderered by priority). It will remain limited only to sound synthesis, which
means it won't provide any interfaces for exporting the output to a file or
handling audio playback - there are other libraries for those tasks.

# License
libfriendship is published under the MIT license (a fairly liberal license).
If distributed in a project licensed under something more restrictive, like the
GPL, I encourage you to make it clear to your developers that the libfriendship
code is available under the MIT license (for example, in the license portion
of your readme, mention "this code is licensed under [x], with the following
exceptions: lib/libfriendship (MIT License)"), but this is not required.<commit_msg>Typo fix<commit_after># libfriendship
A dsp library for rendering sounds using additive synthesis in real-time

**Note**: libfriendship is far from stable, and not at all useful as of yet.
Give it time.

# Purpose
libfriendship exposes an interface for building complex sounds by constructing
a tree of effects through which the user passes individual frequencies.

For example, one might start with a simple sine wave at 440 Hz (A4) and then:

1. Send it through an effect that generates harmonics at different amplitudes.
2. Send that through an effect that individually detunes each frequency component.
3. Apply a volume envelope to create a "twang" sound
4. Send it through a delay effect that creates temporal copies of the sound

Throughout this process, the sound is passed around internally in its frequency
representation. This allows many effects (e.g. filtering, equalization) to be
implemented very trivially and encourages more unique effects that are
difficult to achieve in the time-domain (like detuning each harmonic individually).
It also moves most of the computationally-intensive portions of audio synthesis
into a single location so that anyone extending the library doesn't need to
worry as much about ruthlessly optimizing their code.

# Design goals
libfriendship aims to be *safe*, *easy to use/understand* and *versatile*
(orderered by priority). It will remain limited only to sound synthesis, which
means it won't provide any interfaces for exporting the output to a file or
handling audio playback - there are other libraries for those tasks.

# License
libfriendship is published under the MIT license (a fairly liberal license).
If distributed in a project licensed under something more restrictive, like the
GPL, I encourage you to make it clear to your developers that the libfriendship
code is available under the MIT license (for example, in the license portion
of your readme, mention "this code is licensed under [x], with the following
exceptions: lib/libfriendship (MIT License)"), but this is not required.
{'fraction_non_alphanumeric': 0.038039502560351136, 'fraction_numerical': 0.003901487442087296, 'mean_word_length': 4.910662824207493, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7497511', 'n_tokens_mistral': 990, 'n_tokens_neox': 919, 'n_words': 624}