diff --git a/sources/jvxLibraries/jvx-dsp-base/include/jvx_math/jvx_math_extensions.h b/sources/jvxLibraries/jvx-dsp-base/include/jvx_math/jvx_math_extensions.h index 1e1e1d79..ad83405a 100644 --- a/sources/jvxLibraries/jvx-dsp-base/include/jvx_math/jvx_math_extensions.h +++ b/sources/jvxLibraries/jvx-dsp-base/include/jvx_math/jvx_math_extensions.h @@ -139,7 +139,7 @@ jvxData jvx_rand_uniform(jvxInt32* idum); //! Gaussian random noise generator, idum should be initialized with negative long integer -jvxData jvx_rand_normal(long *idum); +jvxData jvx_rand_normal(jvxInt32 *idum); //! Computes the square of the argument jvxData jvx_sqr(jvxData x); diff --git a/sources/jvxLibraries/jvx-dsp-base/src/jvx_math/jvx_math_extensions.c b/sources/jvxLibraries/jvx-dsp-base/src/jvx_math/jvx_math_extensions.c index db8df37d..a4512ea2 100644 --- a/sources/jvxLibraries/jvx-dsp-base/src/jvx_math/jvx_math_extensions.c +++ b/sources/jvxLibraries/jvx-dsp-base/src/jvx_math/jvx_math_extensions.c @@ -869,7 +869,7 @@ jvxData jvx_rand_uniform(jvxInt32 *idum) } -jvxData jvx_rand_normal(long *idum) +jvxData jvx_rand_normal(jvxInt32 *idum) { static int iset=0; static jvxData gset; diff --git a/sources/jvxLibraries/jvx-signals/src/jvx_generator_wave.c b/sources/jvxLibraries/jvx-signals/src/jvx_generator_wave.c index fa3aaf83..8d491de8 100644 --- a/sources/jvxLibraries/jvx-signals/src/jvx_generator_wave.c +++ b/sources/jvxLibraries/jvx-signals/src/jvx_generator_wave.c @@ -572,6 +572,79 @@ jvx_generatorwave_activate(jvx_generatorWave* hdl) return(res); } +// ================================================================================ +// Restart module +// ================================================================================ + +jvxDspBaseErrorType +jvx_generator_wave_restart_generator_unbuffered_sine(jvx_generatorWave* hdl) +{ + jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; + jvx_generator_wave_sine_parameter_runtime_private* newHdl = (jvx_generator_wave_sine_parameter_runtime_private*)hdl->prv; + return(res); +} + +jvxDspBaseErrorType +jvx_generator_wave_restart_generator_unbuffered_rect(jvx_generatorWave* hdl) +{ + jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; + jvx_generator_wave_rect_parameter_runtime_private* newHdl = (jvx_generator_wave_rect_parameter_runtime_private*)hdl->prv; + return(res); +} + +jvxDspBaseErrorType +jvx_generator_wave_restart_generator_unbuffered_ramp(jvx_generatorWave* hdl) +{ + jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; + jvx_generator_wave_ramp_parameter_runtime_private* newHdl = (jvx_generator_wave_ramp_parameter_runtime_private*)hdl->prv; + return(res); +} + +jvxDspBaseErrorType +jvx_generator_wave_restart_generator_unbuffered_noise(jvx_generatorWave* hdl) +{ + jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; + jvx_generator_wave_noise_parameter_runtime_private* newHdl = (jvx_generator_wave_noise_parameter_runtime_private*)hdl->prv; + return(res); +} + +#ifdef JVX_FFT_PRESENT +jvxDspBaseErrorType +jvx_generator_wave_restart_generator_buffered_perfectsweep(jvx_generatorWave* hdl) +{ + jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; + jvx_generator_wave_perfectsweep_parameter_runtime_private* newHdl = (jvx_generator_wave_perfectsweep_parameter_runtime_private*)hdl->prv; + return(res); +} +#endif + +jvxDspBaseErrorType +jvx_generator_wave_restart_generator_buffered_wavplayer(jvx_generatorWave* hdl) +{ + jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; + jvx_generator_wave_wavplayer_parameter_runtime_private* newHdl = (jvx_generator_wave_wavplayer_parameter_runtime_private*)hdl->prv; + return(res); +} + +jvxDspBaseErrorType +jvx_generator_wave_restart_generator_unbuffered_linlogsweep(jvx_generatorWave* hdl) +{ + jvxDspBaseErrorType res = JVX_DSP_NO_ERROR; + jvx_generator_wave_linlogsweep_parameter_runtime_private* newHdl = (jvx_generator_wave_linlogsweep_parameter_runtime_private*)hdl->prv; + + newHdl->runtime.inst_frequency = newHdl->runtime.linlogFreqMin; + newHdl->runtime_parameters_sync_intern.unbuffered.progress = 0.0; + newHdl->common_data.runtime.samples_produced = 0; + newHdl->runtime.oldVal = -1; + newHdl->runtime.gain = 0; + newHdl->runtime.phase = 0; + newHdl->runtime.position = 0; + newHdl->runtime_parameters_sync_intern.itCount = 0; + newHdl->runtime_parameters_async_intern.common.theStatus = JVX_GENERATOR_WAVE_STARTED; + + return(res); +} + // ================================================================================ // Start module // ================================================================================ @@ -1541,74 +1614,6 @@ jvx_generatorwave_postprocess(jvx_generatorWave* hdl) // ================================================================================ // ================================================================================ -jvxDspBaseErrorType -jvx_generator_wave_restart_generator_unbuffered_sine(jvx_generatorWave* hdl) -{ - jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; - jvx_generator_wave_sine_parameter_runtime_private* newHdl = (jvx_generator_wave_sine_parameter_runtime_private*)hdl->prv; - return(res); -} - -jvxDspBaseErrorType -jvx_generator_wave_restart_generator_unbuffered_rect(jvx_generatorWave* hdl) -{ - jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; - jvx_generator_wave_rect_parameter_runtime_private* newHdl = (jvx_generator_wave_rect_parameter_runtime_private*)hdl->prv; - return(res); -} - -jvxDspBaseErrorType -jvx_generator_wave_restart_generator_unbuffered_ramp(jvx_generatorWave* hdl) -{ - jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; - jvx_generator_wave_ramp_parameter_runtime_private* newHdl = (jvx_generator_wave_ramp_parameter_runtime_private*)hdl->prv; - return(res); -} - -jvxDspBaseErrorType -jvx_generator_wave_restart_generator_unbuffered_noise(jvx_generatorWave* hdl) -{ - jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; - jvx_generator_wave_noise_parameter_runtime_private* newHdl = (jvx_generator_wave_noise_parameter_runtime_private*)hdl->prv; - return(res); -} - -#ifdef JVX_FFT_PRESENT -jvxDspBaseErrorType -jvx_generator_wave_restart_generator_buffered_perfectsweep(jvx_generatorWave* hdl) -{ - jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; - jvx_generator_wave_perfectsweep_parameter_runtime_private* newHdl = (jvx_generator_wave_perfectsweep_parameter_runtime_private*)hdl->prv; - return(res); -} -#endif - -jvxDspBaseErrorType -jvx_generator_wave_restart_generator_buffered_wavplayer(jvx_generatorWave* hdl) -{ - jvxDspBaseErrorType res = JVX_DSP_ERROR_UNSUPPORTED; - jvx_generator_wave_wavplayer_parameter_runtime_private* newHdl = (jvx_generator_wave_wavplayer_parameter_runtime_private*)hdl->prv; - return(res); -} - -jvxDspBaseErrorType -jvx_generator_wave_restart_generator_unbuffered_linlogsweep(jvx_generatorWave* hdl) -{ - jvxDspBaseErrorType res = JVX_DSP_NO_ERROR; - jvx_generator_wave_linlogsweep_parameter_runtime_private* newHdl = (jvx_generator_wave_linlogsweep_parameter_runtime_private*)hdl->prv; - - newHdl->runtime.inst_frequency = newHdl->runtime.linlogFreqMin; - newHdl->runtime_parameters_sync_intern.unbuffered.progress = 0.0; - newHdl->common_data.runtime.samples_produced = 0; - newHdl->runtime.oldVal = -1; - newHdl->runtime.gain = 0; - newHdl->runtime.phase = 0; - newHdl->runtime.position = 0; - newHdl->runtime_parameters_sync_intern.itCount = 0; - newHdl->runtime_parameters_async_intern.common.theStatus = JVX_GENERATOR_WAVE_STARTED; - - return(res); -} jvxDspBaseErrorType jvx_generatorwave_restart(jvx_generatorWave* hdl) diff --git a/sources/jvxLibraries/third_party/web/fftw/fftw-3.3-win/Readme.txt b/sources/jvxLibraries/third_party/web/fftw/fftw-3.3-win/Readme.txt index adcd840c..5075f783 100644 --- a/sources/jvxLibraries/third_party/web/fftw/fftw-3.3-win/Readme.txt +++ b/sources/jvxLibraries/third_party/web/fftw/fftw-3.3-win/Readme.txt @@ -2,3 +2,11 @@ FFTW Library taken from here: http://fftw.org/ +UPDATE: You can build fftw also from the source code: download the tar.gz, unpack it and then, run + +cmake -DCMAKE_BUILD_TYPE=Debug ..\fftw-3.3.10 -G "Visual Studio 17 2022" -A x64 -DBUILD_SHARED_LIBS=FALS + +(Example for Windows) + + +