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