Skip to content

feat: PyGaborSTM v1.0 - STM implementation with validation#5

Merged
JaredChilders merged 12 commits into
mainfrom
pre-merge
May 18, 2026
Merged

feat: PyGaborSTM v1.0 - STM implementation with validation#5
JaredChilders merged 12 commits into
mainfrom
pre-merge

Conversation

@JaredChilders
Copy link
Copy Markdown
Collaborator

Summary

Complete implementation of the spectro-temporal modulation (STM) framework based on Chi et al. (1999, 2005) and Bellur & Elhilali (2017).

What's Included

Core Implementation

  • Auditory spectrogram pipeline (gammatone filterbank → transduction → lateral inhibition → integration → compression)
  • 2D Gabor filterbank with configurable rates and scales
  • Rate-Scale-Frequency (RSF) representation

Validation

  • Validated against MATLAB NSL Toolbox
  • Chi99 Matched Filter MTF
  • Chi05 complex sounds (tone, harmonic, noise, speech, music)
  • Moving ripple (mvripfft) selectivity tests

Documentation

  • MkDocs + Material theme
  • Auto-generated API docs from docstrings
  • Getting started guide
  • Example notebooks

Backend

  • NumPy/CuPy backend abstraction
  • GPU support via CuPy (optional)

Known Limitations

  • High rates (32 Hz): σ_t ≈ 4 frames, reduced selectivity
  • Extreme scales (0.25 cyc/oct): σ_f = 2 octaves, filter overlap
  • Optimal range: 2-16 Hz rate, 0.5-4 cyc/oct scale

TODO

  • Add config options for gammatone filters (filter order, ERB scale factor)
  • Configurable compression function (log1p vs cbrt)

References

  • Chi, T., Ru, P., & Shamma, S. A. (1999)
  • Chi, T., et al. (2005)
  • Bellur, A., & Elhilali, M. (2017)

@JaredChilders JaredChilders merged commit 3270d73 into main May 18, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant