Data sonification and visualization desktop application: transforms tabular data into synchronized audio and animated scatter plots, letting you hear and see your data at the same time.
The active codebase is in audiofy-next/, a Tauri v2 + React + TypeScript desktop app supporting Windows, macOS, and Linux.
Paper: J. Elbirt and A. Al-Faris, "Development of a Data Sonification Tool to Transcend Standard Visualization Analyses," 2023 IEEE International Conference on Computational Science and Computational Intelligence (CSCI), 2023. Available on IEEE Xplore.
- Award: 2024 Library Research Award, Worcester State University, for this project.
- Funding: Aisiku Summer Research Grant (Worcester State University, Summer 2023).
- Advisor and co-author: Dr. Ali Al-Faris, Worcester State University.
The published paper describes the original Java implementation (see History below). The concept it validates, simultaneous auditory and visual data representation as an accessible alternative to purely visual analysis, carries directly into the current app.
cd audiofy-next
npm install
npm run tauri devSee audiofy-next/README.md for full setup, features, and documentation.
This repository began in 2023 as a Java Swing prototype developed during the Summer 2023 Aisiku Research Fellowship at Worcester State University and published at IEEE CSCI 2023 (see Research above). That original Java codebase has been archived; the final commit containing it is preserved under the legacy-java git tag:
git checkout legacy-javaaudiofy-next is a ground-up rewrite in TypeScript. Key improvements over the original:
- 32-bit float audio at 48 kHz (was 8-bit at 16,384 Hz)
- Polyphonic synthesis with ADSR envelopes (was monophonic sine with click artifacts)
- Frame-accurate audio-visual synchronization (was busy-wait threading)
- Multi-format file support: xlsx, xls, csv, tsv, json (was Excel-only)
- Full keyboard accessibility and screen-reader support
- Cross-platform desktop builds at ~10-15 MB (was Windows-only)
GPL-3.0, see LICENSE.md.
Jacob Elbirt (@jelbirt)