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