Generate
.wav
file from user input
- from binary:
wave [input] [output]
- from source code:
cargo r [input] [output]
<input>
: input text file,input.txt
by default<output>
: output wav file,output.wav
by default
see input.md
- writer.rs
- write
.wav
file headers - get file size from metadata
- write
- stores/waveform.rs
- generate waveform for
.wav
given frequency and frame count
- generate waveform for
- parsers/capture.rs
- use
Rc<T>
to avoid duplicate data stored in heap
- use
- parsers/input.rs
- use
Peekable<T>
for token lookaheads
- use
- parsers/note.rs
- convert pitch in scientific notation to its frequency in
O(1)
time - use
HashMap<K,V>
to cache the frequencies
- convert pitch in scientific notation to its frequency in
- parsers/repeat.rs
- use
Rc<RefCell<T>>
to avoid duplicates and allow mutable references - use
BTreeMap<K,V>
for ordered map - higher order functions
- use
- note
- find a shorter example of tie
- implement double dotted
..
- implement slur (idk how)
- explain tuplet
- implement dynamics (
pp
mp
ff
>
etc) - implement Tenuto (idk how)
- implement trill
- implement upper/lower mordent