summaryrefslogtreecommitdiff
path: root/doc/SPEC_EDITOR.md
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-02 12:19:10 +0100
committerskal <pascal.massimino@gmail.com>2026-02-02 12:19:10 +0100
commitdc47af28f09705d28e9975867d7fad9a395f9163 (patch)
tree5ae97b21542d2824c9c9d422ed1b4a25331fa1a2 /doc/SPEC_EDITOR.md
parenta5b27673c29ca39b6b35bb0f5c4be224d7b41b5a (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.md44
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/
+