Commit graph

444 commits

Author SHA1 Message Date
Yotam Mann
d6a2991526 Sampler attack accepts a note value in semitones
also using AmplitudeEnvelope.
2014-09-20 18:47:07 -04:00
Yotam Mann
1306d45884 PluckSynth uses LowpassCombFilter 2014-09-20 18:06:52 -04:00
Yotam Mann
760c397bfd new class LowpassCombFilter 2014-09-20 18:06:41 -04:00
Yotam Mann
efd2def64b triggerAttackRelease on Envelope 2014-09-20 15:18:36 -04:00
Yotam Mann
d612dd8705 AmplitudeEnvelope
new class
2014-09-20 15:18:08 -04:00
Yotam Mann
d9fa029569 Karplus-Strong first commit 2014-09-17 00:21:04 -04:00
Yotam Mann
65b0b5c660 Instrument base-class 2014-09-17 00:19:30 -04:00
Yotam Mann
603bc03d62 deferring on clock tick
to not block the audio thread
2014-09-15 21:45:31 -04:00
Yotam Mann
dff5852607 greater than equal to on threshold. 2014-09-14 15:34:37 -04:00
Yotam Mann
b27cebda3b disposing of amplitude 2014-09-14 15:34:27 -04:00
Yotam Mann
ef12e6e5d0 fixed bugs with context setting and stop method 2014-09-14 15:34:17 -04:00
Yotam Mann
f2ae3bd594 include an onend function for stop 2014-09-14 15:33:32 -04:00
Yotam Mann
e3dc3a2f6a modulo comments 2014-09-14 15:33:02 -04:00
Yotam Mann
41225430aa started r2-dev 2014-09-12 11:53:07 -04:00
Yotam Mann
a0fe662dcd more modulus optimization 2014-09-12 01:03:48 -04:00
Yotam Mann
5b178359fd optimizing modulo operator 2014-09-12 00:55:10 -04:00
Yotam Mann
01003bc9d5 fixed note comment. 2014-09-11 20:45:02 -04:00
Yotam Mann
2ebd70b09b release 1 candidate. 2014-09-11 20:37:40 -04:00
Yotam Mann
1d20c32bba small default change 2014-09-11 20:36:17 -04:00
Yotam Mann
0ea25ec615 triggerAttackRelease 2014-09-11 20:36:07 -04:00
Yotam Mann
ebca621fc7 this will improve performance.
may cause issues when setting bits which are larger than the initial
value.
2014-09-11 20:35:39 -04:00
Yotam Mann
ad703e51d1 eq in db now 2014-09-11 20:31:37 -04:00
Yotam Mann
8f54007335 modulo starts at the maximum bits 2014-09-11 13:39:06 -04:00
Yotam Mann
669c52ee60 jsdoc'ing. 2014-09-11 13:38:41 -04:00
Yotam Mann
7850bdabc1 changed Master class to Tone.Master
this is for jsdoc purposes.
2014-09-11 13:00:59 -04:00
Yotam Mann
f51f7370a4 moved note stuff to Tone.Note 2014-09-11 13:00:09 -04:00
Yotam Mann
b3af62fa4a documented Transport and Tone.Time 2014-09-10 22:37:57 -04:00
Yotam Mann
576383d34b more extreme phasing. 2014-09-10 22:17:16 -04:00
Yotam Mann
50dcc6ccb0 jshint wants constructors to be Capitalized 2014-09-10 13:51:37 -04:00
Yotam Mann
cc95ee6caf instrument tests
fixed dispose methods bc of tests.
2014-09-09 15:30:36 -04:00
Yotam Mann
894ced3755 fixed polysynth velocity bug 2014-09-09 12:58:07 -04:00
Yotam Mann
6637833ed4 added detune parameter 2014-09-09 12:36:14 -04:00
Yotam Mann
c3cb6af859 added setPreset to PolySynth 2014-09-09 00:40:25 -04:00
Yotam Mann
06987ea9e6 class tag on Tone 2014-09-09 00:24:51 -04:00
Yotam Mann
a49061ac9a rewrote bit crusher without ScriptProcessorNode
wow. and it works well.
2014-09-08 11:54:03 -04:00
Yotam Mann
08c6d3d4b2 Modulus operator on incoming signal
the cost of the operation is proportional to the number of bits the
incoming signal has
2014-09-08 11:49:21 -04:00
Yotam Mann
8552833330 refactored GT and LT to get rid of redundant code
Fixes #21
2014-09-07 22:16:19 -04:00
Yotam Mann
820b9e8005 readded min...?
dunno what happened there.
2014-09-07 21:43:24 -04:00
Yotam Mann
253884d19e renamed Tone.Selector to Tone.Select 2014-09-07 21:42:31 -04:00
Yotam Mann
71af6ca206 testing dispose methods for all classes.
a few classes were not being disposed correctly and leaving some
garbage attached.
2014-09-06 18:55:11 -04:00
Yotam Mann
270c01cbaf put follower after greater than 2014-09-06 18:10:42 -04:00
Yotam Mann
938c979b8d added freq and Q setter 2014-09-06 18:09:52 -04:00
Yotam Mann
cca2d84387 renamed Rego to Unicorn 2014-09-06 18:09:25 -04:00
Yotam Mann
bf0b738ca2 bits in integers 2014-09-06 18:09:15 -04:00
Yotam Mann
925e9b19a6 slight refactor + firefox exponential ramp bug 2014-09-06 15:57:01 -04:00
Yotam Mann
818797712c made the sawtooth private in pulse oscillator 2014-09-06 15:56:41 -04:00
Yotam Mann
0b4c8f6037 removed unneeded default value 2014-09-06 15:56:23 -04:00
Yotam Mann
be1c230d54 fixed Tone.Filter construction error 2014-09-06 15:55:43 -04:00
Yotam Mann
26e45a9e63 fixed no Q bug 2014-09-06 15:37:44 -04:00
Yotam Mann
d6806a02ea setLoopPoint -> setLoopPoints 2014-09-06 15:37:33 -04:00
Yotam Mann
2016778123 checks if part is array 2014-09-06 15:37:15 -04:00
Yotam Mann
a01dbb8518 setVolume in db like other set volumes 2014-09-06 15:36:59 -04:00
Yotam Mann
46a567c7f0 range test when setting rolloff 2014-09-06 15:36:10 -04:00
Yotam Mann
28f57c76bb removed doc links
they were breaking jsdocs.
2014-09-05 11:40:55 -04:00
Yotam Mann
d71f1cb5b7 jsdocs updates. 2014-09-05 11:32:35 -04:00
Yotam Mann
856d88d88e effects presets 2014-09-05 00:36:55 -04:00
Yotam Mann
fe6af882eb AutoWah presets 2014-09-04 23:56:48 -04:00
Yotam Mann
ef90be0e95 preset setting in Monophonic class 2014-09-04 19:14:11 -04:00
Yotam Mann
042343bfd7 put presets in the prototype 2014-09-04 19:13:55 -04:00
Yotam Mann
f378b81fcf can set context with master as well
Fixes #7
2014-09-04 19:04:16 -04:00
Yotam Mann
1cfa016026 fixes jsdoc error 2014-09-04 15:22:25 -04:00
Yotam Mann
2c414097a8 fixed jsdoc tag 2014-09-04 14:04:58 -04:00
Yotam Mann
f27fcc3123 updated README 2014-09-04 14:04:02 -04:00
Yotam Mann
af85ae7e19 Added "use strict" to all classes
Fixes #17
2014-09-04 00:41:40 -04:00
Yotam Mann
560359cf21 tweaking defaults 2014-09-04 00:32:44 -04:00
Yotam Mann
39c7da2ab1 styling examples 2014-09-04 00:06:01 -04:00
Yotam Mann
03bec5cb05 new score format. 2014-09-03 22:37:05 -04:00
Yotam Mann
935fa9ea38 envelopes accept velocity on attack 2014-09-03 22:36:56 -04:00
Yotam Mann
936424b356 parse the frequency from a note 2014-09-03 22:35:38 -04:00
Yotam Mann
338f0f683c same function signature as Monophonics 2014-09-03 22:35:27 -04:00
Yotam Mann
0c0543db0b fixed Sampler/MultiSampler bugs 2014-09-03 22:35:03 -04:00
Yotam Mann
71b475de60 monophonic instruments extend a base class 2014-09-03 19:05:09 -04:00
Yotam Mann
dc525e90ce fixed setTargetAtTime typo 2014-09-03 17:31:51 -04:00
Yotam Mann
fbb7345f72 exponential release proved too difficult
couldn’t set values in the future. now using setTargetAtTime for all
envelopes
2014-09-03 17:31:29 -04:00
Yotam Mann
f34b6414f2 min set when min is set 2014-09-03 14:54:58 -04:00
Yotam Mann
02ffa25555 FM Synth with example
Fixes #26
2014-09-03 14:54:46 -04:00
Yotam Mann
0ba1224541 renamed voiceRatio -> harmonicity 2014-09-03 14:53:05 -04:00
Yotam Mann
8fc8505c43 updated presets 2014-09-02 17:10:33 -04:00
Yotam Mann
aa45c4402c DuoSynth example first commit 2014-09-02 16:57:46 -04:00
Yotam Mann
c1bdba8cf4 WaveTable -> PeriodicWave for old browsers 2014-09-02 16:57:25 -04:00
Yotam Mann
70c27c7c89 a couple more presets 2014-09-02 12:11:25 -04:00
Yotam Mann
e6a15f8f7a removed unison controls 2014-09-02 12:10:43 -04:00
Yotam Mann
e4d3aaab2b optional input arg to receive. 2014-09-02 12:09:16 -04:00
Yotam Mann
62b5bfffed flexible function signature if define is not defined 2014-09-02 12:08:52 -04:00
Yotam Mann
0bb2dcff80 Some MonoSynth presets 2014-09-02 00:26:34 -04:00
Yotam Mann
d69c5b940e exponential decay and ability to setMin/Max 2014-09-02 00:26:17 -04:00
Yotam Mann
ba29f3b2c4 MonoSynth Example 2014-09-02 00:25:38 -04:00
Yotam Mann
9adbcc3c4d getType 2014-09-02 00:25:20 -04:00
Yotam Mann
d381d9e210 PingPongDelay uses new StereoXFeedbackEffect 2014-09-01 13:09:33 -04:00
Yotam Mann
3fe7633604 can set phase on LFO 2014-09-01 12:52:32 -04:00
Yotam Mann
84135a4d1e Chorus and Phaser are stereo effects
made a few intermediate classes to save on code.
2014-09-01 12:52:13 -04:00
Yotam Mann
c88826e979 setPhase method on Oscillator
This method uses not DelayNode so sample accurate start/stop are
maintained.

Fixes #18
2014-08-31 16:35:02 -04:00
Yotam Mann
76ee2b5540 Tone.PulseOscillator first commit
fixes #25
2014-08-31 16:29:56 -04:00
Yotam Mann
a713502784 fixed typo 2014-08-29 17:14:47 -04:00
Yotam Mann
7f7493105a added set method
#27

also fixed dispose method
2014-08-29 17:14:41 -04:00
Yotam Mann
b45fc88ed0 removing base class set method.
it did nothing…
2014-08-29 16:40:20 -04:00
Yotam Mann
5a5e9be1f8 adds ability to set rolloff amount
AudioParams are now Tone.Signals

the wrapping is no longer paper thin
2014-08-29 16:39:09 -04:00
Yotam Mann
f6addd6b64 gets Signal.connect for use as a control signal 2014-08-29 16:36:52 -04:00
Yotam Mann
59b69a8d3a has an initial bpm of 120 2014-08-29 16:36:31 -04:00
Yotam Mann
9d337cb101 fixed wave shaper curve length 2014-08-27 15:22:21 -04:00
Yotam Mann
e783e87834 borrows setVolume from Tone.Source 2014-08-25 21:47:58 -04:00
Yotam Mann
4567298b00 small ramp on vibrato delay 2014-08-25 21:47:45 -04:00
Yotam Mann
42288c5942 setVolume in db now 2014-08-25 21:47:22 -04:00
Yotam Mann
aa893180c0 Tone.DuoSynth first commit 2014-08-25 21:34:09 -04:00
Yotam Mann
f0d99afc16 added detune
this is separate from unison detuning
2014-08-25 21:19:18 -04:00
Yotam Mann
1dae08f874 switching to releases instead of versions 2014-08-25 18:43:37 -04:00
Yotam Mann
b4b3b46521 Note values should be JSONable 2014-08-25 18:40:15 -04:00
Yotam Mann
95c6e13995 first PolySynth version 2014-08-25 13:26:26 -04:00
Yotam Mann
1b94e8aa0c feedback wasn't connect to the gain AudioParam 2014-08-25 10:36:07 -04:00
Yotam Mann
8b316762eb _defaults -> defaults
made it not private
2014-08-25 10:23:37 -04:00
Yotam Mann
223a599f66 All effects have a 'set' method
#16
2014-08-25 09:57:36 -04:00
Yotam Mann
43206cbf29 ability to take options object AND parameters 2014-08-24 19:28:42 -04:00
Yotam Mann
f2bfabcc4a first try on Tone.Phaser 2014-08-24 17:51:01 -04:00
Yotam Mann
6e2ba460d2 change default detune 2014-08-24 17:48:39 -04:00
Yotam Mann
4b085fd32e privatize internals 2014-08-24 17:48:28 -04:00
Yotam Mann
3cd76459e5 link to parent's dispose method
Fixes #15
2014-08-24 16:24:16 -04:00
Yotam Mann
ccc24fb21b fan out connections 2014-08-24 15:58:02 -04:00
Yotam Mann
595f81283e updated Tone.dispose to handle input/output arrays
#15
2014-08-24 15:51:24 -04:00
Yotam Mann
b612f7839c Added Signal dep to all Signals
#11
2014-08-24 15:47:59 -04:00
Yotam Mann
7890e74ac0 moved Merge and Split to components 2014-08-24 15:46:55 -04:00
Yotam Mann
b2c85eaf44 signals inherit Signal.connect method
this is so that params and signals they connect to don’t need to be
manually zeroed out after connecting.

Fixed #11
2014-08-24 13:19:49 -04:00
Yotam Mann
e3973aeead started MonoSynth.preset 2014-08-24 13:06:45 -04:00
Yotam Mann
9121c5db59 3 band EQ
low/mid/high gain controls and control of crossover frequencies
2014-08-24 12:46:45 -04:00
Yotam Mann
3afd45f987 has 'set' interface
#16
2014-08-24 12:26:04 -04:00
Yotam Mann
e4ae6afb32 set interface for all internal Tone.Samplers 2014-08-24 12:20:16 -04:00
Yotam Mann
534b23f5cd accepts options object
uses Tone.Filter internally
2014-08-24 12:19:25 -04:00
Yotam Mann
a63c4f42b6 added setters and constructor API 2014-08-24 12:12:40 -04:00
Yotam Mann
7fe3d61858 Tone.Filter
paper thin wrapper around the native BiquadFilter
2014-08-24 12:11:58 -04:00
Yotam Mann
f12fb5caa2 made lfo private 2014-08-23 17:04:01 -04:00
Yotam Mann
58e6e4532c Tone.Envelope can take args as an Object
Fixes #12
2014-08-23 16:38:06 -04:00
Yotam Mann
8f0d49db29 fixed dispose method 2014-08-23 16:08:08 -04:00
Yotam Mann
c92c76fef3 added an abstract set method to the base class
#16
2014-08-23 16:07:55 -04:00
Yotam Mann
dc98641558 dispose method calls parent's dispose method
related to issue #15. finished for all effects.
2014-08-23 15:51:21 -04:00
Yotam Mann
f6f0a35f57 started chorus effect 2014-08-23 15:19:01 -04:00
Yotam Mann
3f40e26c14 fixed typo 2014-08-23 15:18:51 -04:00
Yotam Mann
5d7807bede description of _merger 2014-08-23 14:25:20 -04:00
Yotam Mann
127f5d52c9 updated doc 2014-08-23 14:24:54 -04:00
Yotam Mann
b6938ec10b privatized panner 2014-08-23 14:24:20 -04:00
Yotam Mann
adf8c9fbbb consistent spacing 2014-08-23 14:24:06 -04:00
Yotam Mann
52fca548b6 bit crusher extends Tone.Effect 2014-08-23 14:23:54 -04:00
Yotam Mann
3b08ef6997 AutoWah effect 2014-08-23 14:23:43 -04:00
Yotam Mann
63bce969c1 effects default to 100% wet 2014-08-23 14:22:51 -04:00
Yotam Mann
5f29b82d3b privatized the _scalar 2014-08-23 14:22:18 -04:00
Yotam Mann
0cf82e94e8 more consistent spacing 2014-08-23 13:51:02 -04:00
Yotam Mann
e6e4586f70 renamed delay to delayTime 2014-08-23 13:50:30 -04:00
Yotam Mann
dbafb63b14 updated description on Effect 2014-08-23 13:50:13 -04:00
Yotam Mann
c37902cdfe updated docs on LFO 2014-08-23 13:49:50 -04:00
Yotam Mann
151ca08a21 EnvelopeFollower with independent attack / decay 2014-08-23 13:48:52 -04:00
Yotam Mann
833132643e Tone.ScaleExp scales values with an exponent
Fixes #14
2014-08-23 13:11:01 -04:00
Yotam Mann
6f6d0ea91b recursively handles nested objects 2014-08-21 20:55:00 -04:00