removed bw_config + beginning of debug (bw_common, bw_buf)

This commit is contained in:
Stefano D'Angelo 2023-07-21 08:56:27 +02:00
parent 41e87b69a4
commit b08d9ae4f0
124 changed files with 722 additions and 230 deletions

3
TODO
View File

@ -56,6 +56,9 @@ code:
* bw_buf invert src dest order?
* check unititialized warnings
* voice alloc mode -> voice alloc priority
* should remove bw_config?
* use custom NDEBUG?
* NULL (C) vs BW_SIZE_T (non-C)...?
build system:
* single header generation

View File

@ -19,4 +19,5 @@ CPPFLAGS += \
CFLAGS += \
-I${ROOT_DIR} \
-I${ROOT_DIR}/../src \
-I${ROOT_DIR}/../../../include
-I${ROOT_DIR}/../../../include \
-I${ROOT_DIR}/../../common/daisy-seed

View File

View File

View File

@ -0,0 +1,6 @@
#ifndef PLATFORM_H
#define PLATFORM_H
#define INFINITY (__builtin_inff())
#endif

View File

@ -1,5 +1,6 @@
CC := clang
CFLAGS := \
-DNDEBUG \
-I${ROOT_DIR}/../src \
-I${ROOT_DIR}/../../common/web \
-I${ROOT_DIR}/../../../include \

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_ap1.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_ap2.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_balance.h>
#include <bw_ppm.h>
#include <bw_math.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_chorus.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_clip.h>
#include <bw_src_int.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_comb.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_comp.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_delay.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_dist.h>
#include <bw_src_int.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_drive.h>
#include <bw_src_int.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_ls2.h>
#include <bw_hs2.h>
#include <bw_peak.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_chorus.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_fuzz.h>
#include <bw_src_int.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_hp1.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_hs1.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_lp1.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_ls1.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_mm1.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_mm2.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_noise_gate.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_notch.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_one_pole.h>
enum {

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_pan.h>
#include <bw_ppm.h>
#include <bw_math.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_phaser.h>
enum {

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_AP1_H
#define _BW_EXAMPLE_FXPP_AP1_H
#include "platform.h"
#include <bwpp_ap1.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_AP2_H
#define _BW_EXAMPLE_FXPP_AP2_H
#include "platform.h"
#include <bwpp_ap2.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_BALANCE_H
#define _BW_EXAMPLE_FXPP_BALANCE_H
#include "platform.h"
#include <bwpp_balance.h>
#include <bwpp_ppm.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_BITCRUSH_H
#define _BW_EXAMPLE_FXPP_BITCRUSH_H
#include "platform.h"
#include <bwpp_sr_reduce.h>
#include <bwpp_bd_reduce.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_CHORUS_H
#define _BW_EXAMPLE_FXPP_CHORUS_H
#include "platform.h"
#include <bwpp_chorus.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_CLIP_H
#define _BW_EXAMPLE_FXPP_CLIP_H
#include "platform.h"
#include <bwpp_clip.h>
#include <bwpp_src_int.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_COMB_H
#define _BW_EXAMPLE_FXPP_COMB_H
#include "platform.h"
#include <bwpp_comb.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_COMP_H
#define _BW_EXAMPLE_FXPP_COMP_H
#include "platform.h"
#include <bwpp_comp.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_DELAY_H
#define _BW_EXAMPLE_FXPP_DELAY_H
#include "platform.h"
#include <bwpp_delay.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_DIST_H
#define _BW_EXAMPLE_FXPP_DIST_H
#include "platform.h"
#include <bwpp_dist.h>
#include <bwpp_src_int.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_DRIVE_H
#define _BW_EXAMPLE_FXPP_DRIVE_H
#include "platform.h"
#include <bwpp_drive.h>
#include <bwpp_src_int.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_EQ_3BAND_H
#define _BW_EXAMPLE_FXPP_EQ_3BAND_H
#include "platform.h"
#include <bwpp_ls2.h>
#include <bwpp_hs2.h>
#include <bwpp_peak.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_FLANGER_H
#define _BW_EXAMPLE_FXPP_FLANGER_H
#include "platform.h"
#include <bwpp_chorus.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_FUZZ_H
#define _BW_EXAMPLE_FXPP_FUZZ_H
#include "platform.h"
#include <bwpp_fuzz.h>
#include <bwpp_src_int.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_HP1_H
#define _BW_EXAMPLE_FXPP_HP1_H
#include "platform.h"
#include <bwpp_hp1.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_HS1_H
#define _BW_EXAMPLE_FXPP_HS1_H
#include "platform.h"
#include <bwpp_hs1.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_LP1_H
#define _BW_EXAMPLE_FXPP_LP1_H
#include "platform.h"
#include <bwpp_lp1.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_LS1_H
#define _BW_EXAMPLE_FXPP_LS1_H
#include "platform.h"
#include <bwpp_ls1.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_MM1_H
#define _BW_EXAMPLE_FXPP_MM1_H
#include "platform.h"
#include <bwpp_mm1.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_MM2_H
#define _BW_EXAMPLE_FXPP_MM2_H
#include "platform.h"
#include <bwpp_mm2.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_NOISE_GATE_H
#define _BW_EXAMPLE_FXPP_NOISE_GATE_H
#include "platform.h"
#include <bwpp_noise_gate.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_NOTCH_H
#define _BW_EXAMPLE_FXPP_NOTCH_H
#include "platform.h"
#include <bwpp_notch.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_ONE_POLE_H
#define _BW_EXAMPLE_FXPP_ONE_POLE_H
#include "platform.h"
#include <bwpp_one_pole.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_PAN_H
#define _BW_EXAMPLE_FXPP_PAN_H
#include "platform.h"
#include <bwpp_pan.h>
#include <bwpp_ppm.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_PHASER_H
#define _BW_EXAMPLE_FXPP_PHASER_H
#include "platform.h"
#include <bwpp_phaser.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_REVERB_H
#define _BW_EXAMPLE_FXPP_REVERB_H
#include "platform.h"
#include <bwpp_reverb.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_SATUR_H
#define _BW_EXAMPLE_FXPP_SATUR_H
#include "platform.h"
#include <bwpp_satur.h>
#include <bwpp_src_int.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_SLEW_LIM_H
#define _BW_EXAMPLE_FXPP_SLEW_LIM_H
#include "platform.h"
#include <bwpp_slew_lim.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_SVF_H
#define _BW_EXAMPLE_FXPP_SVF_H
#include "platform.h"
#include <bwpp_svf.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_TREM_H
#define _BW_EXAMPLE_FXPP_TREM_H
#include "platform.h"
#include <bwpp_trem.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_VIBRATO_H
#define _BW_EXAMPLE_FXPP_VIBRATO_H
#include "platform.h"
#include <bwpp_chorus.h>
using namespace Brickworks;

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_FXPP_WAH_H
#define _BW_EXAMPLE_FXPP_WAH_H
#include "platform.h"
#include <bwpp_wah.h>
using namespace Brickworks;

View File

@ -1,7 +1,7 @@
/*
* Brickworks
*
* Copyright (C) 2022 Orastron Srl unipersonale
* Copyright (C) 2022, 2023 Orastron Srl unipersonale
*
* Brickworks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_math.h>
#include <bw_phase_gen.h>
#include <bw_osc_saw.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_note_queue.h>
#include <bw_phase_gen.h>
#include <bw_osc_saw.h>

View File

@ -25,6 +25,8 @@
extern "C" {
#endif
#include "platform.h"
#include <bw_math.h>
#include <bw_phase_gen.h>
#include <bw_osc_pulse.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_SYNTHPP_MONO_H
#define _BW_EXAMPLE_SYNTHPP_MONO_H
#include "platform.h"
#include <bwpp_phase_gen.h>
#include <bwpp_osc_saw.h>
#include <bwpp_osc_pulse.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_SYNTHPP_MONO_H
#define _BW_EXAMPLE_SYNTHPP_MONO_H
#include "platform.h"
#include <bwpp_note_queue.h>
#include <bwpp_phase_gen.h>
#include <bwpp_osc_saw.h>

View File

@ -21,6 +21,8 @@
#ifndef _BW_EXAMPLE_SYNTHPP_SIMPLE_H
#define _BW_EXAMPLE_SYNTHPP_SIMPLE_H
#include "platform.h"
#include <bwpp_phase_gen.h>
#include <bwpp_osc_pulse.h>
#include <bwpp_osc_filt.h>

View File

@ -20,14 +20,19 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_lp1 bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_lp1 bw_math bw_one_pole }}}
* description {{{
* First-order allpass filter (90° shift at cutoff, approaching 180° shift
* at high frequencies) with unitary gain.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_ap1_process_multi()</code>.</li>

View File

@ -20,14 +20,19 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_one_pole bw_svf }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_one_pole bw_svf }}}
* description {{{
* Second-order allpass filter (180° shift at cutoff, approaching 360° shift
* at high frequencies) with unitary gain.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_ap2_process_multi()</code>.</li>

View File

@ -20,13 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_gain bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_math bw_one_pole }}}
* description {{{
* Stereo balance.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_balance_process_multi()</code>.</li>

View File

@ -20,8 +20,8 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math }}}
* description {{{
* Bit depth reducer.
*
@ -31,6 +31,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_bd_reduce_process_multi()</code>.</li>

View File

@ -20,13 +20,18 @@
/*!
* module_type {{{ utility }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common }}}
* description {{{
* Common operations on buffers.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_buf_*_multi()</code>.</li>
@ -61,55 +66,55 @@ extern "C" {
/*! api {{{
* #### bw_buf_fill()
* ```>>> */
static inline void bw_buf_fill(float *dest, float k, int n_elems);
static inline void bw_buf_fill(float *dest, float k, BW_SIZE_T n_elems);
/*! <<<```
* Sets the first `n_elems` in `dest` to `k`.
*
* #### bw_buf_neg()
* ```>>> */
static inline void bw_buf_neg(float *dest, const float *src, int n_elems);
static inline void bw_buf_neg(float *dest, const float *src, BW_SIZE_T n_elems);
/*! <<<```
* Inverts the sign of the first `n_elems` in `src` and stores the results in
* the first `n_elems` of `dest`.
*
* #### bw_buf_add()
* ```>>> */
static inline void bw_buf_add(float *dest, const float *src, float k, int n_elems);
static inline void bw_buf_add(float *dest, const float *src, float k, BW_SIZE_T n_elems);
/*! <<<```
* Adds `k` to the first `n_elems` in `src` and stores the results in the
* first `n_elems` of `dest`.
*
* #### bw_buf_scale()
* ```>>> */
static inline void bw_buf_scale(float *dest, const float *src, float k, int n_elems);
static inline void bw_buf_scale(float *dest, const float *src, float k, BW_SIZE_T n_elems);
/*! <<<```
* Multiplies the first `n_elems` in `src` by `k` and stores the results in
* the first `n_elems` of `dest`.
*
* #### bw_buf_mix()
* ```>>> */
static inline void bw_buf_mix(float *dest, const float *src1, const float *src2, int n_elems);
static inline void bw_buf_mix(float *dest, const float *src1, const float *src2, BW_SIZE_T n_elems);
/*! <<<```
* Adds the first `n_elems` of `src1` and `src2` and stores the results in
* the first `n_elems` of `dest`.
*
* #### bw_buf_mul()
* ```>>> */
static inline void bw_buf_mul(float *dest, const float *src1, const float *src2, int n_elems);
static inline void bw_buf_mul(float *dest, const float *src1, const float *src2, BW_SIZE_T n_elems);
/*! <<<```
* Multiplies the first `n_elems` of `src1` and `src2` and stores the results
* in the first `n_elems` of `dest`.
*
* #### bw_buf_fill_multi()
* ```>>> */
static inline void bw_buf_fill_multi(float **dest, float k, int n_channels, int n_elems);
static inline void bw_buf_fill_multi(float **dest, float k, BW_SIZE_T n_channels, BW_SIZE_T n_elems);
/*! <<<```
* Sets the first `n_elems` in each of the `n_channels` buffers `dest` to
* `k`.
*
* #### bw_buf_neg_multi()
* ```>>> */
static inline void bw_buf_neg_multi(float **dest, const float **src, int n_channels, int n_elems);
static inline void bw_buf_neg_multi(float **dest, const float **src, BW_SIZE_T n_channels, BW_SIZE_T n_elems);
/*! <<<```
* Inverts the sign of the first `n_elems` in each of the `n_channels`
* buffers `src` and stores the results in the first `n_elems` in each of the
@ -117,7 +122,7 @@ static inline void bw_buf_neg_multi(float **dest, const float **src, int n_chann
*
* #### bw_buf_add_multi()
* ```>>> */
static inline void bw_buf_add_multi(float **dest, const float **src, float k, int n_channels, int n_elems);
static inline void bw_buf_add_multi(float **dest, const float **src, float k, BW_SIZE_T n_channels, BW_SIZE_T n_elems);
/*! <<<```
* Adds `k` to the first `n_elems` in each of the `n_channels` buffers `src`
* and stores the results in the first `n_elems` in each of the `n_channels`
@ -125,7 +130,7 @@ static inline void bw_buf_add_multi(float **dest, const float **src, float k, in
*
* #### bw_buf_scale_multi()
* ```>>> */
static inline void bw_buf_scale_multi(float **dest, const float **src, float k, int n_channels, int n_elems);
static inline void bw_buf_scale_multi(float **dest, const float **src, float k, BW_SIZE_T n_channels, BW_SIZE_T n_elems);
/*! <<<```
* Multiplies the first `n_elems` in each of the `n_channels` buffers `src`
* by `k` and stores the results in the first `n_elems` in each of the
@ -133,7 +138,7 @@ static inline void bw_buf_scale_multi(float **dest, const float **src, float k,
*
* #### bw_buf_mix_multi()
* ```>>> */
static inline void bw_buf_mix_multi(float **dest, const float **src1, const float **src2, int n_channels, int n_elems);
static inline void bw_buf_mix_multi(float **dest, const float **src1, const float **src2, BW_SIZE_T n_channels, BW_SIZE_T n_elems);
/*! <<<```
* Adds the first `n_elems` in each of the `n_channels` buffers `src1` and
* `src2` and stores the results in the first `n_elems` in each of the
@ -141,7 +146,7 @@ static inline void bw_buf_mix_multi(float **dest, const float **src1, const floa
*
* #### bw_buf_mul_multi()
* ```>>> */
static inline void bw_buf_mul_multi(float **dest, const float **src1, const float **src2, int n_channels, int n_elems);
static inline void bw_buf_mul_multi(float **dest, const float **src1, const float **src2, BW_SIZE_T n_channels, BW_SIZE_T n_elems);
/*! <<<```
* Multiplies the first `n_elems` in each of the `n_channels` buffers `src1`
* and `src2` and stores the results in the first `n_elems` in each of the
@ -153,63 +158,109 @@ static inline void bw_buf_mul_multi(float **dest, const float **src1, const floa
/* WARNING: This part of the file is not part of the public API. Its content may
* change at any time in future versions. Please, do not use it directly. */
static inline void bw_buf_fill(float *dest, float k, int n_elems) {
for (int i = 0; i < n_elems; i++)
static inline void bw_buf_fill(float *dest, float k, BW_SIZE_T n_elems) {
BW_ASSERT(!(dest == NULL && n_elems != 0));
BW_ASSERT(!bw_is_nan(k));
for (BW_SIZE_T i = 0; i < n_elems; i++)
dest[i] = k;
BW_ASSERT(!bw_has_nan(dest, n_elems));
}
static inline void bw_buf_neg(float *dest, const float *src, int n_elems) {
for (int i = 0; i < n_elems; i++)
static inline void bw_buf_neg(float *dest, const float *src, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src == NULL) && n_elems != 0));
BW_ASSERT(!bw_has_nan(src, n_elems));
for (BW_SIZE_T i = 0; i < n_elems; i++)
dest[i] = -src[i];
BW_ASSERT(!bw_has_nan(dest, n_elems));
}
static inline void bw_buf_add(float *dest, const float *src, float k, int n_elems) {
for (int i = 0; i < n_elems; i++)
static inline void bw_buf_add(float *dest, const float *src, float k, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src == NULL) && n_elems != 0));
BW_ASSERT(!bw_has_nan(src, n_elems));
BW_ASSERT(!bw_is_nan(k));
for (BW_SIZE_T i = 0; i < n_elems; i++)
dest[i] = k + src[i];
BW_ASSERT(!bw_has_nan(dest, n_elems));
}
static inline void bw_buf_scale(float *dest, const float *src, float k, int n_elems) {
for (int i = 0; i < n_elems; i++)
static inline void bw_buf_scale(float *dest, const float *src, float k, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src == NULL) && n_elems != 0));
BW_ASSERT(!bw_has_nan(src, n_elems));
BW_ASSERT(!bw_is_nan(k));
for (BW_SIZE_T i = 0; i < n_elems; i++)
dest[i] = k * src[i];
BW_ASSERT(!bw_has_nan(dest, n_elems));
}
static inline void bw_buf_mix(float *dest, const float *src1, const float *src2, int n_elems) {
for (int i = 0; i < n_elems; i++)
static inline void bw_buf_mix(float *dest, const float *src1, const float *src2, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src1 == NULL || src2 == NULL) && n_elems != 0));
BW_ASSERT(!bw_has_nan(src1, n_elems));
BW_ASSERT(!bw_has_nan(src2, n_elems));
for (BW_SIZE_T i = 0; i < n_elems; i++)
dest[i] = src1[i] + src2[i];
BW_ASSERT(!bw_has_nan(dest, n_elems));
}
static inline void bw_buf_mul(float *dest, const float *src1, const float *src2, int n_elems) {
for (int i = 0; i < n_elems; i++)
static inline void bw_buf_mul(float *dest, const float *src1, const float *src2, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src1 == NULL || src2 == NULL) && n_elems != 0));
BW_ASSERT(!bw_has_nan(src1, n_elems));
BW_ASSERT(!bw_has_nan(src2, n_elems));
for (BW_SIZE_T i = 0; i < n_elems; i++)
dest[i] = src1[i] * src2[i];
BW_ASSERT(!bw_has_nan(dest, n_elems));
}
static inline void bw_buf_fill_multi(float **dest, float k, int n_channels, int n_elems) {
for (int i = 0; i < n_channels; i++)
static inline void bw_buf_fill_multi(float **dest, float k, BW_SIZE_T n_channels, BW_SIZE_T n_elems) {
BW_ASSERT(!(dest == NULL && n_channels != 0));
for (BW_SIZE_T i = 0; i < n_channels; i++)
bw_buf_fill(dest[i], k, n_elems);
}
static inline void bw_buf_neg_multi(float **dest, const float **src, int n_channels, int n_elems) {
for (int i = 0; i < n_channels; i++)
static inline void bw_buf_neg_multi(float **dest, const float **src, BW_SIZE_T n_channels, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src == NULL) && n_channels != 0));
for (BW_SIZE_T i = 0; i < n_channels; i++)
bw_buf_neg(dest[i], src[i], n_elems);
}
static inline void bw_buf_add_multi(float **dest, const float **src, float k, int n_channels, int n_elems) {
for (int i = 0; i < n_channels; i++)
static inline void bw_buf_add_multi(float **dest, const float **src, float k, BW_SIZE_T n_channels, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src == NULL) && n_channels != 0));
for (BW_SIZE_T i = 0; i < n_channels; i++)
bw_buf_add(dest[i], src[i], k, n_elems);
}
static inline void bw_buf_scale_multi(float **dest, const float **src, float k, int n_channels, int n_elems) {
for (int i = 0; i < n_channels; i++)
static inline void bw_buf_scale_multi(float **dest, const float **src, float k, BW_SIZE_T n_channels, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src == NULL) && n_channels != 0));
for (BW_SIZE_T i = 0; i < n_channels; i++)
bw_buf_scale(dest[i], src[i], k, n_elems);
}
static inline void bw_buf_mix_multi(float **dest, const float **src1, const float **src2, int n_channels, int n_elems) {
for (int i = 0; i < n_channels; i++)
static inline void bw_buf_mix_multi(float **dest, const float **src1, const float **src2, BW_SIZE_T n_channels, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src1 == NULL || src2 == NULL) && n_channels != 0));
for (BW_SIZE_T i = 0; i < n_channels; i++)
bw_buf_mix(dest[i], src1[i], src2[i], n_elems);
}
static inline void bw_buf_mul_multi(float **dest, const float **src1, const float **src2, int n_channels, int n_elems) {
for (int i = 0; i < n_channels; i++)
static inline void bw_buf_mul_multi(float **dest, const float **src1, const float **src2, BW_SIZE_T n_channels, BW_SIZE_T n_elems) {
BW_ASSERT(!((dest == NULL || src1 == NULL || src2 == NULL) && n_channels != 0));
for (BW_SIZE_T i = 0; i < n_channels; i++)
bw_buf_mul(dest[i], src1[i], src2[i], n_elems);
}

View File

@ -20,10 +20,10 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* version {{{ 0.6.0 }}}
* requires {{{
* bw_buf bw_comb bw_common bw_config bw_delay bw_gain bw_math bw_one_pole
* bw_osc_sin bw_phase_gen
* bw_buf bw_comb bw_common bw_delay bw_gain bw_math bw_one_pole bw_osc_sin
* bw_phase_gen
* }}}
* description {{{
* Chorus / vibrato / flanger with variable rate and amount.
@ -36,6 +36,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_chorus_process_multi()</code>.</li>

View File

@ -20,8 +20,8 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_one_pole }}}
* description {{{
* Antialiased hard clipper with parametric bias and gain
* (compensation) and output bias removal.
@ -38,6 +38,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>First release.</li>

View File

@ -20,9 +20,9 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* version {{{ 0.6.0 }}}
* requires {{{
* bw_buf bw_common bw_config bw_delay bw_gain bw_math bw_one_pole
* bw_buf bw_common bw_delay bw_gain bw_math bw_one_pole
* }}}
* description {{{
* Comb filter / delay effect with feedforward and feedback paths.
@ -37,6 +37,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_comb_process_multi()</code>.</li>

View File

@ -20,14 +20,23 @@
/*!
* module_type {{{ foundation }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_config }}}
* version {{{ 0.6.0 }}}
* description {{{
* A common header to make sure that a bunch of basic definitions are
* available and consistent for all Brickworks modules.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Added <code>BW_ASSERT</code>, <code>bw_is_inf()</code>,
* <code>bw_is_nan()</code>, <code>bw_is_finite()</code>,
* <code>bw_has_inf()</code>, <code>bw_has_nan()</code>,
* <code>bw_has_only_finite()</code>, and
* <code>bw_hash_sdbm()</code>.</li>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Fixed typo in the documentation of <code>BW_SIZE_T</code>.</li>
@ -58,17 +67,6 @@
#define _BW_COMMON_H
/*! api {{{
* #### bw_config
* At its very beginning, this header `#include`s `<bw_config.h>`, which is
* a file you can use to supply custom `#include`s and `#define`s that
* override defaults (see [bw_config](bw_config)).
*
* Alternatively, your compiler probably allows you to specify definitions on
* the command line.
* >>> */
#include <bw_config.h>
/*! ...
*
* #### NULL and BW_SIZE_T
* If `NULL` or `BW_SIZE_T` are not defined, then `stddef.h` is `#include`d.
*
@ -112,6 +110,114 @@
# define BW_RESTRICT
# endif
#endif
/*! ... }}} */
/*! ...
*
* #### BW_ASSERT
* WRITEME
* >>> */
#ifdef NDEBUG
# define BW_ASSERT(ignore) ((void)0)
#else
# ifndef BW_ASSERT
# include <assert.h>
# define BW_ASSERT assert
# endif
#endif
/*! ...
*
* #### bw_is_inf()
* ```>>> */
static inline char bw_is_inf(float x);
/*! <<<```
* WRITEME
*
* #### bw_is_nan()
* ```>>> */
static inline char bw_is_nan(float x);
/*! <<<```
* WRITEME
*
* #### bw_is_finite()
* ```>>> */
static inline char bw_is_finite(float x);
/*! <<<```
* WRITEME
*
* #### bw_has_inf()
* ```>>> */
static inline char bw_has_inf(const float *x, BW_SIZE_T n_elems);
/*! <<<```
* WRITEME
*
* #### bw_has_nan()
* ```>>> */
static inline char bw_has_nan(const float *x, BW_SIZE_T n_elems);
/*! <<<```
* WRITEME
*
* #### bw_has_only_finite()
* ```>>> */
static inline char bw_has_only_finite(const float *x, BW_SIZE_T n_elems);
/*! <<<```
* WRITEME
*
* #### bw_hash_sdbm()
* ```>>> */
static inline uint32_t bw_hash_sdbm(const char *string);
/*! <<<```
* WRITEME
*
* }}} */
/*** Implementation ***/
/* WARNING: This part of the file is not part of the public API. Its content may
* change at any time in future versions. Please, do not use it directly. */
static inline char bw_is_inf(float x) {
union {uint32_t u; float f;} v;
v.f = x;
return (v.u & 0x7fffffff) == 0x7f800000;
}
static inline char bw_is_nan(float x) {
union {uint32_t u; float f;} v;
v.f = x;
return ((v.u & 0x7f800000) == 0x7f800000) && (v.u & 0x7fffff);
}
static inline char bw_is_finite(float x) {
union {uint32_t u; float f;} v;
v.f = x;
return (v.u & 0x7f800000) != 0x7f800000;
}
static inline char bw_has_inf(const float *x, BW_SIZE_T n_elems) {
char ret = 0;
for (BW_SIZE_T i = 0; i < n_elems && !ret; i++)
ret = bw_is_inf(x[i]);
return ret;
}
static inline char bw_has_nan(const float *x, BW_SIZE_T n_elems) {
char ret = 0;
for (BW_SIZE_T i = 0; i < n_elems && !ret; i++)
ret = bw_is_nan(x[i]);
return ret;
}
static inline char bw_has_only_finite(const float *x, BW_SIZE_T n_elems) {
char ret = 1;
for (BW_SIZE_T i = 0; i < n_elems && ret; i++)
ret = bw_is_finite(x[i]);
return ret;
}
static inline uint32_t bw_hash_sdbm(const char *string) {
uint32_t hash = 0;
for (; *string != '\0'; string++)
hash = *string + (hash << 6) + (hash << 16) - hash;
return hash;
}
#endif

View File

@ -20,15 +20,20 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* version {{{ 0.6.0 }}}
* requires {{{
* bw_common bw_config bw_env_follow bw_gain bw_math bw_one_pole
* bw_common bw_env_follow bw_gain bw_math bw_one_pole
* }}}
* description {{{
* Feedforward compressor/limiter with independent sidechain input.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_comp_process_multi()</code>.</li>

View File

@ -1,53 +0,0 @@
/*
* Brickworks
*
* Copyright (C) 2022 Orastron Srl unipersonale
*
* Brickworks is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, version 3 of the License.
*
* Brickworks is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Brickworks. If not, see <http://www.gnu.org/licenses/>.
*
* File author: Stefano D'Angelo
*/
/*!
* module_type {{{ foundation }}}
* version {{{ 0.1.0 }}}
* description {{{
* Just an empty header file that is always included at the beginning of
* [bw_common.h](bw_common).
*
* Such inclusion is done with angle brackets (i.e.,
* `#include <bw_config.h>`), so you can "override" such file with a custom
* one you provide and appropriately set compiler include path order, or
* otherwise just modify it to your needs.
*
* Its intended purpose is to allow you to `#include` needed files and
* `#define` values/macros that affect Brickworks modules
* (see [bw_common](bw_common)).
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.1.0</strong>:
* <ul>
* <li>First release.</li>
* </ul>
* </li>
* </ul>
* }}}
*/
#ifndef _BW_CONFIG_H
#define _BW_CONFIG_H
// Your definitions here
#endif

View File

@ -20,8 +20,8 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_buf bw_common bw_config bw_math }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_buf bw_common bw_math }}}
* description {{{
* Interpolated delay line, not smoothed.
*
@ -31,6 +31,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_delay_process_multi()</code>.</li>

View File

@ -20,10 +20,10 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* version {{{ 0.6.0 }}}
* requires {{{
* bw_clip bw_common bw_config bw_gain bw_hp1 bw_lp1 bw_math bw_mm2
* bw_one_pole bw_peak bw_satur bw_svf
* bw_clip bw_common bw_gain bw_hp1 bw_lp1 bw_math bw_mm2 bw_one_pole bw_peak
* bw_satur bw_svf
* }}}
* description {{{
* Distortion effect.
@ -32,6 +32,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>First release.</li>

View File

@ -20,10 +20,9 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* version {{{ 0.6.0 }}}
* requires {{{
* bw_common bw_config bw_gain bw_math bw_mm2 bw_one_pole bw_peak bw_satur
* bw_svf
* bw_common bw_gain bw_math bw_mm2 bw_one_pole bw_peak bw_satur bw_svf
* }}}
* description {{{
* Overdrive effect.
@ -32,6 +31,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>First release.</li>

View File

@ -20,13 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_gain bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_math bw_one_pole }}}
* description {{{
* Dry/wet mixer.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>First release.</li>

View File

@ -20,14 +20,19 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_one_pole }}}
* description {{{
* Envelope follower made of a full-wave rectifier followed by
* [bw_one_pole](bw_one_pole) one-pole filter (6 dB/oct).
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_env_follow_process_multi()</code>.</li>

View File

@ -20,8 +20,8 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_one_pole }}}
* description {{{
* Linear ADSR envelope generator.
*
@ -40,6 +40,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_env_follow_process_multi()</code>.</li>

View File

@ -20,10 +20,10 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* version {{{ 0.6.0 }}}
* requires {{{
* bw_common bw_config bw_gain bw_hp1 bw_hs1 bw_lp1 bw_math bw_mm1
* bw_one_pole bw_satur bw_svf
* bw_common bw_gain bw_hp1 bw_hs1 bw_lp1 bw_math bw_mm1 bw_one_pole bw_satur
* bw_svf
* }}}
* description {{{
* Fuzz effect.
@ -32,6 +32,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>First release.</li>

View File

@ -20,13 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_one_pole }}}
* description {{{
* Gain.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_gain_process_multi()</code>.</li>

View File

@ -20,14 +20,19 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_lp1 bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_lp1 bw_math bw_one_pole }}}
* description {{{
* First-order highpass filter (6 dB/oct) with gain asymptotically
* approaching unity as frequency increases.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_hp1_process_multi()</code>.</li>

View File

@ -20,15 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{
* bw_common bw_config bw_gain bw_lp1 bw_math bw_mm1 bw_one_pole
* }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_lp1 bw_math bw_mm1 bw_one_pole }}}
* description {{{
* First-order high shelf filter (6 dB/oct) with unitary DC gain.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_hs1_process_multi()</code>.</li>

View File

@ -20,15 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{
* bw_common bw_config bw_gain bw_math bw_mm2 bw_one_pole bw_svf
* }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_math bw_mm2 bw_one_pole bw_svf }}}
* description {{{
* Second-order high shelf filter (12 dB/oct) with unitary DC gain.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_hs2_process_multi()</code>.</li>

View File

@ -20,8 +20,8 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_one_pole }}}
* description {{{
* First-order lowpass filter (6 dB/oct) with unitary DC gain.
*
@ -30,6 +30,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_lp1_process_multi()</code>.</li>

View File

@ -20,16 +20,19 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{
* bw_common bw_config bw_gain bw_lp1 bw_math bw_mm1 bw_one_pole
* }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_lp1 bw_math bw_mm1 bw_one_pole }}}
* description {{{
* First-order low shelf filter (6 dB/oct) with gain asymptotically
* approaching unity as frequency increases.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_ls1_process_multi()</code>.</li>

View File

@ -20,16 +20,19 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{
* bw_common bw_config bw_gain bw_math bw_mm2 bw_one_pole bw_svf
* }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_math bw_mm2 bw_one_pole bw_svf }}}
* description {{{
* Second-order low shelf filter (12 dB/oct) with gain asymptotically
* approaching unity as frequency increases.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_ls2_process_multi()</code>.</li>

View File

@ -49,8 +49,8 @@
/*!
* module_type {{{ utility }}}
* version {{{ 0.4.0 }}}
* requires {{{ bw_common bw_config }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common }}}
* description {{{
* A collection of mathematical routines that strive to be better suited to
* DSP than, e.g., those supplied by your C standard library.
@ -70,6 +70,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.4.0</strong>:
* <ul>
* <li>Added <code>bw_ceilf()</code>, <code>bw_intfracf()</code>,

View File

@ -20,13 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_gain bw_lp1 bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_lp1 bw_math bw_one_pole }}}
* description {{{
* First-order multimode filter.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_mm1_process_multi()</code>.</li>

View File

@ -20,13 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_gain bw_math bw_one_pole bw_svf }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_gain bw_math bw_one_pole bw_svf }}}
* description {{{
* Second-order multimode filter.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_mm2_process_multi()</code>.</li>

View File

@ -20,13 +20,18 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_env_follow bw_math bw_one_pole }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_env_follow bw_math bw_one_pole }}}
* description {{{
* Noise gate with independent sidechain input.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_noise_gate_process_multi()</code>.</li>

View File

@ -20,8 +20,8 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_rand }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_rand }}}
* description {{{
* Generator of white noise with uniform distribution.
*
@ -31,6 +31,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_noise_gen_process_multi()</code>.</li>

View File

@ -20,14 +20,19 @@
/*!
* module_type {{{ dsp }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config bw_math bw_one_pole bw_svf }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common bw_math bw_one_pole bw_svf }}}
* description {{{
* Second-order notch filter with unitary gain at DC and asymptotically as
* frequency increases, and null gain at cutoff frequency.
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>Added <code>bw_notch_process_multi()</code>.</li>

View File

@ -20,8 +20,8 @@
/*!
* module_type {{{ utility }}}
* version {{{ 0.5.0 }}}
* requires {{{ bw_common bw_config }}}
* version {{{ 0.6.0 }}}
* requires {{{ bw_common }}}
* description {{{
* Simple data structure that helps keeping track of note on/off events and
* pressed key status.
@ -30,6 +30,11 @@
* }}}
* changelog {{{
* <ul>
* <li>Version <strong>0.6.0</strong>:
* <ul>
* <li>Removed dependency on bw_config.</li>
* </ul>
* </li>
* <li>Version <strong>0.5.0</strong>:
* <ul>
* <li>First release.</li>

Some files were not shown because too many files have changed in this diff Show More