Yotam Mann
559cdae1fb
added immediate
method
2019-10-29 14:29:52 -04:00
Yotam Mann
5baeddf451
updating examples
2019-10-28 21:28:53 -04:00
Yotam Mann
304802d515
using different cancel methods depending on what is scheduled
2019-10-28 16:41:01 -04:00
Yotam Mann
fbd1e3c450
using floating point comparisons
2019-10-28 16:40:30 -04:00
Yotam Mann
cd37884156
removing unused deps
2019-10-28 15:11:42 -04:00
Yotam Mann
1134ce4c69
making sure that the attack is not canceled if the release is scheduled once it ends
...
fixes #560
2019-10-28 14:22:10 -04:00
Yotam Mann
f4dcc08ed2
create a global Draw object (linked to the Context)
2019-10-28 12:12:27 -04:00
Yotam Mann
b1351af339
fixing example
2019-10-28 11:50:32 -04:00
Yotam Mann
49dfe371a3
exporting all core classes
...
also exporting ftom and mtof
2019-10-28 11:50:13 -04:00
Yotam Mann
7d23ae7bad
removing unused types
2019-10-28 11:40:09 -04:00
Yotam Mann
87ae677a59
linting
2019-10-28 11:38:17 -04:00
Yotam Mann
3a63154b7c
using the unit name instead of the unit type as the Param generic
2019-10-28 11:37:53 -04:00
Yotam Mann
d2b064f41e
docs: working on code examples
2019-10-25 16:54:33 -04:00
Yotam Mann
4266d2b93c
updating examples
2019-10-24 18:01:27 -04:00
Yotam Mann
b2a9c9a303
working on examples
2019-10-23 16:30:07 -04:00
Yotam Mann
42cfbcd456
linting docs and examples
2019-10-22 23:04:52 -04:00
Yotam Mann
ba2af1fb03
creates a new AudioContext when Context is created
...
used to reuse same context.
2019-10-13 23:20:42 -04:00
Yotam Mann
f753aef015
Adding range test
2019-10-09 12:38:10 -04:00
Yotam Mann
467cc48c8c
adding isOffline flag
...
helpful for some behaviors which only occur in the online AudioContext
2019-10-04 11:51:52 -04:00
Yotam Mann
889dafa45e
feat: OfflineContext returns a ToneAudioBuffer
...
instead of an AudioBuffer
2019-10-03 18:03:21 -04:00
Yotam Mann
81887b91a3
refactor: initialize Context when getting destination
or transport
2019-10-03 17:33:39 -04:00
Yotam Mann
11544708fc
feat: OfflineContext yields thread every second of audio rendered
...
so that it doesn't block the thread.
fixes #436
2019-10-03 17:29:30 -04:00
Yotam Mann
a2153571c2
types: correcting typing
2019-09-29 17:25:55 -04:00
Yotam Mann
c155d716ac
removing logging
2019-09-29 13:05:25 -04:00
Yotam Mann
1a2d82f33b
only mark certain Params as swappable
2019-09-29 12:20:54 -04:00
Yotam Mann
eb7b14fdc8
fixing docs
2019-09-29 10:19:08 -04:00
Yotam Mann
2ee8cb1a52
feat: Wrapper around the AudioWorkletNode
2019-09-27 17:55:09 -04:00
Yotam Mann
23ca0f9688
feat: Can set the parameter after constructing Param
...
used in the new ToneAudioWorklet node
2019-09-27 17:53:42 -04:00
Yotam Mann
f7bdd7528f
feat: adding AudioWorkletNode constructors to Context
2019-09-27 17:52:37 -04:00
Yotam Mann
9eb395509c
style: using javascript string template interpreter for vscode
2019-09-27 17:50:49 -04:00
Yotam Mann
732efd563f
can pass in min and max values into constructor
2019-09-24 17:12:12 -04:00
Yotam Mann
a08af1a39c
createIIR takes either number[] of float32array
2019-09-23 10:00:43 -04:00
Yotam Mann
ec3c1381c5
removing unused stuff
2019-09-20 20:04:45 -04:00
Yotam Mann
a68dea0a02
adding createMediaStreamSource
...
should create BaseContext class to better handle this case
2019-09-20 18:50:22 -04:00
Yotam Mann
dd22e298e5
exporting debug
2019-09-20 17:49:54 -04:00
Yotam Mann
c35666c6fa
moving epsilon comparisons to it's own file
2019-09-20 17:44:55 -04:00
Yotam Mann
be634eb093
running all logging and warning through Logger object
...
makes it possible to implement a Logger interface to visualize logging.
2019-09-20 00:31:43 -04:00
Yotam Mann
4be7043bea
testing matching within small epsilon
2019-09-20 00:19:38 -04:00
Yotam Mann
f1a0990ee9
comparisons all done within some small epsilon
...
fixes floating point errors
fixes #422
2019-09-20 00:19:19 -04:00
Yotam Mann
315070afca
implemented the TODO feature
...
removing comment
2019-09-20 00:18:02 -04:00
Yotam Mann
be4bf84369
inforce increase in time
2019-09-19 16:56:48 -04:00
Yotam Mann
ace049a9a2
render just the clock portion without the audio
2019-09-19 16:55:09 -04:00
Yotam Mann
7a85c4b68a
some debugging
2019-09-19 16:53:53 -04:00
Yotam Mann
38ef65fcb2
TimelineValue holds a single schedulable value
...
get/set based on time.
2019-09-18 11:15:10 -04:00
Yotam Mann
cf957ff37e
Looping is a schedulable parameter
...
fixes #448
2019-09-17 19:33:41 -04:00
Yotam Mann
e44005138d
quote props only when needed
2019-09-17 14:46:26 -04:00
Yotam Mann
1709f46d83
testing progress when not looping
2019-09-17 14:18:05 -04:00
Yotam Mann
142e169e74
initialize the context before closing it
2019-09-17 14:07:34 -04:00
Yotam Mann
44cbe181df
removing props which are not in the default obj
2019-09-17 12:20:37 -04:00
Yotam Mann
069a114a31
fixing indentation
2019-09-16 11:09:44 -04:00
Yotam Mann
82b2376959
updating categories
2019-09-16 11:05:24 -04:00
Yotam Mann
401d278063
Adding categories to all the nodes
2019-09-16 10:15:23 -04:00
Yotam Mann
e8e785ffdd
linting
2019-09-15 23:32:40 -04:00
Yotam Mann
be9fba41b7
updating docs
2019-09-15 14:39:55 -04:00
Yotam Mann
852c78df79
updating internal links
...
to [[style]]
2019-09-14 19:55:50 -04:00
Yotam Mann
e63cbf8a82
linting
2019-09-14 19:55:39 -04:00
Yotam Mann
2d93d7ae23
updating docs
2019-09-14 18:44:37 -04:00
Yotam Mann
1bde88a19b
linting
2019-09-14 18:12:44 -04:00
Yotam Mann
61c9f191b6
removing calls to tslint
...
getting rid of tslint from project and using eslint instead
2019-09-14 18:06:46 -04:00
Yotam Mann
286692e67b
updating block comment style
2019-09-14 17:47:07 -04:00
Yotam Mann
261a5f4c3b
normalizing whitespace in comments
2019-09-14 16:39:18 -04:00
Yotam Mann
39f3f42b64
Revert "Merge branch 'pr/542' into typescript"
...
This reverts commit b94d590a0b
, reversing
changes made to 9be3ffeb05
.
2019-09-12 16:03:35 -04:00
Yotam Mann
b94d590a0b
Merge branch 'pr/542' into typescript
2019-09-12 15:56:05 -04:00
Yotam Mann
dd105d4622
hiding unused variables
2019-09-12 15:53:21 -04:00
Yotam Mann
f6749c043f
updating types
2019-09-12 15:53:05 -04:00
Yotam Mann
7aa426e973
Updating docs
2019-09-12 15:52:38 -04:00
Jack Anderson
7e6ea23f49
optimize Tone.isObject
...
- this should be about 25% faster
- taken from https://github.com/jonschlinkert/isobject
- custom perf test: https://jsbench.me/24k0gdoxa6/1
2019-09-12 09:45:41 -07:00
Yotam Mann
fd75074ab0
testing 'off' without an 'on'
2019-09-10 10:45:41 -04:00
Yotam Mann
8205db5485
removing unused var
2019-09-10 10:08:01 -04:00
Yotam Mann
7f1d529918
removing unused dep
2019-09-10 00:16:23 -04:00
Yotam Mann
77c6a18cd8
changing name of unused var
2019-09-10 00:06:52 -04:00
Yotam Mann
009d92909e
simplifying the add method
...
doesn't need to test at both if statements assuming that the API is followed
2019-09-09 23:51:31 -04:00
Yotam Mann
4ae119eb77
testing that the underlying buffer is the same
...
not necessarily the same ToneAudioBuffer obj
2019-09-09 23:51:09 -04:00
Yotam Mann
2fb44774c7
removing unused import
2019-09-09 23:50:53 -04:00
Yotam Mann
481fde2757
allows ToneAudioBuffers to add a buffer which is not loaded
...
also simplifies code a little
2019-09-09 23:39:00 -04:00
Yotam Mann
7be307926f
test that a warning is fired
2019-09-09 23:38:34 -04:00
Yotam Mann
58a7d090a7
using updated param generic
2019-09-08 14:08:25 -04:00
Yotam Mann
f96f5ff892
pointing to updated param as input
2019-09-08 14:08:18 -04:00
Yotam Mann
8669f2b28e
specifying type in Param generic
2019-09-08 14:07:58 -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
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
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
95c45a5b7a
adding more documentation to Tone.start
2019-09-05 14:46:26 -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
75a35108af
name is a readonly string
2019-09-04 18:38:04 -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
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
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
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
a54ab4ea68
using typechecks from standardized-audio-context
2019-08-26 16:52:21 -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
ce88eb9b88
using createAudioContext and createOfflineAudioContext
...
easier to eventually move those to standardized-audio-context
2019-08-19 11:15:53 -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
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
ed88e6bf10
adding typing to 'connect' method
2019-08-14 13:01:16 -04:00
Yotam Mann
0ad8d40c79
making overridden abstract
...
implemented by extending classes
2019-08-12 14:18:34 -04:00
Yotam Mann
0b1a6bee58
updating typing
2019-08-12 13:17:37 -04:00
Yotam Mann
9bd9feb7fb
removing unused import
2019-08-12 10:14:55 -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
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
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
70b76c317c
adding TONE_DEBUG_CLASS to the window object
2019-08-08 17:00:42 -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
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
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
8af43901bf
exposing utils, units and param
2019-08-04 13:12:39 -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
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
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
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
52bcac2599
setting name to readonly
2019-08-02 21:09:35 -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
344bd48bc0
removing js files
2019-08-02 10:37:07 -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
d1716266e7
had slice logic backwards
...
oops
2019-07-30 10:52:49 -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
Yotam Mann
d9eae0123f
removing window reference
2019-07-26 11:50:59 -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
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
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
9788bcc847
optimizing slice implementation
...
no longer requires iteration over the arrays
2019-07-25 09:08:34 -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
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
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
61a02e6633
toTicks can take a class as well
2019-07-23 15:17:11 -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
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
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
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
622b547e32
time is optional in toSeconds
2019-07-22 16:18:01 -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
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
f8d845cede
return from 'get' should be serializable
2019-07-19 11:09:28 -04:00
Yotam Mann
9306f9e797
RecursivePartial is useful for nested properties
2019-07-18 14:06:53 -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
11aed433d7
don't try to set an undefined attribute
2019-07-17 12:54:25 -04:00
Yotam Mann
8c3c2fe9d1
removing old type classes
2019-07-16 16:05:58 -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