Show source code

Custom Wave Form

Tinkeromatic for the WebAudio API's synthesizer:
Design sounds by editing the coefficients below.


Oscilloscope/Spectrograph

0dB
-∞
+1
-1
Spectrum / Oscillator / Calculated
Ψ = Σ1..n (a[n] + b[n]*i)*e^(n*t*i), where t = [-π; +π]:

Once the oscillator is started, its wave form can no longer be changed.
Missing entries n will be substituted with n:{a:0, b:0}.
Procedural generation is possible, too.

See MDN - PeriodicWave.


There was bug related to the b-values, check function calculate()
in the source view to the right. I am still investigating.

Fourier-transform - time shifted signal


TODO & IDEAS

[ ] Ignore coefficients (0 + 0i) at end of list
[ ] textarea.onclick: sound(PLAY);
[*] Verify prediction
[*] Refactor to v0.2
[!] Documentation: Remove certain comments, exp(), etc and write down my derivation
[!] Trigger: Slider for level, up/down, min, max
[2] Sliders: Frequency, Volume
[2] Start/stop without reload
[2] Analyser re-attaching, prevent multiple instances
[2] Forward-FFT: Wave drawn from mouse input --> coefficients
[*] Graph: Zoom, offset, mirror
[ ] Graph/Trigger: Show a little more than just the [-1; +1]/[-π; +π] range
[ ] Graph: Darker center colors, dashed y = π grid lines
[?] Graph: Move labels with zoom/offset? Change values?
[ ] Color code axis labels, too
[ ] Better terms in legend? Manual?
[3] Keyboard piano
[3] Instrument editor: Knobs instead of code
[3] Instrument editor: ADSR, programmable envelope
[3] Tracker: Multiple voices
[3] Tracker: Patterns
[?] Source editor (change everything live)
[ ] FFT: Hover-cursor, show frequency and dB
[~] Oscilloscope: Input from oscillator, sound file, line in/mic
[~] Oscilloscope: Trigger: More intelligent detection of the full wave, not just finding zero/max (?)
[~] Oscilloscope: Waterfall
[~] Oscilloscope: Voltages on line in??
[4] Render to file