# spectrogram editing tool in a browser (Task #5) 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. - **Task #41: Spectrogram Editor HTML Tool**. 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. - **Task #42: Vectorial Spectrogram Reader (C++)**. 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. - **Task #43: Spectrogram Drawing Bricks**. 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/