summaryrefslogtreecommitdiff
path: root/SPEC_EDITOR.md
blob: cde0cdd95f09307259c8626824207d07f6e6d276 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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/