Commit graph

552 commits

Author SHA1 Message Date
Yotam Mann
84a8fb0255 updating docs 2019-07-26 11:56:33 -04:00
Yotam Mann
69c6238d4c Adding some ASCII art 2019-07-25 15:14:54 -04:00
Yotam Mann
e3f5940afd only relative imports 2019-07-25 13:32:34 -04:00
Yotam Mann
bfc3d7ed15 toMaster() -> toDestination()
more consistent with the Web Audio API
2019-07-25 11:32:56 -04:00
Yotam Mann
9a49c873df exporting modules from main entry 2019-07-25 11:29:36 -04:00
Yotam Mann
3e6484eef6 converting Merge to ts 2019-07-25 10:45:27 -04:00
Yotam Mann
ef19d2e6e8 input and output are no longer arrays
simplifies connect/disconnect logic greatly. Simplifies API to just have clearly named inputs/outputs instead of overloading input/output connect numbers
2019-07-25 10:43:47 -04:00
Yotam Mann
386d96360e adding some ascii art to better explain 2019-07-25 09:08:47 -04:00
Yotam Mann
2f7d4111ee convert CrossFade to ts
now uses StereoPannerNode
2019-07-24 23:18:09 -04:00
Yotam Mann
ffad8c1475 confirm that an instance was disposed
implement Tone.prototype.dispose which flips a boolean wasDisposed.
2019-07-23 12:11:57 -04:00
Yotam Mann
c39dacf22d adding name prop 2019-07-18 14:06:32 -04:00
Yotam Mann
7f47b50917 converting AmplitudeEnvelope to ts 2019-07-18 11:24:32 -04:00
Yotam Mann
9d131effb1 converting Envelope to ts 2019-07-18 10:21:27 -04:00
Yotam Mann
5d36e4a523 only use relative imports 2019-07-17 13:12:21 -04:00
Yotam Mann
990c0f56ed using type instead of string types 2019-07-15 15:37:25 -04:00
Yotam Mann
80e5da5bd4 making paths relative 2019-07-11 17:33:04 -04:00
Yotam Mann
219462fe9e cleaning up circular deps 2019-07-11 09:57:06 -04:00
Yotam Mann
f48696a69e Revert "every class calls super.dispose()"
This reverts commit 60a63cacf8.
2019-07-11 00:36:16 -04:00
Yotam Mann
60a63cacf8 every class calls super.dispose()
makes sure that things don't get disposed twice, which seems to be a common source of issues
2019-07-10 23:35:29 -04:00
tambien
7687ae512e moving some config into the constructor
since multiband split was not yet declared, some of the properties were undefined
2019-06-24 14:35:25 -04:00
tambien
96628e0984 ensuring context is passed to subclasses 2019-06-24 14:34:17 -04:00
tambien
2e177c4ed0 adding multiband split tests 2019-06-24 14:33:54 -04:00
Yotam Mann
02cfefa7ef
Merge branch 'typescript' into fix-typescript-linting 2019-06-24 13:33:18 -04:00
Yotam Mann
f3076e206f
Merge pull request #504 from garrensmith/eq3-multiband
convert multibandsplit and eq3 to typescript
2019-06-24 13:28:45 -04:00
tambien
a887660792 updating docs 2019-06-23 14:48:21 -04:00
Garren Smith
efbd3c7f5f Fix linting issues
Also add in no-unused-expression-chai rule so that chai works with
tslint.
2019-06-23 12:53:57 +02:00
Garren Smith
ac627ab332 convert multibandsplit and eq3 to typescript 2019-06-23 11:36:42 +02:00
tambien
eef868e8a1 matching functionality to Filter.js 2019-06-21 14:42:50 -04:00
Garren Smith
d215e01914 remove unneeded imports in tests 2019-06-21 19:32:06 +02:00
Garren Smith
30425572c9 Convert filter.js to typescript 2019-06-21 19:29:46 +02:00
tambien
ef55dc9bb8 Create Analyser.test.ts 2019-06-19 14:24:30 -04:00
tambien
962610587b converting Volume to ts 2019-06-19 09:53:18 -04:00
tambien
730a818bcb organizing into sub folders 2019-05-23 14:00:49 -04:00
tambien
39cf110fe4 Merge branch 'dev' of https://github.com/Tonejs/Tone.js into typescript 2019-05-21 23:53:46 -04:00
Colin
bb67e9c83d Improved explanation of size in FFT/Analyser docs (#477) 2019-04-12 10:45:34 -04:00
tambien
6fb2b30dce Merge branch 'dev' into typescript 2019-04-12 10:40:10 -04:00
Colin
aa92ea6162 Correct description for Tone.FFT (#476) 2019-04-11 17:43:21 -04:00
tboie
8f08316b41 #471 (#472) 2019-04-04 15:10:03 -04:00
tambien
184102ab4c removing shims
will replace with standardized-audio-context
2019-03-25 22:58:36 -07:00
tambien
c1d748deed adding case where attack time is 0
fixes #425
2019-03-12 13:22:25 -04:00
tambien
3083677249 removing mute
could set "amplitude" to 0, LFO does not need to match Source API
2019-02-01 11:22:10 -05:00
tambien
4a270c2ed5 removing unused return statement 2019-02-01 11:21:29 -05:00
tambien
2780cac504 using Tone.connect for connections with native nodes
addresses #421
2019-01-28 11:02:15 -05:00
tambien
ed71d8141b amd to es6 import/export
no longer using AMD (require.js) style imports, and beginning to move to es6 "import/export" statements everywhere.
2019-01-27 13:05:20 -05:00
tambien
f38c87271f Split can optionally handle more than 2 channels 2019-01-26 20:12:07 -05:00
tambien
4c0659a0ed merge optionallly accepts more than 2 channels 2019-01-26 20:06:07 -05:00
tambien
b2efc57a2a updating docs to reflect FFT output data
fixes #423
2019-01-11 14:30:59 -05:00
tambien
c712219198 lowering meter size
to increase performance
2019-01-08 20:23:54 -05:00
tambien
68f1c78d9a get the frequency response curve 2018-12-28 16:07:39 -05:00
tambien
7be27c65d8 Tone.Channel combines Tone.Solo and Tone.PanVol
provides a channel strip interface similar to DAWs
2018-12-26 17:16:31 -05:00
tambien
2d7879a32e fix linear decayCurve cancelling attack curve
schedule the decay curve to start 1 sample after the attack curve ends
2018-12-21 15:17:39 -05:00
Eric Lewis
f675f74eba Add documentation for Tone.Envelope's decay and release minimum values. (#414)
Fixes #411
2018-12-19 11:21:15 -05:00
tambien
3d1202043a all modules are relative paths
simplifies deep references to individual files
2018-08-26 22:29:17 -04:00
tambien
38897d7bae pass the options object to the next class 2018-07-28 10:20:36 -04:00
Yotam Mann
8a74995f2e making logs more descriptive 2018-06-20 14:56:11 -04:00
Yotam Mann
4dbd48943e using exponentialApproach instead of targetRampTo
reduces call to cancelScheduledValuesAtTime
2018-06-12 23:48:51 -04:00
Yotam Mann
baeb20a17c fixing order of gate connections
had wrong behavior bc of connection order.

fixes #298
2018-06-07 12:49:32 -04:00
Yotam Mann
049bfd04de exponent passed into constructor is applied
fixes #356
2018-06-07 12:21:38 -04:00
Yotam Mann
616af3b9de filter gain is in decibels 2018-06-07 12:12:28 -04:00
Yotam Mann
a441ce3ade changing LPCF implementation to avoid positive feedback loop
Fixes #198
2018-06-07 12:11:53 -04:00
tambien
982bc16b71 gate uses just smoothing instead of attack/release 2018-06-05 22:43:01 -04:00
tambien
765de3c6b8 follower uses a single smoothing value 2018-06-05 22:14:46 -04:00
Yotam Mann
3c2b822b43 can make decayCurve linear or exponential
fixes #354
2018-05-28 18:51:44 -04:00
Yotam Mann
ec4e9a3fdf searches for envelope position in attack curve 2018-05-28 17:59:31 -04:00
tambien
ade4946ff3 removing peak
only use RMS value
2018-05-17 11:40:59 -04:00
David Sherman
c66c453e95 Added type property to Tone.Meter (#276)
* Added 'type' property to Tone.Meter that accepts 'peak' or 'rms' and defaults to 'rms'. Calculation methods + sources added to Tone.Meter. Tests added to Tone.Meter + assertion sources.

* Fixed a number of formatting issues

* more formatting fixes

* Formatting for CI

* fixed variable names

* Updated to use existing gainToDb method.

* Removed tests of removed method.

* Removed whitespaces and tabs.

* Moved Supports.ONLINE_TESTING to original position

* Moded Supports.ONLINE_TESTING to top
2018-05-16 10:41:02 -04:00
tambien
ddbfa81bc3 no need to set the splitter defaults
this is no longer configurable and throws an error when set.

addresses #340
2018-05-03 16:26:45 -04:00
Yotam Mann
62e2cf5dfc fixing docs 2018-04-09 13:24:10 -04:00
Jon Wheeler
1da36262fe Fixed variable name in example (#324) 2018-04-01 11:38:51 -04:00
Yotam Mann
a5503e02d2 linting 2018-03-05 12:25:33 -05:00
Yotam Mann
56c12fb627 Tone.Mono coerces the incoming mono or stereo signal into a mono signal 2018-02-05 16:40:55 -05:00
Yotam Mann
ea5d3880c0 using SignalBase.connect instead of Signal.connect 2018-02-04 11:40:47 -05:00
Yotam Mann
dded291a25 linting 2018-01-02 10:37:27 -05:00
Yotam Mann
dc8111665f Envelope uses Signal not TimelineSignal 2017-12-29 20:42:01 -05:00
Yotam Mann
46df5578d9 removing TimelineSignal 2017-12-29 20:41:49 -05:00
Yotam Mann
4316530b16 linting 2017-10-26 16:03:00 -04:00
Yotam Mann
c58fad41f0 linting 2017-10-26 15:26:04 -04:00
Yotam Mann
2d2424e639 envelope uses Signal instead of TimelineSignal
they are equivalent now bc of the AudioParam shim
2017-10-26 00:51:31 -04:00
Yotam Mann
183bd1e94d using StereoPannerNode shim when not supported 2017-10-26 00:07:02 -04:00
Yotam Mann
eb162526bb moving shim to it's own file 2017-10-25 23:01:42 -04:00
Yotam Mann
a82ab45132 linting 2017-10-25 17:57:52 -04:00
Yotam Mann
cb2a982c39 linting 2017-10-21 19:02:46 -04:00
Yotam Mann
1d18b1c53b removing Tone.Expr from classes 2017-10-21 18:29:50 -04:00
Yotam Mann
a908d6bd92 correcting 'pan' type 2017-10-21 15:22:14 -04:00
Yotam Mann
42634bd453 using exponential approach for decay and release curves 2017-09-13 11:04:13 -04:00
Yotam Mann
892668b01e linearRampToValue -> linearRampTo 2017-08-31 12:45:25 -04:00
Yotam Mann
1603ad7b0f splitting Analyser functionality into multiple classes
simplifies the API
2017-08-31 10:56:19 -04:00
Yotam Mann
d6fe0e6d68 analyse() -> getValue() 2017-08-30 14:42:50 -04:00
Yotam Mann
e51fc401ef updating private method jsdocs 2017-08-28 11:08:20 -04:00
Yotam Mann
e6faa39dba classes which generate or process sound extend Tone.AudioNode 2017-08-27 17:50:31 -04:00
Yotam Mann
841f2448ca can solo multiple audio streams at once 2017-08-27 15:01:13 -04:00
Yotam Mann
b731c85cae adding 'mute' to PanVol 2017-08-27 13:57:50 -04:00
Yotam Mann
63fcb4af1e updating private variable 2017-08-12 10:45:28 -04:00
Yotam Mann
9f31807cf4 sampleTime and blockTime should be instance variables not static 2017-07-27 17:54:57 -04:00
Yotam Mann
effd317acd Merge branch 'dev' of https://github.com/Tonejs/Tone.js into dev 2017-07-27 17:46:15 -04:00
Yotam Mann
7734e70421 removing unnecessary returnType setting 2017-07-08 11:46:27 -04:00
Yotam Mann
3a08d9fd2e return type is always float32
removing byte analysis since it isn’t very useful
2017-07-08 11:21:26 -04:00
Yotam Mann
1c2e9afc0c float is default analyser return type 2017-06-19 17:13:46 -04:00
Yotam Mann
fc1496182a making channel mode explicit
fixes splitting problem in FF
2017-05-16 22:51:51 -07:00
Yotam Mann
c9203221aa making blockTime and sampleTime static vars 2017-05-07 19:15:35 -07:00
Yotam Mann
7159700f11 making connectSeries static 2017-05-01 14:06:36 -04:00
Yotam Mann
b927395825 making defaultArg static 2017-04-30 15:03:49 -04:00
Yotam Mann
0354a87dab hasStereoPanner is now static 2017-04-30 14:11:44 -04:00
Yotam Mann
3a0a55be7b Solo makes it easier to solo one of many sources
will mute all other instances of Tone.Solo when an instance.solo=true
2017-04-30 12:39:09 -04:00
Yotam Mann
f7b7600ac9 fixing jsdoc errors
[skip ci]
2017-04-30 11:16:35 -04:00
Yotam Mann
4bda177b83 gainToDb, dbToGain, intervalToFrequencyRatio now static functions 2017-04-26 23:21:26 -04:00
Yotam Mann
4bd1044cb4 using only static type queries 2017-04-26 00:27:28 -04:00
Yotam Mann
edfa168713 moving to static type queries
i.e. this.isString -> Tone.isString
2017-04-26 00:24:19 -04:00
Yotam Mann
6e585e8f82 components using new defaults api
also invoking super constructor first in preparation for es6 migration
2017-04-25 23:08:23 -04:00
Yotam Mann
b82f2bd6d7 surfaced returnType in docs
[skip ci]
2017-04-20 15:13:30 -04:00
Yotam Mann
88c0ea4fb6 fixed example to new UserMedia API
[skip ci]
2017-04-20 15:12:16 -04:00
Yotam Mann
2073ccdf8c fixing panning in example
[skip ci]
2017-03-28 21:14:48 -04:00
Yotam Mann
4499e80b2e uses passed in volume for _unmutedVolume 2017-03-26 16:40:00 -04:00
Yotam Mann
4cec0fb7a3 mute is true when volume === -Infinity and false otherwise
fixes #221
2017-03-24 17:27:40 -04:00
Yotam Mann
bef5457c01 using Math.SQRT1_2
I didn’t know this existed
2017-03-22 15:21:21 -04:00
Yotam Mann
af58fd34de updating to new getConstant API 2017-03-22 11:43:36 -04:00
Yotam Mann
d81ad3e8c7 polyfilling getFloatTimeDomainData 2017-03-13 00:56:04 -04:00
Yotam Mann
19a41080ba moving constants to Context 2017-02-19 11:48:23 -05:00
Yotam Mann
11d6da77cc updating docs to UserMedia instead of Microphone
[skip ci]
2017-01-08 15:58:58 -05:00
Yotam Mann
0681181d67 speeding up the ramp time constant 2016-12-15 13:38:41 -05:00
Yotam Mann
267d78d4a4 ease renamed to cosine
[skip ci]
2016-11-22 22:38:58 -08:00
Yotam Mann
5efa85081c making all of Compressor's parameters Tone.Params 2016-10-19 01:01:31 -04:00
Yotam Mann
b5ba9e072c ramping position values
this gets rid of a lot of clicking
2016-10-05 00:18:41 -04:00
Yotam Mann
bab37aea07 SpatialPanner and Listener wrappers 2016-10-01 21:45:22 -04:00
Yotam Mann
ac0e3db386 updated docs
[skip ci]
2016-09-25 19:00:10 -04:00
Yotam Mann
b1765f71b0 moving the minimum timing to the Instrument classes 2016-09-24 10:38:57 -04:00
Yotam Mann
1c3e06c2e5 schedule immediate envelopes one block in the future
this avoids some pops
2016-09-23 20:07:41 -04:00
Yotam Mann
3d36324b8d updating Q value so it doesn't feedback
Fixes #166

thanks @mmckegg
2016-09-23 10:16:10 -04:00
Yotam Mann
372053a029 using Tone.Delay everywhere instead of DelayNode 2016-09-20 00:01:27 -04:00
Yotam Mann
a60328345e using Tone.Gain everywhere instead of GainNode 2016-09-19 23:53:07 -04:00
Yotam Mann
76ad44360d updating to new API 2016-09-19 23:02:42 -04:00
Yotam Mann
c135392f55 changing sync to match new Source sync API 2016-09-18 19:37:31 -04:00
Yotam Mann
0824582274 update the octaves when updating the baseFrequency
otherwise it remains at the previous value
2016-07-20 15:37:51 -04:00
Yotam Mann
a40aa6bd12 Fixing case where partial envelope is retriggered using one of the predefined envelopes 2016-06-17 13:13:20 -04:00
Yotam Mann
eea938094c renaming cosine->sine and ease->sine
Fixes #69
2016-06-12 09:56:18 -04:00
Yotam Mann
4628f8c47a prefixing errors with class name. 2016-05-25 20:50:46 -04:00
Yotam Mann
db6b901003 attack/release curves can be arrays
also introducing a bunch of new curve types
2016-05-23 19:20:20 -04:00
Yotam Mann
9528238873 computing rms from the analyser waveform data 2016-05-17 21:26:57 -04:00
Yotam Mann
58a1223a9a meter uses the analyser node
no more ScriptProcessorNodes
2016-05-14 19:13:50 -04:00
Yotam Mann
a25767cfbe can mute the output 2016-05-14 18:07:53 -04:00
Yotam Mann
24692aa343 can be muted in the constructor options 2016-05-14 17:46:21 -04:00
Yotam Mann
3ecd99ecb6 moving mute code to Volume 2016-05-14 17:34:23 -04:00
Yotam Mann
98e58d0576 switching argument position of type and size
type is more important a parameter.
2016-05-14 16:34:50 -04:00
Yotam Mann
5d6f1806c1 Making the Analyser a passthrough node. 2016-04-25 18:05:15 -04:00
Yotam Mann
d374790175 using new Type 2016-04-18 02:19:17 -04:00
Yotam Mann
059bbf20b2 converting units using new API 2016-04-18 02:19:01 -04:00
Yotam Mann
733b49bcd5 using new types 2016-04-18 00:36:08 -04:00
Yotam Mann
2530182b2e updating analyser docs
[skip ci]
2016-04-17 13:41:54 -04:00
Yotam Mann
85cfedb03c adding polyfill for getFloatTimeDomain
Fixes #129
2016-03-20 19:01:39 -04:00
Yotam Mann
aa1b5123aa fixing panner for browsers that don't support stereo panner 2016-03-04 18:59:31 -05:00
Yotam Mann
ad9ae4dbe9 fitting fft size to conform with old spec range
this allows it to pass on older systems which haven’t increased the
range to 32k
2016-03-04 18:30:15 -05:00
Yotam Mann
2728e02555 ability to cancel an envelope 2016-03-04 15:54:24 -05:00
Yotam Mann
18b2136148 .value returns the scheduled value at time=now 2016-03-03 13:04:02 -05:00
Yotam Mann
7a23c08703 LFO outputs 0 value when stopped
gets around 0 gain optimization
2016-03-03 01:35:29 -05:00
Yotam Mann
115b9376ab Panner is now between -1 and 1
Same as the Web Audio API.
2016-02-27 11:31:15 -05:00
Yotam Mann
af6babf8d8 shortens attack time if the envelope is already active
this retains the attack slope.
2016-01-31 23:40:50 -05:00
Yotam Mann
9e7dd15e46 removed unused enum 2016-01-30 20:24:53 -05:00
Yotam Mann
995a12d765 Making sure the envelope is active before triggering the release
This keeps FF from throwing an error when trying to exponentially ramp
from 0.
2016-01-30 15:56:56 -05:00
Yotam Mann
e53c864948 making sure the envelope is silent after the decay if the sustain is 0 2016-01-18 22:46:36 -05:00
Yotam Mann
0349216473 Envelope is completely silenced while not being triggered
Fixes #109
2016-01-16 15:39:29 -05:00
Yotam Mann
acd3722add exposing exponent value 2015-12-07 00:38:48 -05:00
Yotam Mann
307dd6632c FrequencyEnvelope is like ScaledEnvelope but with baseFrequency and octaves instead of min and max 2015-12-07 00:23:21 -05:00
Yotam Mann
2626b19469 setValueAtTime makes the attack less prone to clicks
not sure why.
2015-12-06 21:39:59 -05:00
Yotam Mann
1cf6910796 Using exponentialRamp for decay and release
This normalizes things across browsers because it seems that FF
setTargetAtTime always starts from 0

addresses #91
2015-12-06 13:14:36 -05:00
Yotam Mann
f4200aa2a7 left and right inputs of merger are explicitly mono
this fixes issue of not splitting correctly in FF and Safari.
2015-12-06 13:14:36 -05:00
Yotam Mann
c8cfe33864 doc'ing 2015-11-17 22:52:22 -05:00
Yotam Mann
0c3cd6a305 Set a ramp point before the release curve 2015-11-11 23:41:17 -05:00
Yotam Mann
8e5dd56906 removing unused dependencies 2015-11-03 18:33:52 -05:00
Yotam Mann
93993846ee updating to new Gain / Volume API 2015-11-01 17:49:53 -05:00
Yotam Mann
99769ca927 volume doens't extend Gain 2015-11-01 17:49:33 -05:00
Yotam Mann
92a418af1e converts to destination units when connected 2015-10-21 12:12:35 -04:00
Yotam Mann
61fb1df660 adding strict mode 2015-10-21 12:11:19 -04:00
Yotam Mann
666d2f230a EQ3 using new Gain 2015-10-21 10:54:33 -04:00
Yotam Mann
b73a8cb71f updating to new Param class 2015-10-21 10:34:37 -04:00
Yotam Mann
1c00c650db updating to new Volume API 2015-10-21 10:33:13 -04:00
Yotam Mann
257b480535 Volume extends Gain 2015-10-21 10:30:21 -04:00
Yotam Mann
b061b81983 can get state of LFO 2015-10-20 17:30:20 -04:00
Yotam Mann
2f27321dda fixing doc description of analyser 2015-09-11 17:05:27 -04:00
Yotam Mann
eccdb659c2 renamed Tone/core/Types -> Tone/core/Type 2015-09-04 16:48:21 -04:00
Yotam Mann
9987af7a1d volume uses Tone.Gain 2015-08-31 16:59:36 -04:00
Yotam Mann
a2611941ea accepts options object 2015-08-28 18:32:32 -04:00
Yotam Mann
54c14e1f96 default values and per channel clipping indication 2015-08-28 18:32:20 -04:00
Yotam Mann
48b38d0de9 can be constructed through an options object 2015-08-27 23:08:58 -04:00
Yotam Mann
61d0e1bbda lfo outputs signal while stopped 2015-08-27 23:03:42 -04:00
Yotam Mann
80abf87292 reflecting rename 2015-08-18 16:29:39 -04:00
Yotam Mann
66a9991ede Envelope uses new SchedulableSignal 2015-08-16 15:17:35 -04:00
Yotam Mann
47dd0e2f45 amplitude envelope uses new Gain 2015-08-16 15:15:10 -04:00
Yotam Mann
d36af98c46 filter rolloff goes up to -96 now
because why not? Also accepts a string as the type. fixes #84.
2015-08-12 13:13:04 -04:00
Yotam Mann
5773944f88 fft and waveform analyser 2015-08-10 14:40:20 -04:00
Yotam Mann
17f5e8bb8e delays are offset only 1 block now. 2015-07-21 11:22:36 -04:00
Yotam Mann
24f1ddf4b9 Offset 'now' one block (128 samples) when triggering attack/release
Fixes #79
2015-07-21 10:31:37 -04:00
Yotam Mann
7eead0913b ramp to a smaller value
addresses #79
2015-07-20 10:47:52 -04:00
Yotam Mann
01060f13db removing old API test 2015-07-18 14:59:18 -04:00
Yotam Mann
3ccc0683bf changing doc links to markdown style 2015-07-04 15:25:37 -04:00
Yotam Mann
00e0ba7273 read envelope value 2015-07-04 13:36:38 -04:00
Yotam Mann
64212d90f3 doc'ing components
merging seth's doc changes
2015-07-04 12:32:18 -04:00
Seth Kranzler
d599761f2e more doc'ing 2015-07-02 15:45:40 -04:00
Seth Kranzler
12c56011b6 doc'ing components 2015-07-01 20:19:58 -04:00
Seth Kranzler
faf289bdd6 Effects, mic, Noise, Omniosc, and AmplitudeEnvelope docs updated 2015-07-01 17:44:30 -04:00
Yotam Mann
5ea8eaa35d doc'ing components 2015-06-20 19:25:49 -04:00