Commit graph

2602 commits

Author SHA1 Message Date
Yotam Mann
1c809914d8 fixing typos 2019-09-08 13:48:31 -04:00
Yotam Mann
5904a151f5 updating docs and types 2019-09-08 13:39:56 -04:00
Yotam Mann
94cc15c46e should pass in context to param test 2019-09-07 19:16:27 -04:00
Yotam Mann
daf97ae603 adding TickParam class
used by TickSignal and TickSource
2019-09-07 19:16:04 -04:00
Yotam Mann
22c95e21bc removing unused import 2019-09-07 17:57:45 -04:00
Yotam Mann
eb2c352187 adding defaultValue test 2019-09-06 17:16:54 -04:00
Yotam Mann
2f55cc2ec2 wrap the native ConstantSourceNode into ToneConstantSource
gets more consistent onended callback and other syntactic sugar
2019-09-06 17:10:32 -04:00
Yotam Mann
66d08cbdcb fixing typos in comments 2019-09-06 16:20:23 -04:00
Yotam Mann
fa7c984729 'apply' sets the full automation curve from one param to another 2019-09-06 16:18:32 -04:00
Yotam Mann
83e27282d0 changing names to the full name of the event 2019-09-06 16:17:49 -04:00
Yotam Mann
e60d7ffdb1 fixing typedefs 2019-09-06 14:59:21 -04:00
Yotam Mann
336d1b71db PolySynth uses new context.setInterval 2019-09-06 14:55:20 -04:00
Yotam Mann
294ebeefe7 adding setInterval
similar to setTimeout, but the event repeats
2019-09-06 14:46:44 -04:00
Yotam Mann
910d38c3c8 separating the constructor onto two lines
makes the documentation more readable
2019-09-06 01:39:56 -04:00
Yotam Mann
651dd956e0 CtrlPattern -> PatternGenerator
CtrlPattern is now a generator that iterates over the given array in a pattern
2019-09-05 23:54:26 -04:00
Yotam Mann
81d53ac6e6 remove old js files 2019-09-05 23:53:34 -04:00
Yotam Mann
c27a426daf converting distortion to typescript 2019-09-05 22:11:02 -04:00
Yotam Mann
95c45a5b7a adding more documentation to Tone.start 2019-09-05 14:46:26 -04:00
Yotam Mann
1e37601d5d converting LFO to typescript 2019-09-04 22:57:27 -04:00
Yotam Mann
b2b8a32c91 expose getInitialValue
returns the value of the oscillator before it's started
2019-09-04 20:01:16 -04:00
Yotam Mann
736106de5f accidentally put extra tab before name 2019-09-04 19:18:44 -04:00
Yotam Mann
2289f3c67f renaming OscillatorNode file to ToneAudioNode 2019-09-04 18:40:28 -04:00
Yotam Mann
51291538a8 renaming file to match class name 2019-09-04 18:39:28 -04:00
Yotam Mann
75a35108af name is a readonly string 2019-09-04 18:38:04 -04:00
Yotam Mann
a8962eb824 also export Options 2019-09-04 18:34:42 -04:00
Yotam Mann
1285fb19ed exporting options and class 2019-09-04 18:29:24 -04:00
Yotam Mann
0f31c77923 ability to use MetalSynth in PolySynth 2019-09-04 18:29:11 -04:00
Yotam Mann
10710d8f4c Test against the old polysynth API
notifies people of the update
2019-09-04 11:59:30 -04:00
Yotam Mann
cca7d10566 adding sync test and test long enough to test out the GC process 2019-09-03 23:07:44 -04:00
Yotam Mann
7c1bacb66d fixing typo 2019-09-03 22:08:20 -04:00
Yotam Mann
d50c444881 using onstatechange instead of addEventListener 2019-09-03 22:00:03 -04:00
Yotam Mann
8e76c0517b adding MetalSynth export 2019-09-03 21:52:23 -04:00
Yotam Mann
f85adf5dda resonance is a Frequency 2019-09-03 20:32:44 -04:00
Yotam Mann
e414ce891a convert MetalSynth to ts and extend Monophonic instead of instrument
fixes #486

thank you for the typescripting @jacobclarke92!
2019-09-03 20:20:08 -04:00
Yotam Mann
c167f1a0e1 detune can be passed into the options object 2019-09-03 20:09:46 -04:00
Yotam Mann
6c54f7b3ad pass in the detune value 2019-09-03 20:09:19 -04:00
Yotam Mann
8ec8ba4a13 Merge branch 'pr/535' into typescript 2019-09-03 19:36:26 -04:00
Yotam Mann
26f931b3ed PolySynth automatically disposes unused voices
expands to the maxPolyphony and will reduce back to 0 allocated voices if unused.
2019-09-03 19:29:59 -04:00
Jacob Clarke
f128fae51e Converted PluckSynth to TS + filter deps: FeedbackCombFilter, LowpassCombFilter (could not make tests for filters yet due to other issues with ToneWithContext 2019-09-01 21:17:32 +10:00
Jacob Clarke
e49cb07607 Tidied up MetalSynth and restored original comments 2019-09-01 19:19:19 +10:00
Jacob Clarke
d4b0604eb0 Restored some comments 2019-09-01 18:58:56 +10:00
Jacob Clarke
9d95738497 Converted NoiseSynth and test file to ts 2019-09-01 16:27:50 +10:00
Jacob Clarke
d7578f62b0 MetalSynth done, extends Monophonic now 2019-09-01 16:10:32 +10:00
Jacob Clarke
a6fdd24c92 MetalSynth almost done, incomplete triggerAttack function 2019-09-01 14:20:20 +10:00
Yotam Mann
f0f997c09d swapping constructor order
easier to read in the docs
2019-08-30 09:34:04 -07:00
Yotam Mann
2ff888d3b3 adding type classes
and basic sanity check
2019-08-30 09:28:45 -07:00
Yotam Mann
544f184b21 updating docs 2019-08-30 09:16:41 -07:00
Yotam Mann
c9d757aaa6 removing references to "@private"
old jsdoc comments
2019-08-30 09:08:29 -07:00
Yotam Mann
3e2de8f259 fixing spacing
typedoc wants one space before the "@"
2019-08-30 09:06:38 -07:00
Yotam Mann
48ec3f9320 exporting all options 2019-08-30 09:04:03 -07:00
Yotam Mann
5bdbda9c1c updating docs 2019-08-30 09:03:42 -07:00
Yotam Mann
d073b68b09 fromContext returns the Tone.js objects bound to the passed in context
WIP
2019-08-30 09:03:08 -07:00
Yotam Mann
65c63e57a6 fixing doc error 2019-08-30 09:02:18 -07:00
Yotam Mann
99dc1412a8 doc'ing 2019-08-30 09:02:06 -07:00
Yotam Mann
4e156e949d moving class imports to another file 2019-08-30 09:01:51 -07:00
Yotam Mann
1dba46a822 removing converting files 2019-08-27 10:06:34 -07:00
Yotam Mann
7a5ca042d0 removing converting classes 2019-08-27 10:02:44 -07:00
Yotam Mann
230287f813 updating docs 2019-08-27 10:02:31 -07:00
Yotam Mann
1bf6fb0d51 updating docs 2019-08-27 09:00:59 -07:00
Yotam Mann
b4c2153749 updating docs 2019-08-27 08:58:40 -07:00
Yotam Mann
539a5c45d8 updating docs 2019-08-27 08:57:00 -07:00
Yotam Mann
603bc5b98d updating docs 2019-08-27 08:53:14 -07:00
Yotam Mann
d57dd7e07a updating docs 2019-08-27 08:47:52 -07:00
Yotam Mann
a54ab4ea68 using typechecks from standardized-audio-context 2019-08-26 16:52:21 -07:00
Yotam Mann
3fc30c4884 Merge branch 'dev' into typescript 2019-08-26 11:05:12 -07:00
Yotam Mann
0c805aec7b setContext takes a context or AudioContext or OfflineAudioContext 2019-08-26 10:55:43 -07:00
Yotam Mann
e6431d9890 using standardized-audio-context as AudioContext
goal of normalizing behavior across all browsers that support Web Audio.

thanks @chrisguttandin!
2019-08-26 10:55:04 -07:00
Yotam Mann
b09b81c64b adding categories 2019-08-26 10:44:43 -07:00
Yotam Mann
4c106930e0 adding typedocs 2019-08-21 13:59:01 -07:00
Yotam Mann
e6635058d5 adding readonly to name 2019-08-21 13:44:12 -07:00
Yotam Mann
b018cac113 adding categories 2019-08-21 13:01:12 -07:00
Yotam Mann
8acc11781b moving params to above constructor 2019-08-21 13:00:44 -07:00
Yotam Mann
e60526c006 fixing typing 2019-08-20 22:51:08 -07:00
Yotam Mann
ff5360f408 converting Panner to ts 2019-08-20 22:50:12 -07:00
Yotam Mann
f1a5c839b9 adding effects tests 2019-08-20 22:23:01 -07:00
Yotam Mann
bea5f32a5c setting channelCount to 1 and mode to "explicit"
fixes issue with std-audio-context and stereo panner
2019-08-20 22:22:52 -07:00
Yotam Mann
1bfdf190d7 FrequencyShifter
whoops forgot to include the file in the last commit
2019-08-20 22:02:34 -07:00
Yotam Mann
77a745e09e FrequencyShifter Effect
thanks @Foaly
2019-08-20 21:57:45 -07:00
Yotam Mann
afb9d1726e converting PhaseShiftAllpass to typescript 2019-08-20 11:19:23 -07:00
Yotam Mann
1439c988e8 Merge branch 'pr/521' into typescript 2019-08-19 19:02:07 -07:00
Yotam Mann
9982db3d1b adding fadein/out to noise 2019-08-19 18:50:11 -07:00
Maximilian Wagenbach
bb8296d890 Mention antialiasing of the FrequencyShifter in the documentation. 2019-08-19 17:18:27 -07:00
Yotam Mann
ce88eb9b88 using createAudioContext and createOfflineAudioContext
easier to eventually move those to standardized-audio-context
2019-08-19 11:15:53 -07:00
Yotam Mann
c2e7c3af04 linting 2019-08-19 10:11:48 -07:00
Yotam Mann
c353df6d5a skip this test
for now
2019-08-19 10:04:28 -07:00
Yotam Mann
94a9f78704 don't merge object when the type is AudioParam, AudioNode or AudioBuffer
addresses standardized-audio-context/#642
2019-08-19 10:04:21 -07:00
Yotam Mann
560ac489af moving tests to AdvancedTypeCheck 2019-08-19 10:01:37 -07:00
Yotam Mann
05586661b3 adding types 2019-08-19 09:59:31 -07:00
Yotam Mann
fd1bbb708b overloaded offline constructor 2019-08-19 09:59:07 -07:00
Yotam Mann
cf6a4a8e69 export reverb 2019-08-16 16:17:27 -04:00
Yotam Mann
f9b433c4cf swapping order so that options are used 2019-08-16 15:35:52 -04:00
Yotam Mann
fb38cd4034 adding MembraneSynthOptions to PolySynth 2019-08-16 15:21:09 -04:00
Yotam Mann
68d650862d MembraneSynth extends Synth
addresses #486

Saves some code and enables use in PolySynth
2019-08-16 15:15:14 -04:00
Yotam Mann
c56bef48c4 converting MembraneSynth to ts 2019-08-16 13:57:38 -04:00
Yotam Mann
74ae46a7d4 adding interface to deepMerge which reflects the merging interfaces 2019-08-16 13:57:17 -04:00
Yotam Mann
d1c281c810 using isAudioParam and isAudioNode to test instanceof
will make migrating to standardized-audio-context easier
2019-08-16 12:49:04 -04:00
Yotam Mann
4a811bb5aa updating docs 2019-08-15 19:22:49 -04:00
Yotam Mann
6ae86b1c46 converting compressor to ts 2019-08-15 19:18:09 -04:00
Yotam Mann
77806402b6 omiting synth options on each individual options object
instead of on the entire object which caused some issues
2019-08-14 13:16:23 -04:00
Yotam Mann
ed88e6bf10 adding typing to 'connect' method 2019-08-14 13:01:16 -04:00
Yotam Mann
949a123b47 can add a subsequence to a part 2019-08-14 12:03:32 -04:00
Yotam Mann
d4d7c8a78b testing 'stop' method
plays the correct number of iterations
2019-08-14 12:03:21 -04:00
Yotam Mann
9494b570b4 clamping time to current time when not synced
correctly this time
2019-08-14 11:52:20 -04:00
Yotam Mann
8dc8c652fa velocity and time should already be computed by parent class 2019-08-14 10:53:48 -04:00
Yotam Mann
e8cc284b0f Using an active voices array instead of map
enables multiple notes on the same midi note to be scheduled without one deleting the other on _makeVoiceAvailable
2019-08-14 10:50:01 -04:00
Yotam Mann
68dac541dd using computed values in protected calls to _start and _stop 2019-08-14 10:44:27 -04:00
Yotam Mann
85847df8d2 removing clearing onended callback
introduces bugs when multiple oscillators are scheduled to start/stop in the future, the onended callback is not invoked
2019-08-14 10:43:16 -04:00
Yotam Mann
177e903589 logging the computed time 2019-08-14 10:02:22 -04:00
Yotam Mann
ce4fde8e43 releaseAll does not take a release time
will release all envelopes immediately. having it be immediate saves the issues that come with tracking active voices
2019-08-13 19:54:11 -04:00
Yotam Mann
6e77fe2e35 clearing onended callback on old oscillators when restarting 2019-08-13 19:36:10 -04:00
Yotam Mann
4594855dc3 adding logging to Source 2019-08-13 19:35:40 -04:00
Yotam Mann
b58812b36a adding stop and cancelStop logging 2019-08-13 19:34:39 -04:00
Yotam Mann
4d00150b66 computing time 2019-08-13 18:35:07 -04:00
Yotam Mann
0ad8d40c79 making overridden abstract
implemented by extending classes
2019-08-12 14:18:34 -04:00
Yotam Mann
e1652b8c20 releaseAll uses multiple triggerRelease instead of directly scheduling the voice
seems to cause fewer issues with held notes
2019-08-12 14:15:10 -04:00
Yotam Mann
150e8be0d3 cleaning up 2019-08-12 13:33:18 -04:00
Yotam Mann
3fbe0038cd convert flag needs to be done before value is set 2019-08-12 13:23:11 -04:00
Yotam Mann
5b3df95487 warning when max polyphony is exceeded 2019-08-12 13:21:55 -04:00
Yotam Mann
4f3e8e233f removing voice-stealing
adds too much complixity for now in terms of scheduling into the future. Using setTimeout for scheduling notes into the future. keeps track of active notes better with this type of scheduling.
2019-08-12 13:18:18 -04:00
Yotam Mann
0b1a6bee58 updating typing 2019-08-12 13:17:37 -04:00
Yotam Mann
8f6c82d6a4 testing setting 'convert' explicitly 2019-08-12 10:20:24 -04:00
Yotam Mann
78d546ea73 testing getting an array curve 2019-08-12 10:16:07 -04:00
Yotam Mann
ef66b85209 using assert instead of conditionals 2019-08-12 10:15:55 -04:00
Yotam Mann
9bd9feb7fb removing unused import 2019-08-12 10:14:55 -04:00
Yotam Mann
511d98564b adding some tests for full coverage 2019-08-12 09:37:48 -04:00
Yotam Mann
ef940b778a adding tests for full coverage 2019-08-12 09:23:01 -04:00
Yotam Mann
e7c429f4ec adding back envelope
getLevelAtTime was used for the portamento
2019-08-12 00:21:34 -04:00
Yotam Mann
0f45fc9efd removing unused import 2019-08-12 00:20:16 -04:00
Yotam Mann
c81364610c converting polysynth to typescript
slightly updated API includes voice stealing
2019-08-12 00:16:03 -04:00
Yotam Mann
48c410cfc4 added floating point midi conversion 2019-08-12 00:15:30 -04:00
Yotam Mann
4e9fca3df3 marking toMaster as deprecated 2019-08-12 00:15:11 -04:00
Yotam Mann
72e877ff67 hooking up onsilence 2019-08-12 00:13:52 -04:00
Yotam Mann
8b295c32de removing getLevelAtTime
replaced by onsilence which is used to find when the instrument is making sound
2019-08-12 00:13:13 -04:00
Yotam Mann
4d52317fd3 takes an array of partials 2019-08-12 00:09:40 -04:00
Yotam Mann
f79cce25ca updating docs 2019-08-12 00:09:22 -04:00
Yotam Mann
07cdf6840e adding onstop to noise 2019-08-11 11:42:17 -04:00
Yotam Mann
18facc5576 safety checks before trying connection 2019-08-10 18:07:10 -04:00
Yotam Mann
edddd9e3ba moving assert and log to their own file 2019-08-10 18:07:02 -04:00
Yotam Mann
0dff2423e7 checking if connecting to a source with no inputs throws an error 2019-08-10 18:06:41 -04:00
Yotam Mann
f6843947d8 adding onstop to all the sources 2019-08-10 11:51:35 -04:00
Yotam Mann
0719a8ba9d cancel stop when the ending is implicit 2019-08-09 23:35:08 -04:00
Yotam Mann
fdbf9d64bf removing 'only' from tests 2019-08-09 23:11:51 -04:00
Yotam Mann
d507188149 Player.onstop is invoked when the buffer has stopped
fixes #519
2019-08-09 23:07:09 -04:00
Yotam Mann
b94be3cdc4 moving object creation to constructor body
more consistent style
2019-08-09 23:06:30 -04:00
Yotam Mann
63d68f3446 onended callback passes in the file in the parameter 2019-08-09 23:02:28 -04:00
Yotam Mann
73dbca2e1b removing unused import 2019-08-09 23:00:51 -04:00
Yotam Mann
32d0dfea0e removing 'only' from tests 2019-08-09 20:01:02 -04:00
Yotam Mann
27e7fbcb91 source tests
testing syncing with different offsets and timings
2019-08-09 19:53:10 -04:00
Yotam Mann
70b76c317c adding TONE_DEBUG_CLASS to the window object 2019-08-08 17:00:42 -04:00
Yotam Mann
25e24800d4 stop the oscillator if it's started 2019-08-08 16:32:22 -04:00
Yotam Mann
cf40ce5349 stop and disconnect the constant source 2019-08-08 16:06:19 -04:00
Yotam Mann
1360828a6c caching periodic wave computations
helps when creating many custom oscillators with the same phase or partials
2019-08-08 14:22:15 -04:00
Yotam Mann
e3d8598533 small optimization which avoids setting the same value 2019-08-08 14:21:20 -04:00
Yotam Mann
4a7c8809e8 linting 2019-08-08 14:17:41 -04:00
Yotam Mann
38d6f9d242 optimization by moving child objects into constructor
means that in many cases the param won't be assigned twice
2019-08-08 14:15:56 -04:00
Yotam Mann
73bc128265 small optimization when partials list is [] 2019-08-08 13:05:34 -04:00
Yotam Mann
f7405d963a Removing disconnect on ended
not necessary and caused a lot of issues

fixes #463
2019-08-07 11:50:44 -04:00
Yotam Mann
86b2848378 total time = decay + predelay
summing instead of subtracting fixes potential range issues when preDelay is larger than decay

fixes #512
2019-08-07 11:48:11 -04:00
Yotam Mann
507f095992 compute time string values for envelope attack/release
fixes #501
2019-08-07 11:46:04 -04:00
Yotam Mann
6f4ad826a0 Revert "small optimization to avoid setting the same value twice"
This reverts commit 3208497102.
2019-08-07 11:38:31 -04:00
Yotam Mann
3208497102 small optimization to avoid setting the same value twice
happens sometimes on initialization
2019-08-07 00:53:07 -04:00
Yotam Mann
3a3d563c6e schedule volume from time = 0 2019-08-07 00:52:31 -04:00
Yotam Mann
2397dfedb6 small optimization
doesn't set multiply more than once
2019-08-07 00:52:05 -04:00
Yotam Mann
5dbd58e700 moving assertions first 2019-08-06 23:19:03 -04:00
Yotam Mann
2c2c71dd43 updating to new API 2019-08-06 22:54:58 -04:00
Yotam Mann
c0a70924ad Fixing typing on Oscillator params 2019-08-06 18:24:32 -04:00
Yotam Mann
91db5f9bc7 updating some of the naming and docs
thanks @this-fifo!
2019-08-04 15:53:11 -04:00
Yotam Mann
88ea4f5d49 Merge branch 'pr/523' into typescript 2019-08-04 15:47:35 -04:00
Yotam Mann
adce8e2e70 linting 2019-08-04 15:47:02 -04:00
Yotam Mann
9549e98f11 exporting signals 2019-08-04 15:27:44 -04:00
Filipe Herculano
99f607fbcd fix Scale using incorrect member for input on _setRange 2019-08-04 14:45:49 -04:00
Yotam Mann
4ed750bc1f using Reflect instead of 'hasOwnProperty'
takes care of situation where time has a 'getter'
2019-08-04 13:44:37 -04:00
Yotam Mann
63a0b4e207 Part can accept any object-like thing with a 'time' property 2019-08-04 13:35:48 -04:00
Yotam Mann
1fcd420ee3 using relative paths 2019-08-04 13:21:07 -04:00
Yotam Mann
8af43901bf exposing utils, units and param 2019-08-04 13:12:39 -04:00
Yotam Mann
0f1218b69e updating docs 2019-08-04 13:12:23 -04:00
Filipe Herculano
24c989f94c Merge remote-tracking branch 'upstream/typescript' into typescript 2019-08-04 13:08:58 -04:00
Filipe Herculano
dde20960f3 converting Scale to typescript 2019-08-04 13:08:43 -04:00
Yotam Mann
dd0158d0bf exposing ToneAudioBuffers 2019-08-04 11:04:48 -04:00
Yotam Mann
6160d4ec70 exposing conversions 2019-08-04 11:02:14 -04:00
Yotam Mann
758a157e5a cleaning up 2019-08-04 10:18:45 -04:00
Yotam Mann
0c44dbae14 small tweaks and cleanup to Add typescript conversion
thank you @this-fifo 🙏
2019-08-04 10:17:42 -04:00
Yotam Mann
1122628ab2 Merge branch 'pr/522' into typescript 2019-08-04 10:09:58 -04:00
Yotam Mann
e852b99a43 adding ConnectTest to automatically test connections 2019-08-04 10:07:19 -04:00
Yotam Mann
dac194b8e2 Normalize is never used anywhere
can put back if it turns out it's necessary
2019-08-04 10:01:51 -04:00
Yotam Mann
8c2979fe8a connection tests and channel property tests 2019-08-04 09:54:53 -04:00
Yotam Mann
cc18de471d exposing ToneAudioNode 2019-08-04 09:54:16 -04:00
Yotam Mann
9ab45ab84c removing channel properties from constructor options
will need to set individually when relevant or come up with another solution to setting in constructor. the relevant nodes are not available at the time of the constructor
2019-08-04 09:54:06 -04:00
Filipe Herculano
9eed11d1c5 converting Add to typescript 2019-08-03 16:37:30 -04:00
Yotam Mann
56db8b3a7a simplifying _internalChannels
channelCount/Mode/Interpretation check the input/output nodes, which removes the need for many classes to have _internalChannels
2019-08-03 12:00:14 -04:00
Yotam Mann
b81310f107 doesn't need to set numberOfOutputs 2019-08-02 21:50:04 -04:00
Yotam Mann
b52103652f doc'ing 2019-08-02 21:49:38 -04:00
Yotam Mann
5e8a32b662 numberOfInputs/Outputs is inferred by looking at the input/output node 2019-08-02 21:48:28 -04:00
Yotam Mann
4364f2f843 no longer necessary to pass in number of inputs
the count is inferred by checking the input or output node
2019-08-02 21:47:57 -04:00
Yotam Mann
59330262bd converting Split to ts 2019-08-02 21:46:36 -04:00
Yotam Mann
52bcac2599 setting name to readonly 2019-08-02 21:09:35 -04:00
Yotam Mann
0b6ae165e0 updating toDestination 2019-08-02 16:31:20 -04:00
Yotam Mann
b77f696412 converting Reverb to typescript 2019-08-02 16:29:09 -04:00
Yotam Mann
be4542b5b1 adding a name 2019-08-02 16:28:57 -04:00
Yotam Mann
1792ff1d05 merging functionality from 'dev'
changes were made to .js files which are no longer there. moving functionality to .ts files
2019-08-02 13:56:51 -04:00
Yotam Mann
22396a8942 Merge branch 'dev' into typescript 2019-08-02 13:52:11 -04:00
Yotam Mann
cf31bb6bda end exponentialApproach with a linearRamp
this makes sure that the value ends at the correct value and time instead of continuously approaching.

also addresses https://bugs.chromium.org/p/chromium/issues/detail?id=990393&can=2&q=small%20timeConstant
2019-08-02 13:09:24 -04:00
Yotam Mann
f393cf5815 version should always be 'dev' until built by travis 2019-08-02 11:37:59 -04:00
Yotam Mann
d20f6e8fe9 Releases all held notes
thanks @lidiovargas! i ended up going with something more similar to your first solution. just removing the arrow function to fix the linting error
2019-08-02 10:43:31 -04:00
Yotam Mann
344bd48bc0 removing js files 2019-08-02 10:37:07 -04:00
Yotam Mann
fd163b3c1e linting 2019-08-02 10:36:59 -04:00
Lidio Vargas
82a9b54de1 Fixing sustained notes on Tone.Sampler (travis checked) 2019-08-01 21:00:05 -03:00
Lidio Vargas
f0febbdade Fixing sustained notes on Tone.Sampler (passing test) 2019-08-01 20:32:24 -03:00
Maximilian Wagenbach
b3392308aa Improved documentation of FrequencyShifter and PhaseShiftAllpass.
Removed unneeded code.
2019-08-01 11:48:06 +02:00
Maximilian Wagenbach
3be1921fc8 Added impulse response test for the PhaseShiftAllpass. 2019-08-01 00:23:25 +02:00
Maximilian Wagenbach
7193f721b8 Added FrequencyShifter, a single side band modulation based frequency shifter. 2019-07-31 14:01:51 +02:00
Yotam Mann
a16df958a9 local version should always be 'dev' 2019-07-30 16:05:12 -04:00
Yotam Mann
858af77521 fixing offset errors 2019-07-30 15:53:19 -04:00
Yotam Mann
e97ea7d5df better type checking for sampler url parameters 2019-07-30 15:53:10 -04:00
Yotam Mann
6e5e8b3399 using specific types
importing them so there are not multiple import type errors
2019-07-30 15:35:27 -04:00
Yotam Mann
474ec85408 fixing default duration
made it so that the player never started when Player was synced.
2019-07-30 14:51:07 -04:00
Yotam Mann
d1716266e7 had slice logic backwards
oops
2019-07-30 10:52:49 -04:00
Yotam Mann
312e99e5b3 exporting 'start' 2019-07-30 10:26:13 -04:00
Yotam Mann
a88e9b5a84 making time optional 2019-07-30 10:25:17 -04:00
Yotam Mann
c0bd377805 export 'connect' 2019-07-30 10:24:13 -04:00
Maximilian Wagenbach
866d019228 Added PhaseShiftAllpass.
It implements a 90° phase shift between its two outputs using IIR filters.
2019-07-29 16:21:38 +02:00
Lidio Vargas
65098a0229 Fixing released-sustained notes on Tone.Sampler 2019-07-28 14:01:50 -03:00
Yotam Mann
84a8fb0255 updating docs 2019-07-26 11:56:33 -04:00
Yotam Mann
d9eae0123f removing window reference 2019-07-26 11:50:59 -04:00
Yotam Mann
4a266742af making Event and Part values generic
gives better typing in the callback function
2019-07-26 11:50:29 -04:00
Yotam Mann
dd14e412ae return context immediately
don't wait for the buffer promise to finish because the context will be set wrong for that entire time
2019-07-26 11:45:11 -04:00
Yotam Mann
61fe1a6a0d fixing initialization case 2019-07-25 18:32:58 -04:00
Yotam Mann
7a099b2310 handling case where window is not defined
either because it's loaded in node.js or because of the context that the script is loaded in
2019-07-25 18:28:17 -04:00
Yotam Mann
cd73792659 indicating that version is string when output for typescript 2019-07-25 18:26:03 -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
aaa0ba2b69 updating tests and thresholds 2019-07-25 13:17:21 -04:00
Yotam Mann
86bef350e2 adding note on name change 2019-07-25 13:10:52 -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
4a93121e40 doc'ing 2019-07-25 11:19:53 -04:00
Yotam Mann
68b557f441 additional FeedbackDelay tests 2019-07-25 11:17:11 -04:00
Yotam Mann
e2de5a8955 typing 2019-07-25 10:46:49 -04:00
Yotam Mann
c5505cb4dc doc'ing 2019-07-25 10:46:34 -04:00
Yotam Mann
40727ee650 converting FeedbackDelay to ts 2019-07-25 10:46:28 -04:00
Yotam Mann
3e6484eef6 converting Merge to ts 2019-07-25 10:45:27 -04:00
Yotam Mann
cbae25a15c remove Array.prototype.reverse.call, use .reverse() instead 2019-07-25 10:45:02 -04:00
Yotam Mann
111ecc1396 delayTime is in Time instead of seconds 2019-07-25 10:44:32 -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
9788bcc847 optimizing slice implementation
no longer requires iteration over the arrays
2019-07-25 09:08:34 -04:00
Yotam Mann
1874662060 converting Convolver to ts 2019-07-25 00:10:46 -04:00
Yotam Mann
923940576c abstract classes must take the options object
no passing in individual parameters. This simplifies the code a little
2019-07-24 23:33:31 -04:00
Yotam Mann
2f7d4111ee convert CrossFade to ts
now uses StereoPannerNode
2019-07-24 23:18:09 -04:00
Yotam Mann
e53dfa162f convert subtract to ts 2019-07-24 23:17:47 -04:00
Yotam Mann
b5186053fc updating docs 2019-07-24 23:17:18 -04:00
Yotam Mann
2602d4d397 convert Negate to ts 2019-07-24 23:16:58 -04:00
Yotam Mann
76fe32a25b convert GainToAudio to ts 2019-07-24 23:16:45 -04:00
Yotam Mann
57af70c921 make constantSource accessible from within the class 2019-07-24 23:16:35 -04:00
Yotam Mann
f383ca7387 exporting events 2019-07-24 21:54:57 -04:00
Yotam Mann
9051687276 exporting player 2019-07-24 21:54:38 -04:00
Yotam Mann
10cd309a12 exporting events 2019-07-24 21:54:26 -04:00
Yotam Mann
14cd707855 can use an object as a value
no longer gets copied over
2019-07-24 21:53:56 -04:00
Yotam Mann
7c4196a589 converting Sequence to ts 2019-07-24 21:53:35 -04:00
Yotam Mann
ba77fa509e changing removeAll -> clear 2019-07-24 20:02:56 -04:00
Yotam Mann
5fcb7df3cc Revert "getFrom is like getAfter, but also includes the event at the given time"
This reverts commit b4b924f2e0.
2019-07-24 19:54:57 -04:00
Yotam Mann
4858251ba6 Revert "small optimization reducing the number of cancelScheduledValues calls"
This reverts commit 37a62137fa.
2019-07-24 19:54:50 -04:00
Yotam Mann
37a62137fa small optimization reducing the number of cancelScheduledValues calls
first check if there are any more values which are scheduled
2019-07-24 19:50:49 -04:00
Yotam Mann
b4b924f2e0 getFrom is like getAfter, but also includes the event at the given time 2019-07-24 19:49:31 -04:00
Yotam Mann
b858f03040 disconnecting the oscillator on dispose 2019-07-24 19:30:53 -04:00
Yotam Mann
97002d776f using already computed fadeOut time 2019-07-24 19:30:31 -04:00
Yotam Mann
fa95e74ab9 removing the disconnect onended
causes glitches and clicks. might be because the frequency.disconnect is not fully implemented
2019-07-24 19:28:39 -04:00
Yotam Mann
934ab5d77f clearer error messages
catch the error before it becomes "the value is non-finite". show the original value
2019-07-24 09:30:58 -04:00
Yotam Mann
6362f00e58 checking both time and value arguments 2019-07-23 17:46:13 -04:00
Yotam Mann
6cb6472f46 if object key is 'value' just copy it over
deep merging was causing some errors with ToneEvent
2019-07-23 17:09:11 -04:00
Yotam Mann
3c0953b3a4 adding more detailed error handling
addresses #515
2019-07-23 17:08:48 -04:00
Yotam Mann
e9f68103de need to fix this, skipping test for now
the issue is that merge creates a new object
2019-07-23 15:18:23 -04:00
Yotam Mann
659e5e62ea converting Part to ts 2019-07-23 15:17:45 -04:00
Yotam Mann
61a02e6633 toTicks can take a class as well 2019-07-23 15:17:11 -04:00
Yotam Mann
1c8210fb25 using Set instead of array 2019-07-23 13:47:36 -04:00
Yotam Mann
53df0f3caa differentiating between BasicPlaybackState and PlaybackState
PlaybackState includes "paused"
2019-07-23 13:43:35 -04:00
Yotam Mann
9306e5188c adding additional option to StateTimeline.add
enables more strict typing of returned object
2019-07-23 13:43:11 -04:00
Yotam Mann
f6f2e78574 convert Event to typescript 2019-07-23 13:15:04 -04:00
Yotam Mann
2978244fd5 interval can also be a time class 2019-07-23 13:12:27 -04:00
Yotam Mann
027bffc10e check if the attribute exists and is not falsy 2019-07-23 13:11:01 -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
07bd1d6867 updating docs 2019-07-23 11:48:26 -04:00
Yotam Mann
23bbbcb887 moving onended functionality to OneShotSource class 2019-07-23 11:47:32 -04:00
Yotam Mann
126b4a3226 updating typing 2019-07-23 11:46:08 -04:00
Yotam Mann
cd968292d4 correcting docs 2019-07-23 11:28:33 -04:00
Yotam Mann
7e65d90ec9 dont remove primitive types from 'get' response 2019-07-23 11:28:22 -04:00
Yotam Mann
c31aa5fa77 converting Player to ts 2019-07-23 11:27:55 -04:00
Yotam Mann
1f4fcbf996 removing need for time to be clamped to currentTime
when player is synced, this is necessary
2019-07-23 11:27:43 -04:00
Yotam Mann
5a8ee37c77 adding implicit end attribute to StateTimeline
used when the ending is impilcitly scheduled as in Player
2019-07-23 11:26:41 -04:00
Yotam Mann
a820e5bee5 implementing debug 2019-07-23 11:24:38 -04:00
Yotam Mann
63cce0d48a converting Sampler to ts 2019-07-22 16:18:16 -04:00
Yotam Mann
622b547e32 time is optional in toSeconds 2019-07-22 16:18:01 -04:00
Yotam Mann
5a2e6ee714 moved some setup to parent class 2019-07-22 16:17:49 -04:00
Yotam Mann
8fcff92e39 time is optional 2019-07-22 16:17:03 -04:00
Yotam Mann
4540533727 one shot source sets up fadeIn/Out and curve 2019-07-22 16:16:54 -04:00
Yotam Mann
329ef50e45 Time is optional 2019-07-22 16:16:29 -04:00
Yotam Mann
9f14b53d26 moving input definition to Instrument 2019-07-22 16:16:13 -04:00
Yotam Mann
9e8ffa3dd0 optionsFromArguments can accept an object
uses 4th parameter to know which options should be an object
2019-07-22 16:15:55 -04:00
Yotam Mann
ca43351e92 convert ToneAudioBuffers to ts 2019-07-22 12:29:50 -04:00
Yotam Mann
cd0ab3ae10 only relative paths 2019-07-19 13:26:38 -04:00