% TorchFX Documentation Bibliography
% This file contains bibliographic references for the TorchFX documentation

% TorchFX Paper
@misc{spanio2025torchfx,
    language = {en},
    title = {TorchFX: A modern approach to Audio DSP with PyTorch and GPU acceleration},
    author = {Spanio, Matteo and Rodà, Antonio},
    year = {2025},
    eprint = {2504.08624},
    archiveprefix = {arXiv},
    primaryclass = {eess.AS},
    url = {https://arxiv.org/abs/2504.08624},
}

% Design Patterns
@book{gamma1994design,
  title={Design Patterns: Elements of Reusable Object-Oriented Software},
  author={Gamma, Erich and Helm, Richard and Johnson, Ralph and Vlissides, John},
  year={1994},
  publisher={Addison-Wesley Professional},
  isbn={978-0201633610},
  note={Classic reference for software design patterns including Strategy pattern}
}

% Digital Signal Processing and Filter Design
@book{oppenheim2009discrete,
  title={Discrete-Time Signal Processing},
  author={Oppenheim, Alan V and Schafer, Ronald W},
  edition={3rd},
  year={2009},
  publisher={Pearson},
  isbn={978-0131988422},
  note={Comprehensive textbook on DSP fundamentals}
}

@book{smith2011spectral,
  title={Spectral Audio Signal Processing},
  author={Smith, Julius O},
  year={2011},
  publisher={W3K Publishing},
  url={https://ccrma.stanford.edu/~jos/sasp/},
  note={Available freely online at CCRMA Stanford}
}

@book{smith2007introduction,
  title={Introduction to Digital Filters with Audio Applications},
  author={Smith, Julius O},
  year={2007},
  publisher={W3K Publishing},
  url={https://ccrma.stanford.edu/~jos/filters/},
  note={Available freely online at CCRMA Stanford}
}

@book{zolzer2011dafx,
  title={DAFX: Digital Audio Effects},
  author={Z{\"o}lzer, Udo},
  edition={2nd},
  year={2011},
  publisher={John Wiley \& Sons},
  isbn={978-0470665992},
  note={Standard reference for digital audio effects algorithms}
}

% Audio Processing
@book{reiss2014audio,
  title={Audio Effects: Theory, Implementation and Application},
  author={Reiss, Joshua D and McPherson, Andrew},
  year={2014},
  publisher={CRC Press},
  isbn={978-1466560284},
  note={Practical guide to audio effects implementation}
}

@article{valimaki2016fifty,
  title={Fifty Years of Artificial Reverberation},
  author={V{\"a}lim{\"a}ki, Vesa and Parker, Julian D and Savioja, Lauri and Smith, Julius O and Abel, Jonathan S},
  journal={IEEE Transactions on Audio, Speech, and Language Processing},
  volume={24},
  number={8},
  pages={1421--1448},
  year={2016},
  publisher={IEEE},
  doi={10.1109/TASLP.2016.2555512}
}

% PyTorch and GPU Computing
@inproceedings{paszke2019pytorch,
  title={PyTorch: An Imperative Style, High-Performance Deep Learning Library},
  author={Paszke, Adam and Gross, Sam and Massa, Francisco and Lerer, Adam and Bradbury, James and Chanan, Gregory and Killeen, Trevor and Lin, Zeming and Gimelshein, Natalia and Antiga, Luca and others},
  booktitle={Advances in Neural Information Processing Systems},
  volume={32},
  pages={8024--8035},
  year={2019},
  url={https://papers.nips.cc/paper/9015-pytorch-an-imperative-style-high-performance-deep-learning-library}
}

@article{nickolls2008scalable,
  title={Scalable Parallel Programming with CUDA},
  author={Nickolls, John and Buck, Ian and Garland, Michael and Skadron, Kevin},
  journal={Queue},
  volume={6},
  number={2},
  pages={40--53},
  year={2008},
  publisher={ACM},
  doi={10.1145/1365490.1365500}
}

@book{sanders2010cuda,
  title={CUDA by Example: An Introduction to General-Purpose GPU Programming},
  author={Sanders, Jason and Kandrot, Edward},
  year={2010},
  publisher={Addison-Wesley Professional},
  isbn={978-0131387683}
}

% Testing and Software Engineering
@book{beck2002test,
  title={Test Driven Development: By Example},
  author={Beck, Kent},
  year={2002},
  publisher={Addison-Wesley Professional},
  isbn={978-0321146530}
}

@book{fowler2018refactoring,
  title={Refactoring: Improving the Design of Existing Code},
  author={Fowler, Martin},
  year={2018},
  publisher={Addison-Wesley Professional},
  edition={2nd},
  isbn={978-0134757599}
}

% Benchmarking and Performance
@inproceedings{blackburn2006dacapo,
  title={The DaCapo Benchmarks: Java Benchmarking Development and Analysis},
  author={Blackburn, Stephen M and Garner, Robin and Hoffmann, Chris and Khang, Asjad M and McKinley, Kathryn S and Bentzur, Rotem and Diwan, Amer and Feinberg, Daniel and Frampton, Daniel and Guyer, Samuel Z and others},
  booktitle={ACM SIGPLAN Notices},
  volume={41},
  number={10},
  pages={169--190},
  year={2006},
  organization={ACM},
  doi={10.1145/1167515.1167488}
}

@article{lilja2005measuring,
  title={Measuring Computer Performance: A Practitioner's Guide},
  author={Lilja, David J},
  year={2005},
  publisher={Cambridge University Press},
  isbn={978-0521646703}
}

% Music and Audio Theory
@book{roads1996computer,
  title={The Computer Music Tutorial},
  author={Roads, Curtis},
  year={1996},
  publisher={MIT Press},
  isbn={978-0262680820},
  note={Comprehensive reference for computer music concepts}
}

@book{moore2012elements,
  title={Elements of Computer Music},
  author={Moore, F Richard},
  year={2012},
  publisher={Pearson},
  isbn={978-0132525527}
}

% Immutability and Functional Programming
@article{odersky2004overview,
  title={An Overview of the Scala Programming Language},
  author={Odersky, Martin and Altherr, Philippe and Cremet, Vincent and Emir, Burak and Maneth, Sebastian and Micheloud, St{\'e}phane and Mihaylov, Nikolay and Schinz, Michel and Stenman, Erik and Zenger, Matthias},
  year={2004},
  publisher={EPFL},
  note={Discusses immutability patterns in programming}
}

% Multi-channel Audio
@article{gerzon1985ambisonics,
  title={Ambisonics in Multichannel Broadcasting and Video},
  author={Gerzon, Michael A},
  journal={Journal of the Audio Engineering Society},
  volume={33},
  number={11},
  pages={859--871},
  year={1985}
}

% SciPy and NumPy (for comparison/baseline)
@article{virtanen2020scipy,
  title={SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python},
  author={Virtanen, Pauli and Gommers, Ralf and Oliphant, Travis E and Haberland, Matt and Reddy, Tyler and Cournapeau, David and Burovski, Evgeni and Peterson, Pearu and Weckesser, Warren and Bright, Jonathan and others},
  journal={Nature Methods},
  volume={17},
  number={3},
  pages={261--272},
  year={2020},
  publisher={Nature Publishing Group},
  doi={10.1038/s41592-019-0686-2}
}

@inproceedings{
  engel2020ddsp,
  title={DDSP: Differentiable Digital Signal Processing},
  author={Jesse Engel and Lamtharn (Hanoi) Hantrakul and Chenjie Gu and Adam Roberts},
  booktitle={International Conference on Learning Representations},
  year={2020},
  url={https://openreview.net/forum?id=B1x1ma4tDr}
}

@article{harris2020array,
  title={Array Programming with NumPy},
  author={Harris, Charles R and Millman, K Jarrod and Van Der Walt, St{\'e}fan J and Gommers, Ralf and Virtanen, Pauli and Cournapeau, David and Wieser, Eric and Taylor, Julian and Berg, Sebastian and Smith, Nathaniel J and others},
  journal={Nature},
  volume={585},
  number={7825},
  pages={357--362},
  year={2020},
  publisher={Nature Publishing Group},
  doi={10.1038/s41586-020-2649-2}
}
