Skip to content

Commit

Permalink
roads lib
Browse files Browse the repository at this point in the history
  • Loading branch information
grammaton committed May 7, 2024
1 parent 5c9a4a7 commit c2c0d18
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/seam.lib
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ smg = library("seam.gerzon.lib");
// sln = library("seam.nono.lib");
// sgn = library("seam.nottoli.lib");
sjm = library("seam.moorer.lib");
scr = library("seam.roads.lib");
sms = library("seam.schroeder.lib");
sfv = library("seam.freeverb.lib");

Expand Down
39 changes: 39 additions & 0 deletions src/seam.roads.lib
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
declare name "SEAM Roads - Library";
declare version "0.2";
declare author "Daniele Annese";
declare author "Anthony Di Furia";
declare author "Giuseppe Silvi";
declare author "Francesco Vitucci";
declare license "CC3";

import("seam.lib");

//==============================================================================
//============================ CURTIS ROADS' COMPUTER MUSIC TUTORIAL FILTERS ===
//==============================================================================

scr = library("seam.roads.lib");

//================================================ FIR Comb Positive Filter ===
firCombPositive(d,g) = _ <: @(d)*(1-g),*(g) : +;
//process = os.impulse : firCombPositive(0.5,1);

//================================================ FIR Comb Negative Filter ===
firCombNegative(d,g) = _ <: @(d)*(1-g),*(g) : -;
//process = os.impulse : firCombNegative(0.5,1);

//========================================================= IIR Comb Filter ===
iirComb(d,g) = *(1-g) : + ~ (@(d-1) *(g)) : mem;
//process = os.impulse : iirComb(1,1/sqrt(2));

//========================================================= All-Pass Filter ===
allPassFilter(d,g) = (+ <: @(d-1),*(-g)) ~ *(g) : mem,_ : +;
//process = os.impulse : allPassFilter(1,1/sqrt(2));

//========== Schroeder Reverberator With C.R. Filters And J.C. Coefficients ===
reverberator(x) = x <:
iirComb(1687,0.773),iirComb(1601,0.802),
iirComb(2053,0.753),iirComb(2251,0.733)
:> allPassFilter(347,0.7) : allPassFilter(113,0.7);

//process = os.impulse : reverberator;

0 comments on commit c2c0d18

Please sign in to comment.