Commit graph

535 commits

Author SHA1 Message Date
Kevin Siwoff
1422a544f9 adds Convolver class, IR, and convolver example 2014-10-22 17:58:03 -04:00
Kevin Siwoff
b45c983152 updates player class and build for Buffer 2014-10-21 14:55:29 -04:00
Kevin Siwoff
d71f83c8fd adds new Buffer class to core 2014-10-21 14:44:02 -04:00
Yotam Mann
167d989828 using bufferTime in Follower 2014-10-19 22:07:18 -04:00
Yotam Mann
68dea5880a 3 band compressor 2014-10-19 21:55:55 -04:00
Yotam Mann
fdae3c0b5b thin DynamicsCompressorNode wrapper 2014-10-19 21:55:18 -04:00
Yotam Mann
425bca36ad Chebyshev effect
applies Chebyshev wave shaper to incoming signal.
2014-10-19 19:39:50 -04:00
Yotam Mann
918be69c6c connectEffect switched to internal 2014-10-19 17:56:41 -04:00
Yotam Mann
6317e02a67 Distortion effect 2014-10-19 17:54:30 -04:00
Yotam Mann
e28f77a683 PolySynth accepts an array of notes for attack/release 2014-10-19 16:17:40 -04:00
Yotam Mann
4a4da6c85b use MasterConstructor on init 2014-10-19 16:08:40 -04:00
Yotam Mann
9f827a8dad short delay to avoid clicks on change OmniOsc type 2014-10-16 14:52:08 -04:00
Yotam Mann
f913c50241 precompute the bufferTime for a single frame
still need to figure out how to find the frame size
2014-10-16 14:51:25 -04:00
Kevin Siwoff
f784f5585f adds Buffer class, refactors Player class to use new Buffer member 2014-10-16 14:48:23 -04:00
Yotam Mann
3eba6e58a4 optimizing initial script loading 2014-10-16 00:49:31 -04:00
Yotam Mann
eb07e84a6e simplified internals of IfElseThen
changes API slightly because false is 0 and not != 1
2014-10-13 19:24:06 -04:00
Yotam Mann
7277a7eb68 wrote Min and Max with IfThenElse
makes the internals much more readable
2014-10-13 19:22:11 -04:00
Yotam Mann
baf1f0162a enforce min time on Tone.Follower 2014-10-13 19:21:34 -04:00
Yotam Mann
d1cf785350 some jsdoc notes on Meter and Recorder 2014-10-13 17:31:07 -04:00
Yotam Mann
4ccc0e08e7 ability to set rolloff of autowah 2014-10-13 17:16:10 -04:00
Yotam Mann
4f9850d315 disconnect method handles output arrays 2014-10-13 15:58:21 -04:00
Yotam Mann
05b2415fa6 wrote EQ in terms of MutibandSplit 2014-10-13 15:58:06 -04:00
Yotam Mann
757c114ede new class MultibandSplit
splits incoming signal into low/mid/high frequency bands
2014-10-13 15:57:53 -04:00
Yotam Mann
a4cc79cfde stopped state doesn't wait for on ended event
the oneneded event is inconsistent when the source is not connected
directly to Master (such as in the case of an LFO).

Fixes #34
2014-10-08 11:59:31 -04:00
Yotam Mann
231d803848 IfThenElse class
convenience on using the selector for signal switching logic.
2014-10-03 17:20:35 -04:00
Yotam Mann
fe96656d2a AND and OR classes
Fixes #22
2014-10-03 17:20:00 -04:00
Yotam Mann
7972f0db34 Pulse, PWM, and Omni extend Oscillator 2014-10-03 16:07:30 -04:00
Yotam Mann
a8e156fcaf made Oscillator.oscillator _private 2014-10-03 16:06:42 -04:00
Yotam Mann
4eaa4f75df es5 getter/setter on Tone.Signal value
#33
2014-10-03 15:50:21 -04:00
Yotam Mann
2daa8c64ad Oscillators inherit Tone.Oscillator setFrequency 2014-10-03 15:16:32 -04:00
Yotam Mann
e2c0e47f2f Noise getType method 2014-10-03 14:54:09 -04:00
Yotam Mann
0270b3c9e0 deprecating Tone.Threshold 2014-10-03 13:07:53 -04:00
Yotam Mann
f94034345d rewrote GreaterThan and LessThan in terms of GreaterThanZero 2014-10-03 13:07:26 -04:00
Yotam Mann
93eace9694 new GreaterThanZero class
Fixes #20. Also deprecates the need for Tone.Threshold
2014-10-03 13:06:26 -04:00
Yotam Mann
b310136dee JCReverb: constructor takes room size as parameter 2014-10-03 11:34:47 -04:00
Yotam Mann
1ed4f5288c allowing for loopEnd to be a Tone.Time 2014-10-03 01:00:48 -04:00
Yotam Mann
02c21fed73 switches types without a pop 2014-10-03 01:00:37 -04:00
Yotam Mann
35bdca0568 default Player loop is still the end of the file 2014-10-02 18:58:24 -04:00
Yotam Mann
666d8f96c1 removed reference to global 'define' with build
gets rid of the problem of having the global ‘define’ left defined in
the window which may have adverse effects on other AMD shim modules.
2014-10-02 18:55:24 -04:00
Yotam Mann
d1d155f58d envelope stays tempo relative until triggered 2014-10-02 13:23:04 -04:00
Yotam Mann
93d9dd24c0 can start the transport at a specific offset 2014-10-02 13:22:44 -04:00
Yotam Mann
d743e1eb17 reveals player attributes through set in Sampler
and through the constructor options object
2014-10-02 13:22:29 -04:00
Yotam Mann
7d26a67910 loop attributes can be passed in options object
also attributes can remain tempo relative. #27
2014-10-02 13:21:22 -04:00
Yotam Mann
bb17651349 MultiSampler accepts the sample names as numbers 2014-10-02 13:16:17 -04:00
Yotam Mann
527ce958cf cleaning up PingPongDelay 2014-10-02 13:15:38 -04:00
Yotam Mann
30e71b1c82 Added pre delay in left channel
Fixes #32
2014-10-01 19:45:30 -04:00
Yotam Mann
0233abf40e cool color console printing 2014-10-01 14:48:05 -04:00
Yotam Mann
ef80d1e81c light styling. 2014-10-01 14:47:45 -04:00
Yotam Mann
d3f9834ca0 typo in Noise 2014-10-01 00:55:31 -04:00
Yotam Mann
ff57f046f3 synths use OmniOscillator 2014-09-30 22:49:48 -04:00
Yotam Mann
f5ff008170 changing Oscillator JSON description 2014-09-30 22:49:17 -04:00
Yotam Mann
452983920f using OmniOscType enum type 2014-09-30 22:48:21 -04:00
Yotam Mann
14d254fd97 altering default values 2014-09-30 22:48:00 -04:00
Yotam Mann
be4f132aef changed load to unload in Sampler 2014-09-30 00:29:02 -04:00
Yotam Mann
18bab7da59 setters and options objects for Sources
Fixes #27
2014-09-30 00:28:48 -04:00
Yotam Mann
1e7f46ff61 jsdoc addition 'const' 2014-09-29 23:45:31 -04:00
Yotam Mann
23128469ca combination oscillator class 2014-09-29 23:44:59 -04:00
Yotam Mann
014c5e5db2 new PWMOscillator class 2014-09-29 23:44:43 -04:00
Yotam Mann
c67468cab6 PulseOscillator setters 2014-09-29 23:44:35 -04:00
Yotam Mann
1dcaccdb4c defaults to loopStart offset if offset is not given 2014-09-29 23:44:15 -04:00
Yotam Mann
0c6383c49c change swing to default to 16th note 2014-09-29 23:42:56 -04:00
Yotam Mann
704593b655 swing control on the Transport 2014-09-24 23:46:57 -04:00
Yotam Mann
c569670689 setters on the PluckSynth 2014-09-24 23:43:44 -04:00
Yotam Mann
26d2e1ef59 making a note of where methods get defined.
makes it easier to know which files to include.
2014-09-24 23:43:10 -04:00
Yotam Mann
2e753b80dc renamed Tone.Not -> Tone.NOT
much clearer this way.
2014-09-24 14:44:56 -04:00
Yotam Mann
a99ff1d48e removed Tone.Not
renaming it Tone.NOT
2014-09-24 14:44:01 -04:00
Yotam Mann
d99de46c26 started r3-dev version. 2014-09-24 14:43:11 -04:00
Yotam Mann
04359f6dbb documenting Tone.Not 2014-09-23 22:23:58 -04:00
Yotam Mann
e0228e38d8 jsdoc tweaks 2014-09-23 22:07:16 -04:00
Yotam Mann
4427463013 release candidate 2 2014-09-23 21:57:32 -04:00
Yotam Mann
b59978d5fa note<-->midi methods 2014-09-21 15:18:04 -04:00
Yotam Mann
6fc65ff1a3 added options object to freeverb 2014-09-21 14:43:38 -04:00
Yotam Mann
eacfce111c new class JCReverb
John Chowning
2014-09-21 13:39:18 -04:00
Yotam Mann
2205375f40 some free verb presets 2014-09-21 13:38:54 -04:00
Yotam Mann
c7f7fbd31b fixed deps and description
used to say AutoWah incorrectly.
2014-09-21 13:38:43 -04:00
Yotam Mann
71dd2b11c0 Freeverb setters 2014-09-21 13:38:13 -04:00
Yotam Mann
176cd0d563 fixed AutoWah deps 2014-09-21 13:38:00 -04:00
Yotam Mann
2cabd2bd3e new class FeedbackCombFilter 2014-09-21 13:37:45 -04:00
Yotam Mann
f8ae02b5f9 made Mono into it's own component 2014-09-21 13:37:08 -04:00
Yotam Mann
9fb1f4d637 Freeverb implementation
with simple test
2014-09-20 21:19:06 -04:00
Yotam Mann
018498b22a start out with the min delay time 2014-09-20 21:18:37 -04:00
Yotam Mann
007c1f0bbd gain reduction to compensate for the signal split
otherwise the volume is doubled
2014-09-20 21:18:20 -04:00
Yotam Mann
b4d2ad9bc7 put bufferSize back to 2048
need a solution where i can determiner he buffer size of the sound
card.
2014-09-20 21:17:24 -04:00
Yotam Mann
4f3cca312f instrument has Note as a dep 2014-09-20 19:24:12 -04:00
Yotam Mann
817a7a7d40 extends Instrument 2014-09-20 19:24:04 -04:00
Yotam Mann
d42cf9d698 filled out dispose method 2014-09-20 19:23:41 -04:00
Yotam Mann
198678d06b Monophonic extends Instrument 2014-09-20 19:23:28 -04:00
Yotam Mann
49341e2eae lowered buffer size 2014-09-20 19:23:07 -04:00
Yotam Mann
f076dec1e1 fixed dispose method 2014-09-20 19:22:35 -04:00
Yotam Mann
39f5e808f6 MultiSampler uses new Sampler interface
also extends Instrument
2014-09-20 18:58:02 -04:00
Yotam Mann
5059786389 Sampler extends Instrument 2014-09-20 18:57:44 -04:00
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