New Upstream Snapshot - stk

Ready changes

Summary

Merged new upstream version: 4.6.2+git20220621.1.9bf39f5+dfsg (was: 4.6.2+dfsg).

Resulting package

Built on 2022-11-27T15:42 (took 16m55s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots libstk-4.6.2-dbgsymapt install -t fresh-snapshots libstk-4.6.2apt install -t fresh-snapshots libstk-devapt install -t fresh-snapshots stk-dbgsymapt install -t fresh-snapshots stk-docapt install -t fresh-snapshots stk

Diff

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f91cf57..7e83ceb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,7 @@
 cmake_minimum_required(VERSION 3.1) ##TODO: which version is better
 
 project(STK VERSION 4.6.1)
+set (CMAKE_CXX_STANDARD 11)
 
 set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
 
diff --git a/configure.ac b/configure.ac
index 4d2e1ea..8faf97d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -162,6 +162,14 @@ api="$api -D__UNIX_JACK__"
     AC_MSG_RESULT(using ALSA)
     AC_CHECK_LIB(asound, snd_pcm_open, , AC_MSG_ERROR(ALSA support requires the asound library!))])
 
+    # Look for PulseAudio flag
+    AC_ARG_WITH(pulse, [  --with-pulse = choose PulseAudio support (linux only)])
+    AS_IF([test "x$with_pulse" == "xyes"], [
+    api="$api -D__LINUX_PULSE__"
+    AC_MSG_RESULT(using PulseAudio)
+    AC_CHECK_LIB(pulse, pa_proplist_gets, , AC_MSG_ERROR(PulseAudio support requires the libpulse library!))
+    AC_CHECK_LIB(pulse-simple, pa_simple_new, , AC_MSG_ERROR(PulseAudio support requires the libpulse-simple library!))])
+
     # Look for OSS flag
     AC_ARG_WITH(oss, [  --with-oss = choose OSS API support (unixes only)])
     AS_IF([test "x$with_oss" == "xyes"], [
diff --git a/debian/changelog b/debian/changelog
index a6112b1..34c4047 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+stk (4.6.2+git20220621.1.9bf39f5+dfsg-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Sun, 27 Nov 2022 15:34:10 -0000
+
 stk (4.6.2+dfsg-2) unstable; urgency=medium
 
   * Team upload
diff --git a/debian/patches/0001-Rename-demo-to-stk-demo.patch b/debian/patches/0001-Rename-demo-to-stk-demo.patch
index b3e2bfb..368cc37 100644
--- a/debian/patches/0001-Rename-demo-to-stk-demo.patch
+++ b/debian/patches/0001-Rename-demo-to-stk-demo.patch
@@ -6,10 +6,10 @@ Subject: Rename demo to stk-demo
  Makefile.in | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/Makefile.in b/Makefile.in
-index f4f04ec..5afd13e 100644
---- a/Makefile.in
-+++ b/Makefile.in
+Index: stk.git/Makefile.in
+===================================================================
+--- stk.git.orig/Makefile.in
++++ stk.git/Makefile.in
 @@ -6,7 +6,7 @@ REALTIME = @realtime@
  
  all :
diff --git a/debian/patches/0002-Link-against-system-s-shared-copies-of-rtaudio-and-r.patch b/debian/patches/0002-Link-against-system-s-shared-copies-of-rtaudio-and-r.patch
index bd90baf..d5196f4 100644
--- a/debian/patches/0002-Link-against-system-s-shared-copies-of-rtaudio-and-r.patch
+++ b/debian/patches/0002-Link-against-system-s-shared-copies-of-rtaudio-and-r.patch
@@ -13,10 +13,10 @@ Forwarded: no
  src/Makefile.in                  |  3 ++-
  7 files changed, 37 insertions(+), 31 deletions(-)
 
-diff --git a/projects/demo/Makefile.in b/projects/demo/Makefile.in
-index b390993..3c9b37d 100644
---- a/projects/demo/Makefile.in
-+++ b/projects/demo/Makefile.in
+Index: stk.git/projects/demo/Makefile.in
+===================================================================
+--- stk.git.orig/projects/demo/Makefile.in
++++ stk.git/projects/demo/Makefile.in
 @@ -41,7 +41,8 @@ LIBRARY = @LIBS@
  REALTIME = @realtime@
  ifeq ($(REALTIME),yes)
@@ -27,10 +27,10 @@ index b390993..3c9b37d 100644
  endif
  
  RAWWAVES = @rawwaves@
-diff --git a/projects/effects/Makefile.in b/projects/effects/Makefile.in
-index ed1f59d..5cbd5ad 100644
---- a/projects/effects/Makefile.in
-+++ b/projects/effects/Makefile.in
+Index: stk.git/projects/effects/Makefile.in
+===================================================================
+--- stk.git.orig/projects/effects/Makefile.in
++++ stk.git/projects/effects/Makefile.in
 @@ -30,7 +30,8 @@ LIBRARY = @LIBS@
  REALTIME = @realtime@
  ifeq ($(REALTIME),yes)
@@ -41,10 +41,10 @@ index ed1f59d..5cbd5ad 100644
  endif
  
  RAWWAVES = @rawwaves@
-diff --git a/projects/eguitar/Makefile.in b/projects/eguitar/Makefile.in
-index a144b97..1e171b6 100644
---- a/projects/eguitar/Makefile.in
-+++ b/projects/eguitar/Makefile.in
+Index: stk.git/projects/eguitar/Makefile.in
+===================================================================
+--- stk.git.orig/projects/eguitar/Makefile.in
++++ stk.git/projects/eguitar/Makefile.in
 @@ -30,7 +30,8 @@ LIBRARY = @LIBS@
  REALTIME = @realtime@
  ifeq ($(REALTIME),yes)
@@ -55,10 +55,10 @@ index a144b97..1e171b6 100644
  endif
  
  RAWWAVES = @rawwaves@
-diff --git a/projects/examples/Makefile.in b/projects/examples/Makefile.in
-index f242dc6..82485b2 100644
---- a/projects/examples/Makefile.in
-+++ b/projects/examples/Makefile.in
+Index: stk.git/projects/examples/Makefile.in
+===================================================================
+--- stk.git.orig/projects/examples/Makefile.in
++++ stk.git/projects/examples/Makefile.in
 @@ -57,26 +57,26 @@ distclean: clean
  strip : 
  	strip $(PROGRAMS)
@@ -98,7 +98,7 @@ index f242dc6..82485b2 100644
  
  inetOut: inetOut.cpp Stk.o FileRead.o FileWvIn.o InetWvOut.o Socket.o TcpClient.o UdpSocket.o Thread.o Mutex.o
  	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o inetOut inetOut.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/FileRead.o $(OBJECT_PATH)/FileWvIn.o $(OBJECT_PATH)/Socket.o $(OBJECT_PATH)/TcpClient.o $(OBJECT_PATH)/UdpSocket.o $(OBJECT_PATH)/Thread.o $(OBJECT_PATH)/Mutex.o $(OBJECT_PATH)/InetWvOut.o $(LIBRARY)
-@@ -84,26 +84,26 @@ inetOut: inetOut.cpp Stk.o FileRead.o FileWvIn.o InetWvOut.o Socket.o TcpClient.
+@@ -84,26 +84,26 @@ inetOut: inetOut.cpp Stk.o FileRead.o Fi
  sineosc: sineosc.cpp Stk.o FileRead.o FileWvIn.o FileLoop.o FileWrite.o FileWvOut.o
  	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o sineosc sineosc.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/FileWrite.o $(OBJECT_PATH)/FileRead.o $(OBJECT_PATH)/FileWvIn.o $(OBJECT_PATH)/FileWvOut.o $(OBJECT_PATH)/FileLoop.o $(LIBRARY)
  
@@ -139,10 +139,10 @@ index f242dc6..82485b2 100644
 -	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o grains grains.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/Granulate.o $(OBJECT_PATH)/Noise.o $(OBJECT_PATH)/FileRead.o $(OBJECT_PATH)/RtAudio.o $(LIBRARY)
 +grains: grains.cpp Stk.o Granulate.o Noise.o FileRead.o
 +	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o grains grains.cpp $(OBJECT_PATH)/Stk.o $(OBJECT_PATH)/Granulate.o $(OBJECT_PATH)/Noise.o $(OBJECT_PATH)/FileRead.o $(LIBRARY) -lrtaudio
-diff --git a/projects/examples/libMakefile.in b/projects/examples/libMakefile.in
-index ecbf727..d53e025 100644
---- a/projects/examples/libMakefile.in
-+++ b/projects/examples/libMakefile.in
+Index: stk.git/projects/examples/libMakefile.in
+===================================================================
+--- stk.git.orig/projects/examples/libMakefile.in
++++ stk.git/projects/examples/libMakefile.in
 @@ -20,6 +20,7 @@ LIBRARY = @LIBS@
  REALTIME = @realtime@
  ifeq ($(REALTIME),yes)
@@ -151,10 +151,10 @@ index ecbf727..d53e025 100644
  endif
  
  RAWWAVES = @rawwaves@
-diff --git a/projects/ragamatic/Makefile.in b/projects/ragamatic/Makefile.in
-index aad2e32..321311e 100644
---- a/projects/ragamatic/Makefile.in
-+++ b/projects/ragamatic/Makefile.in
+Index: stk.git/projects/ragamatic/Makefile.in
+===================================================================
+--- stk.git.orig/projects/ragamatic/Makefile.in
++++ stk.git/projects/ragamatic/Makefile.in
 @@ -31,7 +31,8 @@ LIBRARY = @LIBS@
  REALTIME = @realtime@
  ifeq ($(REALTIME),yes)
@@ -165,10 +165,10 @@ index aad2e32..321311e 100644
  endif
  
  RAWWAVES = @rawwaves@
-diff --git a/src/Makefile.in b/src/Makefile.in
-index 7798fdd..553d5c4 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
+Index: stk.git/src/Makefile.in
+===================================================================
+--- stk.git.orig/src/Makefile.in
++++ stk.git/src/Makefile.in
 @@ -55,7 +55,8 @@ LIBS     = @LIBS@
  
  REALTIME = @realtime@
diff --git a/debian/patches/0003-File-endian.h-is-not-on-machine-subdir.patch b/debian/patches/0003-File-endian.h-is-not-on-machine-subdir.patch
index fa13fcf..a3d236e 100644
--- a/debian/patches/0003-File-endian.h-is-not-on-machine-subdir.patch
+++ b/debian/patches/0003-File-endian.h-is-not-on-machine-subdir.patch
@@ -6,10 +6,10 @@ Subject: File endian.h is not on machine subdir
  src/include/soundcard.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/src/include/soundcard.h b/src/include/soundcard.h
-index 2cf3a2c..088be6a 100644
---- a/src/include/soundcard.h
-+++ b/src/include/soundcard.h
+Index: stk.git/src/include/soundcard.h
+===================================================================
+--- stk.git.orig/src/include/soundcard.h
++++ stk.git/src/include/soundcard.h
 @@ -103,7 +103,7 @@
  #define SNDCARD_OPL            28
  
diff --git a/debian/patches/0004-demo-needs-rt.patch b/debian/patches/0004-demo-needs-rt.patch
index 1462d87..a7482a3 100644
--- a/debian/patches/0004-demo-needs-rt.patch
+++ b/debian/patches/0004-demo-needs-rt.patch
@@ -7,10 +7,10 @@ Closes: #815509
  Makefile.in | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
 
-diff --git a/Makefile.in b/Makefile.in
-index 5afd13e..94eedd9 100644
---- a/Makefile.in
-+++ b/Makefile.in
+Index: stk.git/Makefile.in
+===================================================================
+--- stk.git.orig/Makefile.in
++++ stk.git/Makefile.in
 @@ -6,8 +6,8 @@ REALTIME = @realtime@
  
  all :
diff --git a/debian/patches/0005-Sort-o-files b/debian/patches/0005-Sort-o-files
index 473b845..afc02e6 100644
--- a/debian/patches/0005-Sort-o-files
+++ b/debian/patches/0005-Sort-o-files
@@ -14,10 +14,10 @@ Closes: #822566
  src/Makefile.in                | 2 +-
  6 files changed, 6 insertions(+), 6 deletions(-)
 
-diff --git a/projects/demo/Makefile.in b/projects/demo/Makefile.in
-index 3c9b37d..605fe1f 100644
---- a/projects/demo/Makefile.in
-+++ b/projects/demo/Makefile.in
+Index: stk.git/projects/demo/Makefile.in
+===================================================================
+--- stk.git.orig/projects/demo/Makefile.in
++++ stk.git/projects/demo/Makefile.in
 @@ -64,7 +64,7 @@ $(OBJECT_PATH)/.placeholder:
  	touch $(OBJECT_PATH)/.placeholder
  
@@ -27,10 +27,10 @@ index 3c9b37d..605fe1f 100644
  
  libdemo: demo.cpp
  	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o stk-demo utilities.cpp demo.cpp -L../../src -lstk $(LIBRARY)
-diff --git a/projects/effects/Makefile.in b/projects/effects/Makefile.in
-index 5cbd5ad..28d459b 100644
---- a/projects/effects/Makefile.in
-+++ b/projects/effects/Makefile.in
+Index: stk.git/projects/effects/Makefile.in
+===================================================================
+--- stk.git.orig/projects/effects/Makefile.in
++++ stk.git/projects/effects/Makefile.in
 @@ -53,7 +53,7 @@ $(OBJECT_PATH)/.placeholder:
  	touch $(OBJECT_PATH)/.placeholder
  
@@ -40,10 +40,10 @@ index 5cbd5ad..28d459b 100644
  
  libeffects: effects.cpp
  	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o effects effects.cpp -L../../src -lstk $(LIBRARY)
-diff --git a/projects/eguitar/Makefile.in b/projects/eguitar/Makefile.in
-index 1e171b6..1a64885 100644
---- a/projects/eguitar/Makefile.in
-+++ b/projects/eguitar/Makefile.in
+Index: stk.git/projects/eguitar/Makefile.in
+===================================================================
+--- stk.git.orig/projects/eguitar/Makefile.in
++++ stk.git/projects/eguitar/Makefile.in
 @@ -53,7 +53,7 @@ $(OBJECT_PATH)/.placeholder:
  	touch $(OBJECT_PATH)/.placeholder
  
@@ -53,10 +53,10 @@ index 1e171b6..1a64885 100644
  
  libeguitar: eguitar.cpp
  	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o eguitar utilities.cpp eguitar.cpp -L../../src -lstk $(LIBRARY)
-diff --git a/projects/examples/Makefile.in b/projects/examples/Makefile.in
-index 82485b2..2ac6129 100644
---- a/projects/examples/Makefile.in
-+++ b/projects/examples/Makefile.in
+Index: stk.git/projects/examples/Makefile.in
+===================================================================
+--- stk.git.orig/projects/examples/Makefile.in
++++ stk.git/projects/examples/Makefile.in
 @@ -58,7 +58,7 @@ strip :
  	strip $(PROGRAMS)
  
@@ -66,10 +66,10 @@ index 82485b2..2ac6129 100644
  
  midiprobe:
  	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o midiprobe midiprobe.cpp $(LIBRARY) -lrtmidi
-diff --git a/projects/ragamatic/Makefile.in b/projects/ragamatic/Makefile.in
-index 321311e..f9931c9 100644
---- a/projects/ragamatic/Makefile.in
-+++ b/projects/ragamatic/Makefile.in
+Index: stk.git/projects/ragamatic/Makefile.in
+===================================================================
+--- stk.git.orig/projects/ragamatic/Makefile.in
++++ stk.git/projects/ragamatic/Makefile.in
 @@ -54,7 +54,7 @@ $(OBJECT_PATH)/.placeholder:
  	touch $(OBJECT_PATH)/.placeholder
  
@@ -79,10 +79,10 @@ index 321311e..f9931c9 100644
  
  libragamat: ragamat.cpp Tabla.cpp Drone.cpp VoicDrum.cpp
  	$(CC) $(LDFLAGS) $(CFLAGS) $(DEFS) -o ragamat Tabla.cpp Drone.cpp VoicDrum.cpp ragamat.cpp -L../../src -lstk $(LIBRARY)
-diff --git a/src/Makefile.in b/src/Makefile.in
-index 553d5c4..ee088b3 100644
---- a/src/Makefile.in
-+++ b/src/Makefile.in
+Index: stk.git/src/Makefile.in
+===================================================================
+--- stk.git.orig/src/Makefile.in
++++ stk.git/src/Makefile.in
 @@ -93,7 +93,7 @@ $(STATICLIB) : $(OBJECTS)
  
  $(SHAREDLIB) : $(OBJECTS)
diff --git a/debian/patches/0006-Do-not-override-user-supplied-CXXFLAGS.patch b/debian/patches/0006-Do-not-override-user-supplied-CXXFLAGS.patch
index 38ee199..c634f66 100644
--- a/debian/patches/0006-Do-not-override-user-supplied-CXXFLAGS.patch
+++ b/debian/patches/0006-Do-not-override-user-supplied-CXXFLAGS.patch
@@ -7,10 +7,10 @@ Prepend local flags to that
  configure.ac | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/configure.ac b/configure.ac
-index 4d2e1ea..2fda2c0 100644
---- a/configure.ac
-+++ b/configure.ac
+Index: stk.git/configure.ac
+===================================================================
+--- stk.git.orig/configure.ac
++++ stk.git/configure.ac
 @@ -103,8 +103,8 @@ fi
  # For -I and -D flags
  CPPFLAGS="$CPPFLAGS $cppflag"
diff --git a/debian/patches/0007-demo-use-RAWWAVE_PATH-instead-of-hardcoded-string.patch b/debian/patches/0007-demo-use-RAWWAVE_PATH-instead-of-hardcoded-string.patch
index 1e78dea..583c324 100644
--- a/debian/patches/0007-demo-use-RAWWAVE_PATH-instead-of-hardcoded-string.patch
+++ b/debian/patches/0007-demo-use-RAWWAVE_PATH-instead-of-hardcoded-string.patch
@@ -6,10 +6,10 @@ Subject: demo: use RAWWAVE_PATH instead of hardcoded string
  projects/demo/demo.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/projects/demo/demo.cpp b/projects/demo/demo.cpp
-index c877b4a..3e74769 100644
---- a/projects/demo/demo.cpp
-+++ b/projects/demo/demo.cpp
+Index: stk.git/projects/demo/demo.cpp
+===================================================================
+--- stk.git.orig/projects/demo/demo.cpp
++++ stk.git/projects/demo/demo.cpp
 @@ -213,7 +213,7 @@ int main( int argc, char *argv[] )
  
    // Depending on how you compile STK, you may need to explicitly set
diff --git a/include/BiQuad.h b/include/BiQuad.h
index 5e8aaf7..b085c3a 100644
--- a/include/BiQuad.h
+++ b/include/BiQuad.h
@@ -13,10 +13,15 @@ namespace stk {
     Methods are provided for creating a resonance or notch in the
     frequency response while maintaining a constant filter gain.
 
+    Formulae used calculate coefficients for lowpass, highpass,
+    bandpass, bandreject and allpass are found on pg. 55 of
+    Udo Zölzer's "DAFX - Digital Audio Effects" (2011 2nd ed).   
+
     by Perry R. Cook and Gary P. Scavone, 1995--2021.
 */
 /***************************************************/
 
+const StkFloat RECIP_SQRT_2 = static_cast<StkFloat>( M_SQRT1_2 );  
 class BiQuad : public Filter
 {
 public:
@@ -74,12 +79,72 @@ public:
   */
   void setNotch( StkFloat frequency, StkFloat radius );
 
+  //! Set the filter coefficients for a low-pass with cutoff frequency \e fc (in Hz) and Q-factor \e Q.
+  /*!
+    This method determines the filter coefficients corresponding to a 
+    low-pass filter with cutoff placed at \e fc, where sloping behaviour 
+    and resonance are determined by \e Q. The default value for \e Q is 
+    1/sqrt(2), resulting in a gradual attenuation of frequencies higher than
+    \e fc without added resonance. Values greater than this will more 
+    aggressively attenuate frequencies above \e fc while also adding a 
+    resonance at \e fc. Values less than this will result in a more gradual
+    attenuation of frequencies above \e fc, but will also attenuate 
+    frequencies below \e fc as well. Both \e fc and \e Q must be positive.
+  */
+  void setLowPass( StkFloat fc, StkFloat Q=RECIP_SQRT_2 );
+
+  //! Set the filter coefficients for a high-pass with cutoff frequency \e fc (in Hz) and Q-factor \e Q.
+  /*!
+    This method determines the filter coefficients corresponding to a high-pass 
+    filter with cutoff placed at \e fc, where sloping behaviour and resonance 
+    are determined by \e Q. The default value for \e Q is 1/sqrt(2), resulting 
+    in a gradual attenuation of frequencies lower than \e fc without added 
+    resonance. Values greater than this will more aggressively attenuate 
+    frequencies below \e fc while also adding a resonance at \e fc. Values less 
+    than this will result in a more gradual attenuation of frequencies below 
+    \e fc, but will also attenuate frequencies above \e fc as well. 
+    Both \e fc and \e Q must be positive.
+  */
+  void setHighPass( StkFloat fc, StkFloat Q=RECIP_SQRT_2 );
+
+  //! Set the filter coefficients for a band-pass centered at \e fc (in Hz) with Q-factor \e Q.
+  /*!
+    This method determines the filter coefficients corresponding to a band-pass
+    filter with pass-band centered at \e fc, where band width and slope a 
+    determined by \e Q. Values for \e Q that are less than 1.0 will attenuate
+    frequencies above and below \e fc more gradually, resulting in a convex 
+    slope and a wider band. Values for \e Q greater than 1.0 will attenuate 
+    frequencies above and below \e fc more aggressively, resulting in a 
+    concave slope and a narrower band. Both \e fc and \e Q must be positive.
+  */
+  void setBandPass( StkFloat fc, StkFloat Q );
+
+  //! Set the filter coefficients for a band-reject centered at \e fc (in Hz) with Q-factor \e Q.
+  /*!
+    This method determines the filter coefficients corresponding to a 
+    band-reject filter with stop-band centered at \e fc, where band width 
+    and slope are determined by \e Q. Values for \e Q that are less than 1.0 
+    will yield a wider band with greater attenuation of \e fc. Values for \e Q
+    greater than 1.0 will yield a narrower band with less attenuation of \e fc. 
+    Both \e fc and \e Q must be positive.
+  */
+  void setBandReject( StkFloat fc, StkFloat Q );
+
+  //! Set the filter coefficients for an all-pass centered at \e fc (in Hz) with Q-factor \e Q.
+  /*!
+    This method determines the filter coefficients corresponding to
+    an all-pass filter whose phase response crosses -pi radians at \e fc.
+    High values for \e Q will result in a more instantaenous shift in phase 
+    response at \e fc. Lower values will result in a more gradual shift in
+    phase response around \e fc. Both \e fc and \e Q must be positive.
+  */
+  void setAllPass( StkFloat fc, StkFloat Q );
+
   //! Sets the filter zeroes for equal resonance gain.
   /*!
     When using the filter as a resonator, zeroes places at z = 1, z
     = -1 will result in a constant gain at resonance of 1 / (1 - R),
     where R is the pole radius setting.
-
   */
   void setEqualGainZeroes( void );
 
@@ -114,6 +179,14 @@ public:
  protected:
 
   virtual void sampleRateChanged( StkFloat newRate, StkFloat oldRate );
+  
+  // Helper function to update the three intermediate values for the predefined filter types
+  // along with the feedback filter coefficients. Performs the debug check for fc and Q-factor arguments.
+  void setCommonFilterValues( StkFloat fc, StkFloat Q );
+
+  StkFloat K_;
+  StkFloat kSqr_;
+  StkFloat denom_;
 };
 
 inline StkFloat BiQuad :: tick( StkFloat input )
diff --git a/include/ModalBar.h b/include/ModalBar.h
index f70da38..e71b7a7 100644
--- a/include/ModalBar.h
+++ b/include/ModalBar.h
@@ -53,7 +53,7 @@ public:
   //! Select a bar preset (currently modulo 9).
   void setPreset( int preset );
 
-  //! Set the modulation (vibrato) depth.
+  //! Set the modulation (vibrato) depth (0.0 - 1.0).
   void setModulationDepth( StkFloat mDepth );
 
   //! Perform the control change specified by \e number and \e value (0.0 - 128.0).
diff --git a/include/Stk.h b/include/Stk.h
index 66a753f..5fca319 100644
--- a/include/Stk.h
+++ b/include/Stk.h
@@ -622,7 +622,7 @@ const StkFloat ONE_OVER_128 = 0.0078125;
 #if defined(__WINDOWS_DS__) || defined(__WINDOWS_ASIO__) || defined(__WINDOWS_MM__)
   #define __OS_WINDOWS__
   #define __STK_REALTIME__
-#elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__) || defined(__UNIX_JACK__)
+#elif defined(__LINUX_OSS__) || defined(__LINUX_ALSA__) || defined(__UNIX_JACK__) || defined(__LINUX_PULSE__)
   #define __OS_LINUX__
   #define __STK_REALTIME__
 #elif defined(__IRIX_AL__)
diff --git a/src/BiQuad.cpp b/src/BiQuad.cpp
index 024a65f..64e5fe4 100644
--- a/src/BiQuad.cpp
+++ b/src/BiQuad.cpp
@@ -24,6 +24,10 @@ BiQuad :: BiQuad() : Filter()
   inputs_.resize( 3, 1, 0.0 );
   outputs_.resize( 3, 1, 0.0 );
 
+  K_ = 0.0;
+  kSqr_ = 0.0;
+  denom_ = 1.0;
+
   Stk::addSampleRateAlert( this );
 }
 
@@ -73,6 +77,11 @@ void BiQuad :: setResonance( StkFloat frequency, StkFloat radius, bool normalize
     b_[1] = 0.0;
     b_[2] = -b_[0];
   }
+  else {
+    b_[0] = 1.0;
+    b_[1] = 0.0;
+    b_[2] = 0.0;
+  }
 }
 
 void BiQuad :: setNotch( StkFloat frequency, StkFloat radius )
@@ -89,8 +98,57 @@ void BiQuad :: setNotch( StkFloat frequency, StkFloat radius )
 #endif
 
   // This method does not attempt to normalize the filter gain.
-  b_[2] = radius * radius;
+  b_[0] = 1.0; 
   b_[1] = (StkFloat) -2.0 * radius * cos( TWO_PI * (double) frequency / Stk::sampleRate() );
+  b_[2] = radius * radius;
+  
+  a_[1] = 0.0; 
+  a_[2] = 0.0;
+}
+
+void BiQuad :: setLowPass( StkFloat fc, StkFloat Q )
+{
+  setCommonFilterValues(fc, Q);
+
+  b_[0] = kSqr_ * Q * denom_;
+  b_[1] = 2 * b_[0];
+  b_[2] = b_[0];
+}
+
+void BiQuad :: setHighPass( StkFloat fc, StkFloat Q )
+{
+  setCommonFilterValues(fc, Q);
+
+  b_[0] = Q * denom_;
+  b_[1] = -2 * b_[0];
+  b_[2] = b_[0];
+}
+
+void BiQuad :: setBandPass( StkFloat fc, StkFloat Q )
+{
+  setCommonFilterValues(fc, Q);
+
+  b_[0] = K_ * denom_;
+  b_[1] = 0.0;
+  b_[2] = -b_[0];
+}
+
+void BiQuad :: setBandReject( StkFloat fc, StkFloat Q )
+{
+  setCommonFilterValues(fc, Q);
+
+  b_[0] = Q * (kSqr_ + 1) * denom_;
+  b_[1] = 2 * Q * (kSqr_ - 1) * denom_;
+  b_[2] = b_[0];
+}
+
+void BiQuad :: setAllPass( StkFloat fc, StkFloat Q )
+{
+  setCommonFilterValues(fc, Q);
+
+  b_[0] = a_[2];
+  b_[1] = a_[1];
+  b_[2] = 1;
 }
 
 void BiQuad :: setEqualGainZeroes( void )
@@ -100,4 +158,25 @@ void BiQuad :: setEqualGainZeroes( void )
   b_[2] = -1.0;
 }
 
+void BiQuad :: setCommonFilterValues( StkFloat fc, StkFloat Q)
+{
+#if defined(_STK_DEBUG_)
+  if ( fc < 0.0 ) {
+    oStream_ << "BiQuad::updateKValues: fc argument (" << fc << ") is negative!";
+    handleError( StkError::WARNING ); return;
+  }
+   if ( Q < 0.0 ) {
+    oStream_ << "BiQuad::updateKValues: Q argument (" << Q << ") is negative!";
+    handleError( StkError::WARNING ); return;
+  }
+#endif
+
+  K_ = tan(PI * fc / Stk::sampleRate());
+  kSqr_ = K_ * K_;
+  denom_ = 1 / (kSqr_ * Q + K_ + Q);
+
+  a_[1] = 2 * Q * (kSqr_ - 1) * denom_;
+  a_[2] = (kSqr_ * Q - K_ + Q) * denom_;
+}
+
 } // stk namespace
diff --git a/src/ModalBar.cpp b/src/ModalBar.cpp
index 6274cb2..0f1361f 100644
--- a/src/ModalBar.cpp
+++ b/src/ModalBar.cpp
@@ -83,6 +83,15 @@ void ModalBar :: setStrikePosition( StkFloat position )
   this->setModeGain(2, 0.11 * temp);
 }
 
+void ModalBar :: setModulationDepth( StkFloat mDepth )
+{
+  if ( mDepth < 0.0 || mDepth > 1.0 ) {
+    oStream_ << "ModalBar::setModulationDepth: parameter is out of range!";
+    handleError( StkError::WARNING ); return;
+  }
+  vibratoGain_ = mDepth * 0.3;
+}
+
 void ModalBar :: setPreset( int preset )
 {
   // Presets:
diff --git a/src/Twang.cpp b/src/Twang.cpp
index 17f0925..556b111 100644
--- a/src/Twang.cpp
+++ b/src/Twang.cpp
@@ -90,6 +90,11 @@ void Twang :: setLoopGain( StkFloat loopGain )
   loopFilter_.setGain( gain );
 }
 
+void Twang :: setLoopFilter( std::vector<StkFloat> coefficients )
+{
+  loopFilter_.setCoefficients( coefficients, true );
+}
+
 void Twang :: setPluckPosition( StkFloat position )
 {
   if ( position < 0.0 || position > 1.0 ) {

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/debug/.build-id/cc/71d1a21180d40e793c04c3f85dbceb583d06cf.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/df/1d92591b0cbfb9bf7c0d0950ee6cb2816f1417.debug

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/debug/.build-id/4e/1dab249c1b930242011078e0ad5897b34f1fca.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/78/d6c40b2eb36e1fe47302ba669d2049e17be561.debug

No differences were encountered between the control files of package libstk-4.6.2

Control files of package libstk-4.6.2-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 78d6c40b2eb36e1fe47302ba669d2049e17be561 df1d92591b0cbfb9bf7c0d0950ee6cb2816f1417

No differences were encountered between the control files of package libstk-dev

No differences were encountered between the control files of package stk

Control files of package stk-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 4e1dab249c1b930242011078e0ad5897b34f1fca cc71d1a21180d40e793c04c3f85dbceb583d06cf

No differences were encountered between the control files of package stk-doc

More details

Full run details