diff options
| author | skal <pascal.massimino@gmail.com> | 2026-02-02 12:19:10 +0100 |
|---|---|---|
| committer | skal <pascal.massimino@gmail.com> | 2026-02-02 12:19:10 +0100 |
| commit | dc47af28f09705d28e9975867d7fad9a395f9163 (patch) | |
| tree | 5ae97b21542d2824c9c9d422ed1b4a25331fa1a2 /doc/SPEC_EDITOR.md | |
| parent | a5b27673c29ca39b6b35bb0f5c4be224d7b41b5a (diff) | |
refactor(build): Centralize generated files and clean up project layout
- Task A: Centralized all generated code (assets, timeline) into a single directory to create a single source of truth.
- Task A: Isolated test asset generation into a temporary build directory, preventing pollution of the main source tree.
- Task B: Vertically compacted all C/C++ source files by removing superfluous newlines.
- Task C: Created a top-level README.md with project overview and file descriptions.
- Task D: Moved non-essential documentation into a directory to reduce root-level clutter.
Diffstat (limited to 'doc/SPEC_EDITOR.md')
| -rw-r--r-- | doc/SPEC_EDITOR.md | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/SPEC_EDITOR.md b/doc/SPEC_EDITOR.md new file mode 100644 index 0000000..cde0cdd --- /dev/null +++ b/doc/SPEC_EDITOR.md @@ -0,0 +1,44 @@ +# spectrogram editing tool in a browser + +The sub-project is about have an editing tool in a browser +that will allow generating, editing, compacting .spec files + +## the idea + +We want a web page (html+javascript) capable of: + * loading a .wav file and showing the spectrogram (IDCT_SIZE=512) + * compacting this spectrogram if needed + * generating the .spec file + * allowing some editing on the spectrogram + * and most importantly: allowing the compression of this spectrogram using elementary bricks like bezier-curves (with a large stroke width / + brushes), rectangle, noise addition, etc. + +These tools must be available in the web editor (in javascript) as well as +in c++ equivalent too. + +The idea is the compress the .wav spectrogram using elementary bricks and +simple representation (as well as being dynamic) during the demo: we +generate the audio on the fly by 'drawing' the spectrograms and passing them +to the synth + +## the work + +Analyze the requirement for the HTML tool. It must remain simple and easy to +use. Don't over-engineer it. +Still, the tool must have a decent load/save offer, to: + * load the .wav + * save the .spec + * save/export the descriptive compressed version in vectorial form (like the SVG format, in fact) + * be able to load this vectorial form + +Then we need a reader for the vectorial form in c++ to use in the demo. +We also need to elementary tools / bricks to: draw a line / bezier curve / +rectangle, ellipse, etc. in frequency domain, to generate the spectrogram on +the flight. +We also need controllable random noise generation to add some 'texture' to +the spectrogram. + +## the files +the HTML/JS tool should be under tools/editor +the c++ code should be added to the library under src/audio/ + |
