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
Yotam Mann
45622f1418
omit context from child classes
2019-07-19 13:21:02 -04:00
Yotam Mann
cae39e7435
fixing test
...
something was accidentally commented out
2019-07-19 13:20:32 -04:00
Yotam Mann
6e8cb73ca3
type coersion
2019-07-19 12:32:55 -04:00
Yotam Mann
c56798ebf4
takes a string array instead of object
2019-07-19 12:32:42 -04:00
Yotam Mann
b9dd8440b7
using OscillatorInterface to define all the oscilator properties
2019-07-19 12:32:17 -04:00
Yotam Mann
f8d845cede
return from 'get' should be serializable
2019-07-19 11:09:28 -04:00
Yotam Mann
60736135f3
updating docs
2019-07-18 14:57:13 -04:00
Yotam Mann
e2d505c6fd
only relative paths
2019-07-18 14:54:20 -04:00
Yotam Mann
b3ab8e88ff
exporting instruments
2019-07-18 14:48:02 -04:00
Yotam Mann
f69666fe07
converting Synth to typescript
2019-07-18 14:07:25 -04:00
Yotam Mann
9306f9e797
RecursivePartial is useful for nested properties
2019-07-18 14:06:53 -04:00
Yotam Mann
c39dacf22d
adding name prop
2019-07-18 14:06:32 -04:00
Yotam Mann
72d4b80f97
fixing typo
2019-07-18 14:06:20 -04:00
Yotam Mann
3efd706458
omiting defaults from object
...
useful for removing redundant properties in get/set
2019-07-18 14:06:10 -04:00
Yotam Mann
8b501cca7e
only using the attributes which are available in getDefaults()
2019-07-18 14:05:42 -04:00
Yotam Mann
b36d57d5d0
deriving OmniOscillatorOptions from ConditionalOptions
2019-07-18 14:04:21 -04:00
Yotam Mann
7f47b50917
converting AmplitudeEnvelope to ts
2019-07-18 11:24:32 -04:00
Yotam Mann
6f040c3d2c
checking that harmonicity is undefined when not set to AM or FM osc
2019-07-18 11:24:20 -04:00
Yotam Mann
c1ade5494a
using connectSignal method internally
2019-07-18 11:23:45 -04:00
Yotam Mann
11a353a117
linting
2019-07-18 10:21:42 -04:00
Yotam Mann
ea21746bc3
removing console
2019-07-18 10:21:34 -04:00
Yotam Mann
9d131effb1
converting Envelope to ts
2019-07-18 10:21:27 -04:00
Yotam Mann
698dee1e73
changing <pre> tags to markdown
2019-07-17 17:40:47 -04:00
Yotam Mann
71e9176eba
moving common implementation to one spot
2019-07-17 13:46:48 -04:00
Yotam Mann
5d36e4a523
only use relative imports
2019-07-17 13:12:21 -04:00
Yotam Mann
70e945396d
adding Omni to source export
2019-07-17 12:56:44 -04:00
Yotam Mann
0101edf173
converting OmniOscillator to ts
2019-07-17 12:55:34 -04:00
Yotam Mann
e7b898eb1a
souce has 1 output
2019-07-17 12:54:42 -04:00
Yotam Mann
11aed433d7
don't try to set an undefined attribute
2019-07-17 12:54:25 -04:00
Yotam Mann
58bf79a872
increasing comparison threshold
2019-07-16 17:15:55 -04:00
Yotam Mann
7c6a873121
adding oscillator types
2019-07-16 17:10:47 -04:00
Yotam Mann
38d1197359
converting PWMOscillator to typescript
2019-07-16 17:10:07 -04:00
Yotam Mann
6bd5a0d45b
updating docs
2019-07-16 17:09:54 -04:00
Yotam Mann
ad7d928be8
adding some doc image
2019-07-16 16:47:07 -04:00
Yotam Mann
f13336bcaa
converting FatOscillator to ts
2019-07-16 16:30:09 -04:00
Yotam Mann
8c3c2fe9d1
removing old type classes
2019-07-16 16:05:58 -04:00
Yotam Mann
b339dee564
converting FMOscillator to typescript
2019-07-16 16:05:48 -04:00
Yotam Mann
e2ede8e8cc
marking signal value to readonly
2019-07-16 16:05:38 -04:00
Yotam Mann
e0a83ef8cd
removing old js files
2019-07-16 15:44:43 -04:00
Yotam Mann
45a254f7e6
setting unused method to abstract
...
should be implemented by extending classes
2019-07-16 15:44:36 -04:00
Yotam Mann
7f17209530
tear down created classes on context close
2019-07-16 15:41:59 -04:00
Yotam Mann
4c4db4b614
fully converting all Time classes to ts
2019-07-16 15:29:34 -04:00
Yotam Mann
4e11f13336
adding midi to frequency conversion
2019-07-16 09:32:36 -04:00
Yotam Mann
1277564f2c
making oscillator props readonly
2019-07-16 09:32:22 -04:00
Yotam Mann
47d991f09c
fixing type error
...
introduced while testing some things out
2019-07-15 15:39:47 -04:00
Yotam Mann
990c0f56ed
using type instead of string types
2019-07-15 15:37:25 -04:00
Yotam Mann
d0b73ded77
WaveShaper doesn't need to use SignalOptions
...
uses ToneAudioNodeOptions instead
2019-07-15 15:10:11 -04:00
Yotam Mann
f553fc3b63
surrounding diagram with pre tags
2019-07-15 12:33:40 -04:00
Yotam Mann
7c2e675c52
fixing typo and allowing for extended oscillator types
2019-07-15 12:33:31 -04:00
Yotam Mann
3b22baea67
updating doc diagram
2019-07-15 12:32:48 -04:00
Yotam Mann
4fc334c9c7
converting PulseOscillator to typescript
2019-07-15 12:22:55 -04:00
Yotam Mann
ada1423bd4
Merge branch 'dev' into typescript
2019-07-15 09:46:22 -04:00
Yotam Mann
ab9b363965
converting AMOscillator to ts
2019-07-15 09:46:10 -04:00
Yotam Mann
b8f0d1d576
exporting OscillatorInterface
...
to make sure that all oscillators have the same interface
2019-07-15 09:45:56 -04:00
Yotam Mann
1ba36bde6a
connectSeries uses the ToneAudioNode's connect method
...
this is necessary when connecting from a signal since there is additional logic in it's connect method
2019-07-15 09:45:05 -04:00
Yotam Mann
80e5da5bd4
making paths relative
2019-07-11 17:33:04 -04:00
Yotam Mann
7388548e9d
also set signal value for AudioParamsq
...
accidentally removed this
2019-07-11 17:32:57 -04:00
Yotam Mann
e328619fb4
converting Abs to ts
2019-07-11 17:20:11 -04:00
Yotam Mann
95bc7bed7e
linting
2019-07-11 17:15:00 -04:00
Yotam Mann
71729c0827
Signal doesn't overwrite the output if not set to 'override'
2019-07-11 17:14:23 -04:00
Yotam Mann
d6143a0e60
adding new base class for some signals
...
replaces SignalBase
2019-07-11 17:13:58 -04:00
Yotam Mann
182d1040db
converting WaveShaper to ts
2019-07-11 17:13:43 -04:00
Yotam Mann
117b4667d4
fixing test
2019-07-11 17:13:11 -04:00
Yotam Mann
d5014d36a8
convert to ts
2019-07-11 17:11:29 -04:00
Yotam Mann
8e551ff755
convert to ts
2019-07-11 17:11:17 -04:00
Yotam Mann
8a9c8f2edf
convert to ts
2019-07-11 17:11:07 -04:00
Yotam Mann
70086527ea
changing OscillatorOptions -> ToneOscillatorOptions
...
to avoid any potential conflicts
2019-07-11 12:45:20 -04:00
Yotam Mann
b41646a0ee
elaborating on lookAhead
2019-07-11 11:13:23 -04:00
Yotam Mann
b58577ed5e
working on exported Tone object
...
for global build
2019-07-11 11:05:03 -04:00
Yotam Mann
219462fe9e
cleaning up circular deps
2019-07-11 09:57:06 -04:00
Yotam Mann
c658980915
removing circular dependencies in types
2019-07-11 09:21:12 -04:00
Yotam Mann
bf214dc106
removing call to super.dispose()
2019-07-11 00:37:25 -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
a8e8f53aab
using relative paths
2019-07-11 00:14:53 -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
Yotam Mann
fde2ff65eb
testing TickSignal outputs a signal
2019-07-10 23:33:58 -04:00
Yotam Mann
ae2804fbc5
implement syncSignal
2019-07-10 23:33:36 -04:00
Yotam Mann
a94a99c94e
TickSignal outputs a signal
2019-07-10 23:33:12 -04:00
Jared Ellison
6eaa8328cb
Update JSDoc for loop property of Tone.Part and Tone.Event
2019-07-08 13:43:04 -04:00
Jared Ellison
a3d4cd2007
Refactor _rescheduleEvents to prevent repeating events when loop = 1
2019-07-05 10:57:39 -04:00
tambien
1c3461b924
fixing chain behavior
2019-06-24 14:35:32 -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
tambien
db35b3ae3a
linting
2019-06-24 13:41:38 -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
2f9ef33984
adding index files for each of the directories
2019-06-24 13:25:48 -04:00
tambien
d53cf17c8a
needed to pass compiler
2019-06-23 15:04:13 -04:00
tambien
f7033143fc
no longer necessary
2019-06-23 15:04:01 -04:00
tambien
74671b0bda
transport is no longer possibly undefined
...
since Context requires initialization step
2019-06-23 15:03:54 -04:00
tambien
62b4b47fd1
prefering toDestination over toMaster
...
more consistent with Web Audio API
2019-06-23 15:03:31 -04:00
tambien
b276320393
Destination (Master) typescripting
2019-06-23 15:03:04 -04:00
tambien
8b4f1cfa19
Global now only manages global Context
...
global AudioContext was moved to AudioContext.ts
2019-06-23 15:02:38 -04:00
tambien
8fd8d95a48
transport and destination created in separate initialization step
2019-06-23 14:59:27 -04:00
tambien
de6b91c9d0
using global AudioContext created on init
2019-06-23 14:58:57 -04:00
tambien
a887660792
updating docs
2019-06-23 14:48:21 -04:00
tambien
017f866ee3
options does not require keys if empty
2019-06-23 14:47:44 -04:00
tambien
0194826467
moving initial AudioContext to separate file
2019-06-23 14:47:21 -04:00
tambien
8602ae13db
first node was connected to itself
2019-06-23 14:46:59 -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
Yotam Mann
5f6f6f9e0a
[wip] convert Filter to .ts ( #503 )
...
* Convert filter.js to typescript
* remove unneeded imports in tests
2019-06-21 14:09:49 -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
bc61ddaa2b
simplifying logic
2019-06-19 18:17:24 -04:00