Commit graph

2320 commits

Author SHA1 Message Date
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