summaryrefslogtreecommitdiff
path: root/tools
AgeCommit message (Collapse)Author
8 daysupdate SESSION_NOTESskal
9 daysfeat: Implement spectool & specview; refactor coding style; update docsskal
This commit introduces new tools for spectrogram manipulation and visualization, establishes a consistent coding style, and updates project documentation. Key changes include: - **Spectrogram Tools: - : A command-line utility for analyzing WAV/MP3 files into custom spectrogram format and playing back these spectrograms via the synth engine. - : A command-line tool for visualizing spectrogram files as ASCII art in the console. - **Coding Style Enforcement: - Added a configuration file enforcing LLVM-based style with 2-space indentation, no tabs, and an 80-column line limit. - Renamed all C++ source files from to for project consistency. - Applied automatic formatting using exit across the entire codebase. - **Documentation & Workflow: - Created to define a commit policy requiring tests to pass before committing. - Updated with instructions for building and using and , and referenced . - Updated and to reflect the new tools, audio architecture decisions (real-time additive synthesis, double-buffering for dynamic updates, WAV/MP3 support), coding style, and development workflow. - **Build System: - Modified to: - Include new targets for and under the option. - Update source file extensions to . - Add a new end-to-end test for to the suite.
9 daystest(spectool): Add end-to-end test for analysis toolskal
Adds a new CTest unit test that performs a full, end-to-end verification of the 'spectool analyze' command. The test programmatically generates a sine wave, saves it as a .wav file, executes the spectool executable as a subprocess to analyze the wave, and then verifies the integrity of the resulting .spec file. This ensures the analysis pipeline (WAV decoding, windowing, FDCT, and file I/O) works correctly.
9 daysfeat(spectool): Add MP3 support for audio analysisskal
Leverages the built-in MP3 decoder in miniaudio to allow spectool's 'analyze' command to process .mp3 files in addition to .wav files. Updates the tool's command-line help text and the project's HOWTO.md to reflect the new capability.