[BUG]
[PLAYER]
TimeSeeker maxes at 23:59 (HH:MM)[FEATURE]
[EDITOR]
Save as (allow right-click save-as on save button?)[FEATURE]
[EDITOR]
Hotkeys for time seeking[FEATURE]
[SCRIPTS]
Use strict mode?
[FEATURE]
[API]
[PLAYER]
[RENDERER]
Musika scripts with Mono output[FEATURE]
[PLAYER]
Volume slider[FEATURE]
[COSMETIC]
[PLAYER]
VU meter
[FEATURE]
[RENDERER]
Quantization- More quantization methods (currently truncating)
- Dithering
- Clamping?
[FEATURE]
[RENDERER]
Float PCM output[FEATURE]
[RENDERER]
Select bit-depth etc. when rendering[?]
[RENDERER]
Handle big/little endian architectures (I don't remember what I meant with this task)
-
[API]
[MUSIKA]
popping_wip example was bugged: since you can seek time,t
is non-monotonic, which made the state invalid. Is this a flaw of the API? Should the user not assumet
is monotonic? Maybe some kind of events?Another instance: biquad filters became unstable because of
t
not being monotonic. -
[API]
[MUSIKA]
[MUSIKA-UTIL]
Log-to-Linear function and viceversa (for linear parameters into freqs and such)- Also for amplitude? I.e. work with decibels
-
[API]
[MUSIKA]
[MUSIKA-ENVELOPE]
More interpolations for Attack/release envelopes- Linear
- Hermite
-
[API]
[MUSIKA]
[MUSIKA-ENVELOPE]
ADSR Envelope -
[API]
[MUSIKA]
[MUSIKA-ENVELOPE]
Should inv envelopes actually be logarithmic? -
[API]
[MUSIKA]
[MUSIKA-MUSIC]
Chordify signals (given an osc constructor, instance several and mix) -
[API]
[MUSIKA]
[MUSIKA-MUSIC]
Randomization helpers -
[API]
[MUSIKA]
[MUSIKA-MUSIC]
Timing helpers -
[API]
[MUSIKA]
[MUSIKA-MUSIC]
Compositional helpers -
[API]
[MUSIKA]
[MUSIKA-MUSIC]
Arpeggiator -
[API]
[MUSIKA]
[MUSIKA-UTIL]
Memoization helper -
[API]
[MUSIKA]
[MUSIKA-UTIL]
Rate limiting helper (e.g. for control rates)
[BUG]
[PLAYER]
Sound clicks on play/pause/update/seek[FEATURE]
[COSMETIC]
[APP]
Some kind of help/README/intro/tutorial[FEATURE]
[COSMETIC]
[EDITOR]
Visual feedback after commit (annotation?)[COSMETIC]
[APP]
Favicon(s)[TODO]
[MUSIKA]
Documentation- Add missing comments
- Static documentation generation
[BUG]
[APP]
Make app accessible (make sure to actually try the app)[FEATURE]
[RENDERER]
Render in background using web workers. Try adapting to the number of cores.[BUG]
[EDITOR]
Editor has a fixed size and can't be resized really small[TODO]
[Build librar(y/ies) as UMD package(s)](http://survivejs.com/webpack/loading-assets/formats-supported/#umd to be used outside of the DAW as a regular JavaScript library)[TODO]
Publish to NPM
[API]
[PLAYER]
[RENDERER]
Usingt
as DSP time variable is awkward- Abstraction is leaking everywhere (e.g. filters don't work with time, only samples)
- Possible solution: work with samples and
dt
instead - Problem:
t
is still useful in other situations (e.g. envelopes)
[BUG]
Since Player/Editor are PureComponents, hot reloading stops the song and re-renders the editor- Maybe the problem is HMR, try React Hot Loader 3
[TODO]
http://survivejs.com/webpack/building-with-webpack/separating-css/#separating-application-code-and-styling- Extract theme, components and vendor CSS separately
- Check that vendor CSS hash doesn't change
[COSMETIC]
"3D" box-shadow buttons Material Design style[FEATURE]
[API]
[APP]
[...]
Microphone/MIDI/keyboard/mouse input[FEATURE]
[APP]
Offline/AppCache[FEATURE]
[APP]
Mobile app manifest[FEATURE]
[APP]
[API]
[COMPILER]
Declare sliders and other controls in scripts, which the user can control to affect sound/constants in real time[FEATURE]
[APP]
[API]
[COMPILER]
Static plots- Ability to plot arbitrary 2D data, formulas, etc.
- Helpers for filter frequency response, FFT, etc.
[FEATURE]
[APP]
Visualization- Wave
- FFT
- XY
[INTERNAL]
[PLAYER]
Test alternate compiling/playing methods (if faster or more responsive)eval
- Premaking buffers via Workers
- Script tag
- ...
[COSMETIC]
[APP]
Make responsive (adjust font size, element positions, etc.)[COSMETIC]
[PLAYER]
https://reactify.github.io/react-player-controls/[COSMETIC]
[EDITOR]
Custom scrollbars (ajaxorg/ace#869)[FEATURE]
[EDITOR]
History state might have low storage limits, fall back tolocalStorage
with large files?- Maybe limit undo length too?
[FEATURE]
[EDITOR]
REPL[FEATURE]
[EDITOR]
Save/load code from Gist (+ link generation)[FEATURE]
[EDITOR]
Work as a git repository, maybe even link with GitHub[FEATURE]
[EDITOR]
Enable ACE worker but with custom rules[FEATURE]
[EDITOR]
Detect tab settings from buffer[FEATURE]
[EDITOR]
Remove trailing whitespace[FEATURE]
[EDITOR]
Continue comments[FEATURE]
[EDITOR]
[COMPILER]
Multiple files/tabs[FEATURE]
[APP]
[EDITOR]
Slider when double-clicking numerical values in editor[FEATURE]
[COMPILER]
Import Gists or other sources of functions (for custom libraries)[FEATURE]
[RENDERER]
MP3/OGG[API]
[MUSIKA]
Make the API more functional by taking Sin(), Constant(), etc. as parameters... i.e. take functions instead of values (easier composition)- Function calls might be expensive, leave it to the user?
[API]
[MUSIKA]
Maybe use object options instead of parameters (for easier composition of functions)- Objects might be expensive, leave it to the user?
[FEATURE]
[MUSIKA]
[FILTER]
Equalizer[FEATURE]
[MUSIKA]
[FILTER]
Delay[FEATURE]
[MUSIKA]
[FILTER]
Reverb[FEATURE]
[MUSIKA]
[FILTER]
Synth filters[FEATURE]
[MUSIKA]
[FILTER]
One pole filter[FEATURE]
[MUSIKA]
[FILTER]
Windowed sinc filter (for oversampling)[FEATURE]
[MUSIKA]
Buffers[FEATURE]
GLSL Backend[RESEARCH]
Denormal numbers. Maybe move to integers? Or at least allow it. They might be faster anyways.[RESEARCH]
Ring modulation
- Google Closure optimization
- Consider replacing Ace with Atom
- CDN vs. vendor chunk
- Move vendor libraries to CDN instead of
vendor
chunk (maybe alternative build mode?) - Font Awesome is being used from CDN... Webpack it as vendor css/font? Include locally but don't bundle? Leave it on CDN?
- Move vendor libraries to CDN instead of
- Babel Runtime + Transform
- I'm importing the full Font Awesome instead of only the few icons I need
- http://survivejs.com/webpack/building-with-webpack/eliminating-unused-css/
- http://survivejs.com/webpack/building-with-webpack/analyzing-build-statistics/
- CSS modules
- http://survivejs.com/webpack/advanced-techniques/linting/
- http://survivejs.com/webpack/advanced-techniques/authoring-packages/
- http://survivejs.com/webpack/advanced-techniques/configuring-react/
- react-lite
- TypeScript
- Flow