16 Commits

Author SHA1 Message Date
garyscavone
6aacd357d7 Merge pull request #150 from donarturo11/fix-msvc-compile-error
Remove adding /clr flag to cl compiler
2025-03-29 15:24:59 -04:00
Artur Wrona
0d4bb84732 Remove adding /clr flag to cl compiler 2025-03-19 13:10:50 +01:00
garyscavone
270edc855f Sample rate fix in effects.cpp, revised code in PitShift for hanning windowing. 2024-12-18 20:45:43 -05:00
garyscavone
d7d6079f6b Merge pull request #144 from zonkmachine/modalbarcontrol
Fix mixed up control messages
2024-12-09 10:18:26 -05:00
garyscavone
cea6f547d2 Merge pull request #146 from Kreijstal/patch-1
use pkgconf if available on CMakeLists
2024-12-08 11:33:33 -05:00
Kreijstal
212950d364 use pkgconf if available on CMakeLists
Otherwise fallback
2024-12-08 17:22:22 +01:00
Oskar Wallgren
aeaef391ef Fix mixed up control messages
In ModalBar.cpp the control messages for 'Stick direct mix' and 'Vibrato amplitude'
have been mixed up. This also concerns some documentation but the description
on https://ccrma.stanford.edu/software/stk/classstk_1_1ModalBar.html, which is
generated from the source, is correct.
2023-10-06 16:39:01 +02:00
garyscavone
d0345712db Added documentation gifs to doc/html/ directory, and updated configure.ac to remove a couple deprecated functions. 2023-08-14 13:53:11 -04:00
garyscavone
1cb2c81d04 Updated configure.ac 2023-08-10 16:49:35 -04:00
garyscavone
b671638f99 Version updates for 5.0.1 release. 2023-08-10 16:46:47 -04:00
garyscavone
169b005a2d Merge pull request #135 from donarturo11/fix-msvc-flags
Fix msvc flags
2023-08-08 09:00:51 -04:00
garyscavone
73008d02a1 Merge pull request #133 from donarturo11/fix-math
Add using math definitions
2023-08-08 09:00:24 -04:00
garyscavone
e364d81c8f Merge pull request #129 from Segfault1602/alexstonge-fixdemovcxproj
Fix demo project on Windows
2023-08-08 08:59:58 -04:00
donarturo11
f39c1fb06d Add MSVC flags 2023-01-28 21:06:31 +01:00
donarturo11
35ca4abcb9 Add math definitions 2023-01-26 10:30:20 +01:00
Segfault1602
ce765cc391 Fix demo project on Windows
The demo project definition on windows was outdated, causing it to not build properly.

The fix was to add the two missing cpp file to the project definition (Iir.cpp and Recorder.cpp) as well as define `_USE_MATH_DEFINES` to allow the compiler to use `M_SQRT1_2`.
2022-11-20 10:09:26 -08:00
13 changed files with 197 additions and 123 deletions

View File

@@ -11,8 +11,13 @@ endif()
SET_PROPERTY(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Release" "Debug" "RelWithDebInfo" "MinSizeRel")
message("Build type: " ${CMAKE_BUILD_TYPE})
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_STK_DEBUG_ -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__")
if(MSVC)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /O2 /DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Z7 /Ob0 /Od /RTC1 /D_ITERATOR_DEBUG_LEVEL=2 /D_STK_DEBUG_ /D__RTAUDIO_DEBUG__ /D__RTMIDI_DEBUG__")
else()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -D_STK_DEBUG_ -D__RTAUDIO_DEBUG__ -D__RTMIDI_DEBUG__")
endif()
if(${CMAKE_CXX_COMPILER_ID} STREQUAL GNU)
message("GCC.")
@@ -40,13 +45,54 @@ file(GLOB STK_SRC "./src/*.cpp") # GLOB instead of GLOB_RECURSE as the asio depe
#========================================#
if(REALTIME)
if(ENABLE_JACK)
find_library(JACK_LIBRARY jack) # find_package(JACK) # TODO: NEED FindJACK.cmake
if(JACK_LIBRARY)
message("Jack API found: ${JACK_LIBRARY}")
link_libraries(${JACK_LIBRARY})
# Try to find PkgConfig
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
# PkgConfig is available, use it
pkg_check_modules(JACK QUIET jack)
endif()
if(NOT JACK_FOUND)
# PkgConfig was not found or Jack was not found through it, try a fallback
message(STATUS "PkgConfig not found or failed to find Jack, attempting fallback")
# Fallback: Search in common locations
find_path(JACK_INCLUDE_DIR
NAMES jack/jack.h
HINTS
ENV JACK_ROOT
"$ENV{ProgramFiles}/Jack"
/usr/local/include
/usr/include
)
find_library(JACK_LIBRARY
NAMES jack
HINTS
ENV JACK_ROOT
"$ENV{ProgramFiles}/Jack"
/usr/local/lib
/usr/lib
)
# Check if the fallback was successful
if(JACK_INCLUDE_DIR AND JACK_LIBRARY)
set(JACK_FOUND TRUE)
set(JACK_INCLUDE_DIRS ${JACK_INCLUDE_DIR})
set(JACK_LIBRARIES ${JACK_LIBRARY})
message(STATUS "Found Jack (fallback):")
message(STATUS " Includes: ${JACK_INCLUDE_DIRS}")
message(STATUS " Libraries: ${JACK_LIBRARIES}")
else()
message(WARNING "Failed to find Jack library even with fallback. Please install Jack development package or ensure it is in a standard location.")
endif()
endif()
if(JACK_FOUND)
include_directories(${JACK_INCLUDE_DIRS})
link_libraries(${JACK_LIBRARIES})
add_definitions(-D__UNIX_JACK__)
else()
message(WARNING "JACK support requires the jack library!")
endif()
endif()
@@ -79,7 +125,6 @@ if(REALTIME)
# Tested under MSYS2 with Mingw64 toolchain
#============== WINDOWS ================#
message("Windows DETECTED!")
link_libraries(winmm ole32 wsock32)
add_definitions(-D__WINDOWS_MM__)
@@ -114,7 +159,7 @@ TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
if(NOT IS_BIG_ENDIAN)
add_definitions(-D__LITTLE_ENDIAN__)
endif()
add_definitions(-D_USE_MATH_DEFINES)
if(INSTALL_HEADERS)
file(GLOB STK_HEADERS "include/*.h")
install(FILES ${STK_HEADERS} DESTINATION include/stk)

View File

@@ -1,5 +1,5 @@
# Process this file with autoconf to produce a configure script.
AC_INIT(STK, 5.0.0, gary.scavone@mcgill.ca, stk)
AC_INIT([STK],[5.0.0],[gary.scavone@mcgill.ca],[stk])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(src/Stk.cpp)
AC_CONFIG_FILES(Makefile src/Makefile projects/demo/Makefile projects/effects/Makefile projects/ragamatic/Makefile projects/examples/Makefile projects/examples/libMakefile projects/eguitar/Makefile)
@@ -20,13 +20,15 @@ if [[ $AR = "no" ]] ; then
fi
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_INCLUDES_DEFAULT
AC_PROG_EGREP
AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h termio.h unistd.h)
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_C_BIGENDIAN
AC_EGREP_CPP(yes,
[#ifndef WORDS_BIGENDIAN

View File

@@ -2,6 +2,11 @@ The Synthesis ToolKit in C++ (STK)
By Perry R. Cook and Gary P. Scavone, 1995--2023.
v.5.0.1 (10 August 2023)
- see github site for complete details (github.com/thestk/stk)
- cmake updates
- fix for demo msvc project in Windows
v.5.0.0 (4 August 2023)
- see github site for complete details (github.com/thestk/stk)
- new filter design functionality in BiQuad (thanks to Navin Kumar!)

View File

@@ -1,10 +1,15 @@
/*! \page download Download and Release Notes
\section down Download Version 5.0.0 (4 August 2023):
\section down Download Version 5.0.1 (10 August 2023):
- <A HREF="http://ccrma.stanford.edu/software/stk/release/stk-5.0.0.tar.gz">Source distribution</A>
- <A HREF="http://ccrma.stanford.edu/software/stk/release/stk-5.0.1.tar.gz">Source distribution</A>
\section notes Release Notes:
\subsection v5dot0dot1 Version 5.0.1
- see github site for complete details (github.com/thestk/stk)
- cmake updates
- fix for demo msvc project in Windows
\subsection v5dot0dot0 Version 5.0.0
- see github site for complete details (github.com/thestk/stk)
- new filter design functionality in BiQuad (thanks to Navin Kumar!)

BIN
doc/html/ccrma.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
doc/html/mcgill.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
doc/html/princeton.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -17,7 +17,7 @@ namespace stk {
*/
/***************************************************/
const int maxDelay = 5024;
const int maxDelay = 5000; //5024;
class PitShift : public Effect
{
@@ -64,6 +64,7 @@ class PitShift : public Effect
DelayL delayLine_;
StkFloat delay_[2];
StkFloat env_[2];
StkFrames window_;
StkFloat rate_;
unsigned long delayLength_;
unsigned long halfLength_;
@@ -73,25 +74,29 @@ class PitShift : public Effect
inline StkFloat PitShift :: tick( StkFloat input )
{
// Calculate the two delay length values, keeping them within the
// range 12 to maxDelay-12.
// range 0 to delayLength.
delay_[0] += rate_;
while ( delay_[0] > maxDelay-12 ) delay_[0] -= delayLength_;
while ( delay_[0] < 12 ) delay_[0] += delayLength_;
while ( delay_[0] >= delayLength_ ) delay_[0] -= delayLength_;
while ( delay_[0] < 0 ) delay_[0] += delayLength_;
delay_[1] = delay_[0] + halfLength_;
while ( delay_[1] > maxDelay-12 ) delay_[1] -= delayLength_;
while ( delay_[1] < 12 ) delay_[1] += delayLength_;
while ( delay_[1] >= delayLength_ ) delay_[1] -= delayLength_;
while ( delay_[1] < 0 ) delay_[1] += delayLength_;
// Set the new delay line lengths.
delayLine_.setDelay( delay_[0] );
// Calculate a triangular envelope.
env_[1] = fabs( ( delay_[0] - halfLength_ + 12 ) * ( 1.0 / (halfLength_ + 12 ) ) );
env_[0] = 1.0 - env_[1];
//env_[1] = fabs( ( delay_[0] - halfLength_ ) * ( 1.0 / (halfLength_ ) ) );
//env_[0] = 1.0 - env_[1];
// Or use the precomputed hanning window.
env_[1] = window_[delay_[0]];
env_[0] = window_[delay_[1]];
// Delay input and apply envelope.
lastFrame_[0] = env_[1] * delayLine_.tapOut( delay_[1] );
lastFrame_[0] = +env_[0] * delayLine_.tick( input );
lastFrame_[0] += env_[0] * delayLine_.tick( input );
// Compute effect mix and output.
lastFrame_[0] *= effectMix_;

View File

@@ -45,11 +45,13 @@
<OutDir>.\</OutDir>
<IntDir>.\Release\</IntDir>
<LinkIncremental>false</LinkIncremental>
<TargetName>stk-demo</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>.\</OutDir>
<IntDir>.\Debug\</IntDir>
<LinkIncremental>true</LinkIncremental>
<TargetName>stk-demo</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
@@ -61,7 +63,7 @@
<SuppressStartupBanner>true</SuppressStartupBanner>
<WarningLevel>Level3</WarningLevel>
<AdditionalIncludeDirectories>..\..\include;..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>NDEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>NDEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerListingLocation>.\Release\</AssemblerListingLocation>
<PrecompiledHeaderOutputFile>.\Release\demo.pch</PrecompiledHeaderOutputFile>
<ObjectFileName>.\Release\</ObjectFileName>
@@ -97,7 +99,7 @@
<MinimalRebuild>true</MinimalRebuild>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>..\..\include;..\..\src\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_DEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>_DEBUG;__LITTLE_ENDIAN__;__WINDOWS_MM__;WIN32;_CONSOLE;__WINDOWS_DS__;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AssemblerListingLocation>.\Debug\</AssemblerListingLocation>
<PrecompiledHeaderOutputFile>.\Debug\demo.pch</PrecompiledHeaderOutputFile>
<ObjectFileName>.\Debug\</ObjectFileName>
@@ -125,6 +127,8 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\Iir.cpp" />
<ClCompile Include="..\..\src\Recorder.cpp" />
<ClCompile Include="demo.cpp" />
<ClCompile Include="utilities.cpp" />
<ClCompile Include="..\..\src\include\asio.cpp" />

View File

@@ -248,257 +248,260 @@
<ClCompile Include="..\..\src\Wurley.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Recorder.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\Iir.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="utilities.h" />
<ClInclude Include="..\..\src\include\RtAudio.h">
<ClInclude Include="..\..\include\RtAudio.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\RtMidi.h">
<ClInclude Include="..\..\include\ADSR.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\RtWvIn.h">
<ClInclude Include="..\..\include\Asymp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\RtWvOut.h">
<ClInclude Include="..\..\include\BandedWG.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\ADSR.h">
<ClInclude Include="..\..\include\BeeThree.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Asymp.h">
<ClInclude Include="..\..\include\BiQuad.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BandedWG.h">
<ClInclude Include="..\..\include\BlowBotl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BeeThree.h">
<ClInclude Include="..\..\include\BlowHole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BiQuad.h">
<ClInclude Include="..\..\include\Bowed.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BlowBotl.h">
<ClInclude Include="..\..\include\BowTable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BlowHole.h">
<ClInclude Include="..\..\include\Brass.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Bowed.h">
<ClInclude Include="..\..\include\Clarinet.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\BowTable.h">
<ClInclude Include="..\..\include\Delay.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Brass.h">
<ClInclude Include="..\..\include\DelayA.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Clarinet.h">
<ClInclude Include="..\..\include\DelayL.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Delay.h">
<ClInclude Include="..\..\include\Drummer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\DelayA.h">
<ClInclude Include="..\..\include\Effect.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\DelayL.h">
<ClInclude Include="..\..\include\Envelope.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Drummer.h">
<ClInclude Include="..\..\include\FileLoop.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Effect.h">
<ClInclude Include="..\..\include\FileRead.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Envelope.h">
<ClInclude Include="..\..\include\FileWrite.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileLoop.h">
<ClInclude Include="..\..\include\FileWvIn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileRead.h">
<ClInclude Include="..\..\include\FileWvOut.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileWrite.h">
<ClInclude Include="..\..\include\Filter.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileWvIn.h">
<ClInclude Include="..\..\include\Fir.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FileWvOut.h">
<ClInclude Include="..\..\include\Flute.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Filter.h">
<ClInclude Include="..\..\include\FM.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Fir.h">
<ClInclude Include="..\..\include\FMVoices.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Flute.h">
<ClInclude Include="..\..\include\FormSwep.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FM.h">
<ClInclude Include="..\..\include\Function.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FMVoices.h">
<ClInclude Include="..\..\include\Generator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\FormSwep.h">
<ClInclude Include="..\..\include\HevyMetl.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Function.h">
<ClInclude Include="..\..\include\Instrmnt.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Generator.h">
<ClInclude Include="..\..\include\JCRev.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\HevyMetl.h">
<ClInclude Include="..\..\include\JetTable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Instrmnt.h">
<ClInclude Include="..\..\include\Mandolin.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\JCRev.h">
<ClInclude Include="..\..\include\Mesh2D.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\JetTable.h">
<ClInclude Include="..\..\include\Messager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Mandolin.h">
<ClInclude Include="..\..\include\Modal.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Mesh2D.h">
<ClInclude Include="..\..\include\ModalBar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Messager.h">
<ClInclude Include="..\..\include\Modulate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Modal.h">
<ClInclude Include="..\..\include\Moog.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\ModalBar.h">
<ClInclude Include="..\..\include\Mutex.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Modulate.h">
<ClInclude Include="..\..\include\Noise.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Moog.h">
<ClInclude Include="..\..\include\NRev.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Mutex.h">
<ClInclude Include="..\..\include\OnePole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Noise.h">
<ClInclude Include="..\..\include\OneZero.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\NRev.h">
<ClInclude Include="..\..\include\PercFlut.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\OnePole.h">
<ClInclude Include="..\..\include\Phonemes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\OneZero.h">
<ClInclude Include="..\..\include\Plucked.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\PercFlut.h">
<ClInclude Include="..\..\include\PoleZero.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Phonemes.h">
<ClInclude Include="..\..\include\PRCRev.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Plucked.h">
<ClInclude Include="..\..\include\ReedTable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\PoleZero.h">
<ClInclude Include="..\..\include\Resonate.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\PRCRev.h">
<ClInclude Include="..\..\include\Rhodey.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\ReedTable.h">
<ClInclude Include="..\..\include\RtMidi.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Resonate.h">
<ClInclude Include="..\..\include\RtWvIn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Rhodey.h">
<ClInclude Include="..\..\include\RtWvOut.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Sampler.h">
<ClInclude Include="..\..\include\Sampler.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Saxofony.h">
<ClInclude Include="..\..\include\Saxofony.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Shakers.h">
<ClInclude Include="..\..\include\Shakers.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Simple.h">
<ClInclude Include="..\..\include\Simple.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\SineWave.h">
<ClInclude Include="..\..\include\SineWave.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\SingWave.h">
<ClInclude Include="..\..\include\SingWave.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Sitar.h">
<ClInclude Include="..\..\include\Sitar.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\SKINI.h">
<ClInclude Include="..\..\include\SKINI.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Socket.h">
<ClInclude Include="..\..\include\Socket.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Sphere.h">
<ClInclude Include="..\..\include\Sphere.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\StifKarp.h">
<ClInclude Include="..\..\include\StifKarp.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Stk.h">
<ClInclude Include="..\..\include\Stk.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TcpServer.h">
<ClInclude Include="..\..\include\TcpServer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Thread.h">
<ClInclude Include="..\..\include\Thread.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TubeBell.h">
<ClInclude Include="..\..\include\TubeBell.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Twang.h">
<ClInclude Include="..\..\include\Twang.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TwoPole.h">
<ClInclude Include="..\..\include\TwoPole.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\TwoZero.h">
<ClInclude Include="..\..\include\TwoZero.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Vector3D.h">
<ClInclude Include="..\..\include\Vector3D.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Voicer.h">
<ClInclude Include="..\..\include\Voicer.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Whistle.h">
<ClInclude Include="..\..\include\Whistle.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\Wurley.h">
<ClInclude Include="..\..\include\Wurley.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\WvIn.h">
<ClInclude Include="..\..\include\WvIn.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\include\WvOut.h">
<ClInclude Include="..\..\include\WvOut.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="notes.txt" />
</ItemGroup>
</Project>

View File

@@ -219,17 +219,17 @@ int tick( void *outputBuffer, void *inputBuffer, unsigned int nBufferFrames,
int main( int argc, char *argv[] )
{
// If you want to change the default sample rate (set in Stk.h), do
// it before instantiating any objects! If the sample rate is
// specified in the command line, it will override this setting.
Stk::setSampleRate( 48000.0 );
TickData data;
RtAudio adac;
int i;
if ( argc < 2 || argc > 6 ) usage();
// If you want to change the default sample rate (set in Stk.h), do
// it before instantiating any objects! If the sample rate is
// specified in the command line, it will override this setting.
Stk::setSampleRate( 48000.0 );
// Parse the command-line arguments.
unsigned int port = 2001;
for ( i=1; i<argc; i++ ) {

View File

@@ -9,9 +9,9 @@
Control Change Numbers:
- Stick Hardness = 2
- Stick Position = 4
- Vibrato Gain = 8
- Vibrato Gain = 1
- Vibrato Frequency = 11
- Direct Stick Mix = 1
- Direct Stick Mix = 8
- Volume = 128
- Modal Presets = 16
- Marimba = 0
@@ -173,9 +173,9 @@ void ModalBar :: controlChange( int number, StkFloat value )
else if (number == __SK_ProphesyRibbon_) // 16
this->setPreset((int) value);
else if (number == __SK_Balance_) // 8
vibratoGain_ = normalizedValue * 0.3;
else if (number == __SK_ModWheel_) // 1
directGain_ = normalizedValue;
else if (number == __SK_ModWheel_) // 1
vibratoGain_ = normalizedValue * 0.3;
else if (number == __SK_ModFrequency_) // 11
vibrato_.setFrequency( normalizedValue * 12.0 );
else if (number == __SK_AfterTouch_Cont_) // 128

View File

@@ -16,15 +16,20 @@ namespace stk {
PitShift :: PitShift( void )
{
delayLength_ = maxDelay - 24;
delayLength_ = maxDelay;
halfLength_ = delayLength_ / 2;
delay_[0] = 12;
delay_[1] = maxDelay / 2;
delay_[0] = 0;
delay_[1] = delayLength_ / 2;
delayLine_.setMaximumDelay( maxDelay );
delayLine_.setDelay( delay_[0] );
effectMix_ = 0.5;
rate_ = 1.0;
window_.resize( delayLength_, 1 );
StkFloat temp = TWO_PI / delayLength_;
for ( unsigned long i=0; i<=window_.size(); i++ )
window_[i] = (cos( i * temp ) + 1.0) / 2.0;
}
void PitShift :: clear()