Skip to content

Latest commit

 

History

History
54 lines (49 loc) · 1.81 KB

todo.org

File metadata and controls

54 lines (49 loc) · 1.81 KB

[4/4] prototyping

  • [X] working pulse sound output
  • [X] simple oscillator
  • [X] MIDI in
  • [X] note on/note off

[5/5] todos

  • [X] build pipeline
  • [X] play corresponding notes on note on/note off
  • [X] play smooth sounds (it’s currently awful)
  • [X] switch to mono output as long as there is no stereo data
  • [X] find a better name than synth

[13/25] features

  • [ ] variable sample rate
  • [ ] refactor duplicated code in error handling (in input and output)
  • [X] [5/5] more oscillators
    • [X] sine
    • [X] triangle
    • [X] sawtooth up
    • [X] sawtooth down
    • [X] wavelets (which?)
  • [ ] support modulation (eg. pulsewidth on squarewave)
  • [X] use MIDI program change to switch oscillators
  • [X] multiple oscillators simultaneously?
  • [X] polyphony
  • [X] switch stop oldest/newest note on polyphony overflow
  • [ ] phazor effect? find out how to make atmospheric strings
  • [X] stereo output
  • [X] ADSR envelope
  • [X] configure ADSR parameters via MIDI controls
  • [X] support velocity on note on/note off
  • [ ] support aftertouch?
  • [X] add some status output
  • [ ] use main thread for some commands (like quit)
  • [ ] re-using an active lane does not reset the envelope.value of that lane; decide whether that is a bug or a feature
  • [ ] global amplifier
  • [X] compressor
  • [X] support all notes off command
  • [X] determine code coverage after tests
  • [ ] phase-shift all oscillators so they start at 0
  • [ ] provide arpeggiator instead of polyphony
  • [ ] [0/4] add filters
    • [ ] basic FIR filter
    • [ ] configurable low pass filter (map to brightness?)
    • [ ] configurable high pass filter (map to ???)
    • [ ] filter envelopes
  • [ ] prevent DC offsets on on non-50% pulsewidth square waved by spreading energy
    • make the 25% wavelet ‘flatter’ on the 75% part
    • think of this if the pulsewidth modulation feature gets implemented