Changelog
Source:NEWS.md
ravetools 0.2.4
- Added a naive implementation of non-negative matrix factorization in pure R
- Added finding and aligning stimulation pulses (for continuous stimulation)
- Added
find_peaksto provide finding peaks along a trace of signal
ravetools 0.2.3
CRAN release: 2025-07-22
- Added
gammatone_fastfilters to obtain the audio envelope at different frequencies - Added
vcg_subset_certexto subset mesh - Added
vcg_subdivisionto up-sample mesh - Added plane-generating function to create mesh for plane
ravetools 0.2.2
CRAN release: 2025-03-05
- Fixed
clang20warning and removed problematicvcglibcode that use pointers after free.
ravetools 0.2.1
CRAN release: 2025-01-24
- Using
std::nearbyintinsteadstd::roundto round numbers to comply toIEC-60559standard that half numbers round to nearest even integers - Implemented low-level
3Dvolume sampling inC++:resample_3d_volume - Exported
gsignal::resample(however, some edits might be needed in the future to produce the same results asMatlab) - Supported converting
ieegiosurface geometries tomesh3dto be used inVCGrelated functions - Added
K-Dtree search to find closest points among two point clouds
ravetools 0.2.0
CRAN release: 2024-12-16
- Added
vcg_raycasterto find intersection of rays and given mesh object.
ravetools 0.1.9
CRAN release: 2024-11-08
- Hot fix by adding
vctrstoSuggeststo fix the issue that fails the unit test due to an update intestthatpackage.
ravetools 0.1.8
CRAN release: 2024-09-03
-
design_filterensures frequency window cuts off within 0 toNyquist -
fftfiltallows matrix input -
filtfiltwitha=1(FIRfilter) callsfftfiltto speed up - Fixed
pwelchincorrect power calculation. The results agrees mostly withMatlabfunction - Using
hammingwindow as the default inpwelch; exported additional window options such asblackmanfamilies,bohmanwin,flattopwin, andhanning
ravetools 0.1.7
CRAN release: 2024-07-17
- Fixed a
c++template issue caused byvcglib, which fails to compile underclang19 -
decimateagrees withMatlabnow (bothfirandiirfilters) - Implemented
freqz2to obtain the frequency response of a digital filter (similar togsignal::freqzbut with more accurate cutoff frequency calculation and more customize plots) - Added filter diagnostic plot
diagnose_filter - Added
check_filterto obtain expected magnitude at given frequency and reciprocal condition number - Removed dependency
signaland usegsignalinstead - Added
design_filterfor bothfirandiirfilters, allowing both entry and intermediate users to design band-pass/stop, low/high pass filters easily. - The
iirfilter order generated fromdesign_filterwill be checked againstrcond_filter_ar(reciprocal condition number) to make improve the numeric stability - Fixed (hopefully) memory issues caused by
dijkstra; the package passedasan,valgrindtest provided byrhub2
ravetools 0.1.6
CRAN release: 2024-06-02
- Fixed
dijkstramethod occasionally causing memory error. New method is much faster now. - Fixed
plot.pwelchnot displaying the signal names correctly. - Removed
c++17requirement and supports 11, 14, and 17 standards
ravetools 0.1.5
CRAN release: 2024-05-19
- Fixed
FIR1filter - Fixed
pwelchthrowing warnings when signal is zero (or zero power) - Updated authorship
ravetools 0.1.4
- Implemented
dijkstrato find shortest paths in mesh - Migrated and incorporated
vcglib - Fixed a
C++template issue via type explicit calls - Fixed
fir1filter when band-passing signals with incorrectn -
pwelchplot works with zero power now;mv_pwelchplot error fixed
ravetools 0.1.3
CRAN release: 2023-12-04
- Rewrote
band_pass2to avoidNAgenerated when upper band frequency isNyquist - Added
Vector3,Matrix4,Quaternionfor in-place calculation - Added support for
WASM - Fixed issues reported by
CRAN: “format string is not a string literal (potentially insecure)”
ravetools 0.1.2
CRAN release: 2023-07-16
- Compatible with the latest
filearray - Exported
grow_volume -
mesh_from_volumeno longer throw errors if the mesh does not form a manifold
ravetools 0.1.1
CRAN release: 2023-04-19
- Fixed a precision issue that caused test failure on some machine
ravetools 0.1.0
CRAN release: 2023-02-18
- Added
fill_surfaceto fill in volume based on given surface mesh - Added
mesh_from_volumeto generate mesh from volume. This function can be used together withfill_surfaceto generate surface envelope - Added
register_volumeto align two imaging data using linear or non-linear registration - Added
fftwon2Dimage and3Dvolume data - Added convolution for
1D,2D,3Ddata usingFFT
ravetools 0.0.9
CRAN release: 2023-01-20
- Fixed
pwelchfrequency not starting from zero issue - Upgraded
TinyThreadusing the latest pull-request toRcppParallel
ravetools 0.0.8
CRAN release: 2022-10-14
- Added
interpolate_stimulationto detect stimulation signals within the response and interpolate with smooth signals - The package now imports
splines - Added
fast_quantileandfast_mvquantileto improve the quantile/median calculation speed - Fixed the
plot_signalsplotting range too large when signals have large values (such as stimulation) - Fixed
TinyThreadslibrary memory leak issues - Simplified
diagnose_channel, avoid duplicatedpwelchcalculation
ravetools 0.0.7
CRAN release: 2022-09-19
- Added signal
filter,filtfiltthat produce the same results asMatlab(with precision error) - Added two ways to perform band-pass filters
- Allows multiple channels through
pwelchas a row-major matrix to speed up calculation - Added
wavelet_cycles_suggestto provide default calculation of wavelet cycles - Added internal argument
signatureto wavelet to resolve potential cache conflicts when running in multiple processes. (This allowsRAVEto run wavelet on multiple subjects at the same time)
ravetools 0.0.6
CRAN release: 2022-08-25
- Added decibel average in
pwelch - Allowed
pwelchsampling frequency to be greater than the signal length - Adjusted parameters diagnostic plot and
pwelchplot to properly handle graph text, margin, axis - Added
plot_signalsto plot multiple functional data within the same canvas
ravetools 0.0.5
CRAN release: 2022-08-06
- Exposed
C++code toinst/includesso other users can dynamically link to the functions (https://github.com/dipterix/ravetools/issues/5) - Removed confusing in-place arguments in the
fftwrelated code - Corrected
fftwplans to respect the flags - Added
C++to convert raw binary bytes touint,int,float, andstring
ravetools 0.0.4
CRAN release: 2022-05-29
Parallel processes might use different temporary directory paths. To improve the performance, it is recommended to set a shared temporary directory, hence this version
- Allows temporary directories to be set via environment variable
RAVETOOLS_TEMPDIRor optionravetools.tempdir.
ravetools 0.0.3
CRAN release: 2022-02-16
This version fixes a memory issue reported by CRAN check (gcc-UBSAN).
- There is a potential integer overflow where
NA_INTEGERis subtracted by one before being converted toR_xlen_ttype. This update fixes this issue - Removed
RcppParalleland copied part of it intoinst/includefolder, withTBBremoved under theGPL-3license framework.
ravetools 0.0.2
CRAN release: 2022-02-14
This is an initial version of ravetools. Although a bare minimal set of signal processing functions are provided, it is sufficient to perform preprocess pipelines on most iEEG signals. Some functions are added from the dipsaus package, with considerable performance improvement. The C++ functions have been tested on all major platforms, with different architectures (ARM, i386, x64).
Documentation
- Added
READMEfile to demonstrate basic usage - Added a
NEWS.mdfile to track changes to the package.
Signal processing functions
- Re-implemented
decimatewithFIRfilters creating the same results as inMatlab - Added
detrendfunction to - Added
diagnose_channelto visually inspect channel signals - Added
morlet_waveletto enable fast and memory efficient wavelet decomposition; the result agrees with existingMatlabcode with floating errors (10^-7) - Added
multitaper - Added
pwelch(Welchperiodogram) - Added
notch_filterto remove line noise
High-performance functions
The following functions are implemented in C++ parallel. They tend to be faster than normal base-R implementations, depending on the number of CPU cores used.
- Added
collapseto collapse arrays - Added
shift_arrayto shift array along certain indices - Added
fast_covto calculatepearsoncovariance matrix in parallel - Added
baseline_arrayto calculate baseline arrays with multiple margins