Commit graph

652 commits

Author SHA1 Message Date
tambien
56800fe11b Disconnecting but not disposing onend
addresses #463
2019-03-19 20:26:28 -04:00
tambien
ae8be83cc5 fixing typo
fixes #462
2019-03-14 10:29:51 -04:00
tambien
023758425b use the playbackRate when computing the offset of a synced player
fixes #349
2019-03-12 11:25:33 -04:00
tambien
a3cc8d0f60 guarding against double disposing 2019-03-08 13:01:09 -05:00
tambien
a23ba73fc4 dispose oscillator onended 2019-03-08 12:17:27 -05:00
tambien
57d30ff6d6 optimizing case of basic oscillator types
fixes #427
2019-03-08 12:17:20 -05:00
tambien
d601b4be3a dispose the buffer onended
addresses #378
2019-03-08 11:30:00 -05:00
tambien
c023181579 linting 2019-02-15 13:03:10 -05:00
tambien
cb156fc6a3 no need to test if _wave exists
should always exist
2019-02-01 11:50:15 -05:00
tambien
a9adacb794 using Tone.connect for native nodes 2019-01-28 11:55:48 -05:00
tambien
2780cac504 using Tone.connect for connections with native nodes
addresses #421
2019-01-28 11:02:15 -05:00
tambien
610b847f4d fixing docs 2019-01-27 17:14:04 -05:00
tambien
87909ca4a3 BufferSourceNode shim is no longer needed
fixed issue in Safari which was resolved
2019-01-27 13:52:23 -05:00
tambien
ed71d8141b amd to es6 import/export
no longer using AMD (require.js) style imports, and beginning to move to es6 "import/export" statements everywhere.
2019-01-27 13:05:20 -05:00
tambien
0ba72ac93a clamping start/stop time to currentTime
this way if someone passes in start(0), it will just play immediately and not break things.

addresses #424
2019-01-23 16:19:07 -05:00
tambien
ffe3d434c6 closes the stream before reopening it 2019-01-08 11:26:57 -05:00
tambien
e739c4f1f3 adding baseType to all oscillators
makes getting/setting through interface easier
2019-01-08 00:13:48 -05:00
tambien
1ca4242323 'get' does not return partials array for basic types 2018-12-28 16:00:03 -05:00
tambien
0c10c80b12 only set the stop when it's not synced
otherwise it reschedules multiple stops
2018-12-26 15:42:05 -05:00
tambien
fd62e31a94 loaded boolean indicates when GrainPlayer is loaded
consistent with Tone.Player
2018-12-23 18:13:57 -05:00
tambien
9178798993 computed duration can be longer than the buffer length
because of playback rate changes, the duration can be longer than the buffer duration.

fixes #375
2018-12-23 13:50:02 -05:00
tambien
795e0d90d7 removing position tracking from player
fixes #361
2018-12-23 13:46:52 -05:00
tambien
c20f703c40 making sure that the type is never set to custom+partialCount 2018-12-21 15:31:36 -05:00
tambien
6c748e3e9d get and set the sourceType
this allows slight decoupling from combining everything in the 'type' string
2018-12-21 15:29:08 -05:00
tambien
f199af1f31 setting gain to 0 initially keeps it from popping 2018-12-17 12:41:14 -05:00
tambien
81f6ae1144 testing that a type can be passed into the constructor as an object
and gotten with the 'get()' method
2018-12-09 20:40:46 -05:00
tambien
85a606d81d documenting partialCount
[skip ci]
2018-12-09 18:58:47 -05:00
tambien
761de621d8 adding partialCount parameter
offers alternative "non string" way to set the partials to an osc type
2018-12-09 18:45:01 -05:00
Paul Varache
cfa23cfd24 Make noiseArrays generate samples lazily (#386)
* Make noiseArrays generate samples lazily

* getter -> get

* Create noiseBuffers instead of arrays

fixes #384
2018-09-10 14:20:02 -04:00
tambien
3d1202043a all modules are relative paths
simplifies deep references to individual files
2018-08-26 22:29:17 -04:00
tambien
ca5dccf1cb extends AudioNode 2018-07-30 13:30:21 -04:00
Yotam Mann
f76beaf916 moving to updated BufferSource fade out api
Player still fades from the end
2018-06-20 15:08:16 -04:00
Yotam Mann
fec49b6936 stops clock after 1 iteration when loop = false
removing seek method. adjusts for playbackRate when scheduling grain duration
2018-06-20 14:57:42 -04:00
Yotam Mann
405a841db0 stop method is beginning of fadeOut curve instead of end
simplifies code

fixes #328
2018-06-20 14:55:43 -04:00
tambien
2d1c2dc705 no noise supression 2018-06-13 15:57:05 -04:00
Yotam Mann
26df78b0db handles start/stop/restart better in many situations
less prone to errors where the OscillatorNode is silent after starting
2018-06-12 23:48:15 -04:00
Yotam Mann
ebbb1ef8bb log and assert help in debugging classes 2018-06-12 23:47:30 -04:00
tambien
534b97bea4 removing unnecessary type from TickSignal 2018-06-05 22:56:47 -04:00
Yotam Mann
bbf2929b6f rotating the phase of the oscillator group
addresses #354
2018-05-29 10:35:12 -04:00
Yotam Mann
4cb60ca111 Merge branch 'dev' of https://github.com/Tonejs/Tone.js into dev 2018-05-28 18:06:44 -04:00
Yotam Mann
5b20f572a3 removing unused lines 2018-05-28 18:01:19 -04:00
tambien
b8c5353638 Merge branch 'dev' of https://github.com/Tonejs/Tone.js into dev 2018-05-24 16:58:21 -04:00
Yotam Mann
54276555f2 correctly restarting PulseOscillator 2018-05-20 17:36:07 -04:00
Yotam Mann
ee18f87106 assign basic oscillator type
typo!
2018-05-20 17:25:39 -04:00
Yotam Mann
a7b783b0a5 updating docs
[skip ci]
2018-05-19 15:07:58 -04:00
tambien
9b78520038 noting that Oscillator is better for most cases 2018-05-17 18:38:53 -04:00
Charles Holbrow
51ac1a2100 Sampler Instrument can play entire sample, even when pitch shifting down. (#335)
* Sampler instrument does not truncate playback when pitch shifting down

* `BufferSource.start` defaults to playing the entire buffer, respects `this.playbackRate`

Previously, the Buffer would truncate the sample when `playbackRage` is less than 1.

Within the `start` method, this commit also tightens the scope of `var computedDur`, so
that it is accessible only where it is used.
2018-04-25 14:27:50 -04:00
Yotam Mann
18fa10086d making the inner forEachBetween exclusive of the end time 2018-03-30 17:57:35 -04:00
Yotam Mann
433cd78689 fixing infinite loop when stop and start are scheduled at the same time
validating change with test
2018-03-30 13:15:53 -04:00
Yotam Mann
65f15a1ef2 restart method to all the oscillators 2018-03-06 00:02:49 -05:00
Yotam Mann
7a5b872f76 using more accurate seconds counter for syncedStop 2018-03-05 22:29:00 -05:00
Yotam Mann
8c2acd03d5 removing retrigger, maintaining array of activeSources 2018-03-05 22:26:37 -05:00
Yotam Mann
5ded029206 getSecondsAtTime returns elapsed seconds
also invoking event immediately if the window has already passed
2018-03-05 22:25:57 -05:00
Yotam Mann
103f01bdc7 getState at time, does not throw error if already stopped 2018-03-05 22:25:12 -05:00
Yotam Mann
dcd5a0d0e9 documenting getStateAtTime 2018-03-05 13:00:45 -05:00
Yotam Mann
a5503e02d2 linting 2018-03-05 12:25:33 -05:00
Yotam Mann
a80ae0656b Tone.isDefined replaces !Tone.isUndef 2018-03-05 11:32:08 -05:00
Yotam Mann
701092d6e2 Fixing documentation error
fixes #316
2018-03-05 10:31:32 -05:00
Yotam Mann
efa06f43f1 testing that the stop event is not the first event 2018-03-01 14:44:20 -05:00
Yotam Mann
3d0a8005b7 removing isPast warning
clutters up tests, rarely helpful for debugging
2018-03-01 14:38:40 -05:00
Yotam Mann
4dd5c0a464 get the playback position of the playing buffer
integrates TickSource to track position even with playbackRate changes

Fixes #292 and Fixes #307
2018-03-01 14:15:37 -05:00
Yotam Mann
d98b10d6f8 documenting oscillator node 2018-03-01 14:08:35 -05:00
Yotam Mann
23932cbfa6 can cancel scheduled stop and setTick events 2018-03-01 14:06:03 -05:00
Yotam Mann
40530e3c16 'stop' is invoked on the last scheduled stop value 2018-03-01 14:02:11 -05:00
Yotam Mann
f06516d76d TickSource handles pause events
more flexible and accurate timing calculations
2018-02-27 17:02:17 -05:00
Yotam Mann
cf138c03b4 TickSource tracks elapsed ticks can start/stop
no pause yet
2018-02-25 17:25:32 -05:00
Yotam Mann
65f166570b Sources call 'restart' method if already started when 'start' is invoked 2018-02-08 11:10:53 -05:00
Yotam Mann
5eec68f9d0 compare rendered output to previously rendered audio files 2018-02-05 13:55:37 -05:00
Yotam Mann
a99e582c3c correctly handles changing playbackRate after source is started 2018-02-05 13:54:16 -05:00
Yotam Mann
457c7b221c optimizing instrument by only turning on oscillators when active 2018-02-05 13:50:14 -05:00
Yotam Mann
2fe32576ed using OscillatorNode in Oscillator 2018-02-05 00:40:53 -05:00
Yotam Mann
0ee67d8445 proper disposal of timeout 2018-02-05 00:40:42 -05:00
Yotam Mann
f086f58c75 OscillatorNode is a fire-and-forget Oscillator 2018-02-04 22:55:19 -05:00
Yotam Mann
c004145dc0 optimizing basic waveform case 2018-02-04 11:33:54 -05:00
Yotam Mann
177130ec36 BufferSourceNode shim for OfflineAudioContext on iOS
addresses #237
2018-01-21 22:33:02 -05:00
Yotam Mann
87217d1ab4 does not invoke stop from start in case playbackRate changes
fixes #292
2018-01-17 13:18:51 -05:00
Yotam Mann
fd84c251f7 eslinting 2018-01-03 12:07:06 -05:00
Yotam Mann
dded291a25 linting 2018-01-02 10:37:27 -05:00
Yotam Mann
077ae6d69a Source sync and start after Transport is already running 2018-01-02 10:35:39 -05:00
Yotam Mann
8ed7a87b45 correcting spelling 2017-12-29 20:44:16 -05:00
Yotam Mann
5ba49351d9 additional safety flag for if the internal BufferSourceNode is actually started
checking if the offset < duration keeps safari from going into invalid
state
2017-12-28 18:43:53 -05:00
Yotam Mann
3f996c2bc0 requiring BufferSource 2017-12-28 18:43:05 -05:00
Yotam Mann
e3d9cd136a use 'this.now()' instead of Tone.now() 2017-12-27 11:45:37 -05:00
Yotam Mann
e4380a048b player can be constructed with unloaded Tone.Buffer
onload callback is invoked when the Buffer parameter is loaded

fixes #273
2017-12-15 23:06:06 -05:00
Yotam Mann
528882be53 does not require device and deviceId in gUM 2017-11-29 15:38:25 -05:00
Yotam Mann
3e7e351e4a fixing typo in else statement 2017-11-29 15:27:01 -05:00
Yotam Mann
f5e6d973c9 only throw 'no matching device error' when a specific device is requested 2017-11-29 15:22:58 -05:00
Yotam Mann
4316530b16 linting 2017-10-26 16:03:00 -04:00
Yotam Mann
c58fad41f0 linting 2017-10-26 15:26:04 -04:00
Yotam Mann
7a870296bc linting 2017-10-26 01:07:53 -04:00
Yotam Mann
903c87ff72 user media does not look for 'default'
instead takes the first device if nothing is specified
2017-10-26 00:50:22 -04:00
Yotam Mann
9400091609 modulus the offset by the duration in case the offset > duration 2017-10-25 23:05:30 -04:00
Yotam Mann
305fdc02da moving shim to another file 2017-10-25 23:00:37 -04:00
Yotam Mann
0d85d90f5c reducing volume further 2017-10-25 23:00:20 -04:00
Yotam Mann
a82ab45132 linting 2017-10-25 17:57:52 -04:00
Yotam Mann
cb2a982c39 linting 2017-10-21 19:02:46 -04:00
Yotam Mann
d61a22e7f4 linting 2017-10-21 13:52:06 -04:00
Yotam Mann
da26a1c94c keeps track of BufferSources on the state timeline
addresses #258
2017-10-21 13:49:48 -04:00
Yotam Mann
916430ac2e increasing the memory of the state timeline 2017-10-21 13:44:54 -04:00
Tim Pulver
202f6fd03f Fix doc: singular -> plural (#264) 2017-09-29 10:26:50 -04:00
Yotam Mann
6d38440379 using exponentialApproachValueAtTime 2017-09-20 19:04:49 -04:00
Yotam Mann
4abe8a78cf stop the source to allow for garbage collection 2017-09-19 22:45:40 -04:00
Yotam Mann
b8648cc8ac removing deprecated MultiPlayer class 2017-09-17 12:31:25 -04:00
Yotam Mann
39389e810c warning if scheduling time is in the past
addresses #260
2017-09-15 17:50:12 -04:00
Yotam Mann
33e7bd0c13 adding "curve" to BufferSource fades 2017-09-13 18:30:43 -04:00
Yotam Mann
e6faa39dba classes which generate or process sound extend Tone.AudioNode 2017-08-27 17:50:31 -04:00
Yotam Mann
ffa4cbd0f0 updating comment to reflect that it extends Tone.Source 2017-08-27 16:25:43 -04:00
Yotam Mann
5fe3e9106c using async callback for getting context
for classes that need it on init
2017-08-13 21:37:32 -04:00
Yotam Mann
faee7175e1 added link in deprecation notice 2017-08-08 20:50:55 -04:00
Yotam Mann
62e05f6d57 styling
[skip ci]
2017-06-26 18:19:30 -04:00
Yotam Mann
d69770eea3 don't remove all of the Transport synced events with Source.unsync 2017-06-21 17:28:50 -04:00
Yotam Mann
e105387072 Players can fadeIn/Out 2017-06-19 15:18:50 -04:00
Yotam Mann
83866e6492 adding fadeIn/Out to Player 2017-06-19 15:11:15 -04:00
Yotam Mann
2de449b74c fadeOut is subtracted from end of the sample
instead of the stop time being the beginning of the fade out.
2017-06-19 15:03:10 -04:00
Yotam Mann
59a276d8fe including lookAhead in now() removes need for adding blockTime to reduce clicks 2017-05-28 21:52:28 -04:00
Yotam Mann
81df4a9a0e deprecating multiplayer
use Tone.Players instead
2017-05-28 21:38:31 -04:00
Yotam Mann
edf14cffe4 GrainPlayer no longer uses MultiPlayer
uses BufferSource instead
2017-05-28 21:27:59 -04:00
Yotam Mann
2328413a8f stops playing if invoked with 'stop' at an earlier time
does not stop playing if `stop` is invoked with a later time
2017-05-28 21:20:17 -04:00
Yotam Mann
54b11df1dd simplifying BufferSource playback offset > loopEnd logic 2017-05-23 09:30:17 -04:00
Yotam Mann
ea4078348f don't nullify source when stopped
fixes #241
2017-05-22 16:11:50 -04:00
Yotam Mann
c8c436cbf2 Tone.Players wraps up multiple Tone.Player objects
fixes #215
fixes #217
2017-05-21 20:40:20 -07:00
Yotam Mann
a6bb882758 readonly loaded boolean if the buffer is loaded 2017-05-21 20:25:35 -07:00
Yotam Mann
cb1937062c throwing error when passed in device is not found 2017-05-02 20:58:14 -04:00
Yotam Mann
488299a822 Player uses BufferSource 2017-05-02 12:15:00 -04:00
Yotam Mann
fd25ee83e0 fixing linting errors 2017-05-01 19:00:31 -04:00
Yotam Mann
b760821234 BufferSource.buffer is a Tone.Buffer 2017-05-01 18:52:53 -04:00
Yotam Mann
a5a673f6ed scheduling the stop time at buffer.duration - offset 2017-05-01 18:00:31 -04:00
Yotam Mann
61cad0f1fc BufferSource uses context's setTimeout method for onended
removed source.stop method. stopping now relies entirely on the gain
node.

fixes #230
fixes #233
2017-05-01 17:46:51 -04:00
Yotam Mann
b927395825 making defaultArg static 2017-04-30 15:03:49 -04:00
Yotam Mann
f7b7600ac9 fixing jsdoc errors
[skip ci]
2017-04-30 11:16:35 -04:00
Yotam Mann
4bda177b83 gainToDb, dbToGain, intervalToFrequencyRatio now static functions 2017-04-26 23:21:26 -04:00
Yotam Mann
4bd1044cb4 using only static type queries 2017-04-26 00:27:28 -04:00
Yotam Mann
edfa168713 moving to static type queries
i.e. this.isString -> Tone.isString
2017-04-26 00:24:19 -04:00
Yotam Mann
c544255953 using defaults in last remaining classes 2017-04-26 00:07:10 -04:00
Yotam Mann
2030034494 sources to new defaults api
and es6 classes prep
2017-04-26 00:00:01 -04:00
Yotam Mann
b5d6647c12 optimizing noise array creation
only created on initialization

addresses #216
2017-03-18 14:03:04 -04:00
Yotam Mann
10431589d2 moving shims to their respective files
hopefully simplifies maintenance
2017-03-13 01:12:20 -04:00
Yotam Mann
dba464fcca safety checks for drift
fixes #199
2017-03-05 12:39:43 -05:00
Yotam Mann
9858dbe563 start method takes an optional duration
also includes start method docs

fixes #195
2017-02-20 14:03:36 -05:00
Yotam Mann
7549bdaa1a renaming _initAudioContext() -> on("init") 2017-02-19 11:50:15 -05:00
Yotam Mann
7f06666729 only add a stop event if it's not synced to the Transport
fixes #192
2017-01-30 23:17:14 -05:00
Yotam Mann
9669e70d4f using a local instance instead of the class in example
[skip ci]
2017-01-08 17:20:55 -05:00
Yotam Mann
7f2608ab06 updated example to Promise api
[skip ci]
2017-01-08 17:20:07 -05:00
Yotam Mann
31fe050475 getStateAtTime -> getValueAtTime 2016-12-18 22:14:14 -05:00
Yotam Mann
9c94b89eec renaming addEvent->add, removeEvent->remove, getEvent->get 2016-12-18 21:56:22 -05:00
Yotam Mann
7f23302d01 linting 2016-12-17 16:35:50 -05:00
Yotam Mann
77953eede9 ExternalInput -> UserMedia
updated to latest MediaDevice API
2016-12-17 16:26:27 -05:00
Yotam Mann
cf69804322 uses buffer as string of actual buffer 2016-12-15 13:01:48 -05:00
Yotam Mann
423029d4b8 managing multiple starts of the same note 2016-12-15 12:48:49 -05:00
Yotam Mann
b19a2b5622 using setTimeout to trigger the onended callback 2016-12-15 12:48:06 -05:00
Yotam Mann
7a1380637e Previous playback is not stopped if retrigger=true
Fixes #186
2016-12-05 21:29:55 -05:00
Yotam Mann
3ca0eadafd .load method returns a Promise 2016-11-06 19:16:31 -05:00
Yotam Mann
6c222a4b03 looping transport emits 'loopStart' / 'loopEnd' instead of 'start' / 'stop'
Fixes #173
2016-10-19 14:50:55 -04:00
Yotam Mann
64a33b0c16 correcting offset when greater than loopEnd 2016-10-11 14:03:10 -04:00
Yotam Mann
da59018fb3 convert the offset into seconds 2016-10-01 18:31:24 -04:00
Yotam Mann
b07577d53d using Tone.seconds instead of Tone.position in start/stop
so that it can be fed straight into getStateAtTime
2016-10-01 16:26:37 -04:00
Yotam Mann
0285b4d83f handle offset greater than the duration when set to loop 2016-09-29 09:57:31 -04:00
Yotam Mann
9ebd1dd7f4 min duration is 0 2016-09-26 21:13:20 -04:00
Yotam Mann
753640bdeb seek to a position in the buffer 2016-09-25 22:32:54 -04:00
Yotam Mann
827fda3d00 more accurate handling of syncing to Transport start with an offset / duration 2016-09-25 12:35:57 -04:00
Yotam Mann
e19e54b072 wrapping playbackRate in Tone.Param 2016-09-22 18:36:44 -04:00
Yotam Mann
a60328345e using Tone.Gain everywhere instead of GainNode 2016-09-19 23:53:07 -04:00
Yotam Mann
76ad44360d updating to new API 2016-09-19 23:02:42 -04:00
Yotam Mann
d8d69ae662 changing old docs which used Buffer.onload
[skip ci]
2016-09-18 20:05:01 -04:00
Yotam Mann
f5b7924bf2 make sure the duration is always positive
otherwise it throws an error
2016-08-15 23:13:09 -04:00
Yotam Mann
12392eba34 new Transport syncing API
now all calls after sync will be placed along the Transport’s timeline
instead of the AudioContext

Fixes #154
2016-08-15 23:13:09 -04:00
Yotam Mann
6d0565387e only schedule the stop in a valid state
the playbackState API has been deprecated, but the bug still is
implemented in Safari.
2016-08-11 23:58:48 -04:00
Yotam Mann
9a74728858 no longer throws error when no buffer is set
just doesn’t play instead
2016-08-09 01:14:52 -04:00
Yotam Mann
e029ead2bc small update to the docs
[skip ci]
2016-07-20 13:12:31 -04:00
Yotam Mann
f5f75718e1 buffers can be more easily passed into the options object 2016-07-06 22:36:40 -04:00
Yotam Mann
b0f11dfa5b granular synthesis player 2016-07-05 20:32:53 -04:00
Yotam Mann
20f8adebba adjust PWM scaling so it doesn't go silent 2016-06-17 14:02:24 -04:00
Yotam Mann
49c401e6d8 calling stop when duration is given.
making sure to assign _startTime using it.
2016-06-17 11:32:34 -04:00
Yotam Mann
3dece40ac6 disposing of volume 2016-06-17 10:54:35 -04:00
Yotam Mann
a2000bf42b adding volume and mute controls 2016-06-17 10:43:30 -04:00
Yotam Mann
89636d40ef ramping from current gain value 2016-06-17 10:43:06 -04:00
Yotam Mann
c70ab5d07a using fadeOut when duration is set 2016-06-16 17:30:46 -04:00
Yotam Mann
74ebee4bfe MultiPlayer keeps track of all the BufferSources it's played 2016-06-15 00:48:55 -04:00
Yotam Mann
f1e6c154e0 using linear ramping instead (sounds pretty much the same)
also compensating for the fade time when there is a passed in
duration.
2016-06-14 23:48:25 -04:00
Yotam Mann
ac0851b4c8 ensure onended callback is not invoked after disposing 2016-06-14 21:08:30 -04:00
Yotam Mann
1efc061ebd explicitly stop the AudioBufferSource when duration is given 2016-06-14 20:43:26 -04:00
Yotam Mann
e0edb67a75 Wrapper around the basic AudioBufferSourceNode 2016-06-14 19:57:46 -04:00
Yotam Mann
238cf0caa4 randomizing the noise offset
this should make two noises played starting at the same time slightly
different.
2016-06-14 19:56:18 -04:00
Yotam Mann
4628f8c47a prefixing errors with class name. 2016-05-25 20:50:46 -04:00
Yotam Mann
24692aa343 can be muted in the constructor options 2016-05-14 17:46:21 -04:00
Yotam Mann
3ecd99ecb6 moving mute code to Volume 2016-05-14 17:34:23 -04:00
Yotam Mann
c83c70d11c cancels scheduling when setting a value with .value
this makes the behavior consistent between Webkit and FF
2016-05-14 16:52:58 -04:00
Yotam Mann
733b49bcd5 using new types 2016-04-18 00:36:08 -04:00
Yotam Mann
cd29397a15 Merge branch 'dev' of https://github.com/Tonejs/Tone.js into dev 2016-04-10 16:49:51 -04:00
Yotam Mann
48c7ca5cc4 Updating documentation to show start offset time and duration arguments
Fixes #136
[skip ci]
2016-04-10 16:00:10 -04:00
Yotam Mann
90c0b5febe MultiPlayer needs Buffer as dependency 2016-03-22 16:01:32 -04:00
Yotam Mann
0a4b997bde updating start method documentation
[skip ci]
2016-03-18 11:00:07 -04:00
Yotam Mann
366e61562f canceling future states on stop
also not checking if it’s already started.

Fixes #121
2016-03-03 13:02:38 -05:00
Yotam Mann
faf434400b pull in Master like the rest of the sources 2016-02-18 14:12:30 -05:00
Yotam Mann
35e065ca80 adding error callback on open 2016-02-18 14:11:47 -05:00
Yotam Mann
9049857b80 fire-and-forget buffer player 2016-02-08 13:44:49 -05:00
Yotam Mann
de37b6798d adding Master as a dependency
Addresses #112
2016-01-31 12:20:55 -05:00
Yotam Mann
61caca5054 volume change proportional to the number of oscillators 2016-01-18 00:27:46 -05:00
Yotam Mann
5a772466ae 3 new oscillator types
and combined them into the OmniOscillator
2016-01-17 22:43:44 -05:00
Yotam Mann
9d3b5947fd Reverting to non-signal playbackRate
because Safari isn’t there yet with signal-rate playbackRate
2015-12-06 13:14:36 -05:00
Yotam Mann
74110715f5 Revert "playbackRate is now a signal"
This reverts commit f889a77f0f.
2015-12-06 13:14:36 -05:00
Yotam Mann
f6a95f2f49 default partials value 2015-11-25 21:46:54 -05:00
Yotam Mann
33dbdeff41 can set partials in constructor 2015-11-25 21:46:47 -05:00
Yotam Mann
fe5d6ac94e getting partials (correctly) for other Oscillator types 2015-11-23 23:51:36 -05:00
Yotam Mann
ac693eac4b doc'ing 2015-11-17 23:21:55 -05:00
Yotam Mann
4c3cf0d8fc handling partials member for other oscillator types 2015-11-17 22:51:10 -05:00
Yotam Mann
22ab61fb09 noise has playbackRate which adjusts the "frequency" 2015-11-10 23:47:10 -05:00
Yotam Mann
f889a77f0f playbackRate is now a signal 2015-11-10 23:46:47 -05:00
Yotam Mann
f1be71c0c2 updating to new Volume API 2015-11-02 20:08:53 -05:00
Yotam Mann
1c00c650db updating to new Volume API 2015-10-21 10:33:13 -04:00
Yotam Mann
8a7195e962 canGetUserMedia -> supported
also handling MediaStream.stop deprecation
2015-09-30 13:47:42 -04:00
Yotam Mann
971c6ddfe1 updated mic docs 2015-09-18 17:19:09 -07:00
Yotam Mann
14a780c1ca bug fixes and compatibility tests 2015-09-18 17:18:44 -07:00
Yotam Mann
2d5d4d1dfe Merge pull request #89 from polyrhythmatic/externalinput
updated Microphone, added ExternalInput
2015-09-18 15:43:11 -07:00
Yotam Mann
813a665ac8 looped player passes no duration to start method 2015-09-11 17:06:57 -04:00
Yotam Mann
95f1f15a12 giving example of repeated start and stop methods 2015-09-05 15:15:47 -04:00
Yotam Mann
eccdb659c2 renamed Tone/core/Types -> Tone/core/Type 2015-09-04 16:48:21 -04:00
Yotam Mann
09a151ea2b light styling. 2015-09-03 10:32:00 -04:00
Yotam Mann
a68b1aecd6 cleaning up syncing. 2015-09-03 10:24:20 -04:00
Yotam Mann
7ff330cb96 schedules a stopped state if the source is not looped 2015-09-03 10:24:10 -04:00
Seth Kranzler
1f667411fe removes double checking, changes sourceList to sources 2015-09-02 11:11:42 -04:00
Yotam Mann
5e8c2c3777 source uses Tone.Volume as the output. 2015-08-31 16:55:47 -04:00
Yotam Mann
45b6988090 set custom partials array for Oscillator 2015-08-31 16:42:27 -04:00
Yotam Mann
b2283d640f syncing to the Transport through events 2015-08-31 15:13:43 -04:00
Yotam Mann
9f0935967b can compute the first value of the oscillator 2015-08-27 21:32:09 -04:00
Seth Kranzler
68a0dcf943 adds open/close methods with callback, removes onLoad 2015-08-26 15:40:14 -04:00
Yotam Mann
054662e033 accept phase in constructor 2015-08-21 17:04:29 -04:00
Yotam Mann
0eeaa402de player accepts a Tone.Buffer in the constructor 2015-08-21 17:04:15 -04:00
Yotam Mann
ec400401c7 Sources don't extend TimelineState 2015-08-21 15:01:22 -04:00
Yotam Mann
af5609ce2e Player takes AudioBuffer in constructor 2015-08-21 15:01:09 -04:00
Yotam Mann
d714e05bb3 more precise regexp 2015-08-21 15:00:52 -04:00
Yotam Mann
80c416e398 throws error with invalid noise type 2015-08-21 15:00:40 -04:00
Seth Kranzler
c7b04bae47 remove unused callback, name change, remove error 2015-08-20 15:04:48 -04:00
Seth Kranzler
8fc5de8677 updated Microphone, added ExternalInput 2015-08-19 21:28:47 -04:00
Yotam Mann
80abf87292 reflecting rename 2015-08-18 16:29:39 -04:00
Yotam Mann
79e0383ad6 connectSeries -> chain 2015-08-16 15:18:48 -04:00
Yotam Mann
21391f2a9d Source is schedulable state 2015-08-16 15:16:36 -04:00
Yotam Mann
50d34c0ade using Error instead of TypeError 2015-08-16 15:16:26 -04:00
Yotam Mann
d36af98c46 filter rolloff goes up to -96 now
because why not? Also accepts a string as the type. fixes #84.
2015-08-12 13:13:04 -04:00
Yotam Mann
17f5e8bb8e delays are offset only 1 block now. 2015-07-21 11:22:36 -04:00
Yotam Mann
01060f13db removing old API test 2015-07-18 14:59:18 -04:00
Yotam Mann
3ccc0683bf changing doc links to markdown style 2015-07-04 15:25:37 -04:00
Yotam Mann
caddec650f doc'ing sources
mergine @polyrhythmatic changes
2015-07-04 12:43:21 -04:00
Yotam Mann
8ffd6e538f fixed doc bugs 2015-06-22 01:21:25 -04:00
Yotam Mann
4e9cb3ce1e doc'ing 2015-06-20 15:50:57 -04:00
Yotam Mann
6306841779 doc'ing 2015-06-15 11:27:13 -04:00
Yotam Mann
80a28f8554 using noOp function for defaults 2015-06-14 01:54:36 -04:00
Yotam Mann
800ac13332 jsdoc'ing the sources 2015-06-13 22:30:33 -04:00
Yotam Mann
0877a4862c jsdoc'ing sources 2015-06-13 22:03:06 -04:00
Yotam Mann
23cc2408b2 changing link tag 2015-06-13 21:54:20 -04:00
Yotam Mann
a81ba071f3 changing the styling of this in return statements 2015-06-13 20:54:29 -04:00
Yotam Mann
571183bf27 removing Tone.Type prefix in docs 2015-06-13 20:20:36 -04:00
Yotam Mann
f2f838b630 using signal jsdoc 2015-06-13 19:50:39 -04:00
Yotam Mann
5cb915a332 removing notes on default 2015-06-13 19:29:35 -04:00
Yotam Mann
99c7067f54 sets initial volume of source 2015-06-07 14:05:59 -04:00
Yotam Mann
3bf65cddb3 type annotation 2015-06-07 12:09:08 -04:00
Yotam Mann
68a47a9d58 Normal->NormalRange & Number->Default 2015-05-24 09:45:15 -04:00
Yotam Mann
1f69151c5f renamed Tone.Frequency -> Tone.Type.Frequency 2015-05-23 19:07:28 -04:00
Yotam Mann
6ef3dd2f51 renamed Tone.Time -> Tone.Type.Time 2015-05-23 19:01:05 -04:00
Yotam Mann
f0bcd68812 renamed Tone.Signal.Units to Tone.Type
also renamed Tone.Source.State to Tone.State
2015-05-23 18:57:05 -04:00
Yotam Mann
3f3cbe5f04 detune value in cents 2015-05-21 13:51:40 -04:00
Yotam Mann
02ec3215df new oscillator types
sine[partialsCount] i.e. sine6, triangle2, square3, etc.
2015-05-12 23:49:03 -04:00
Yotam Mann
a2f4a3595b jsdoc'ing 2015-05-05 16:40:52 -04:00
Yotam Mann
4818c14faa fixes AudioSourceNode looping bug in Chrome 42
This should be addressed in Chrome 43.

Fixes #64
2015-04-28 22:12:59 -04:00
Yotam Mann
15ebac4c37 Player autostart
Plays as soon as the buffer is loaded.
2015-04-28 16:17:54 -04:00
Yotam Mann
c7ff31caf9 sources are explicitly stereo
makes it easier to go through stereo effects.
2015-04-28 14:33:59 -04:00
Yotam Mann
a85b72727f setting read/write as an array 2015-04-05 14:53:27 -04:00
Yotam Mann
81670122d3 completely disposing readOnly properties
need to set them writable first
2015-04-05 14:41:43 -04:00
Yotam Mann
3a93d52ee1 making source's signal attributes readOnly
this helps avoid a common error which is overwriting a signal property
instead of setting the .value attribute
2015-04-05 14:00:52 -04:00
Yotam Mann
e6602d561d fixing bug when updating phase
previously wouldn’t update because the type was still the same. thanks
@mindofmatthew
2015-04-05 10:38:17 -04:00
Yotam Mann
33bedd3fbe applying @mindofmatthew patch 2015-03-27 09:42:20 -04:00
Yotam Mann
a572df7a88 Merge pull request #61 from mindofmatthew/phase-patch
Phase patch
2015-03-27 09:32:59 -04:00
Matthew Kaney
5576c3db22 Fix phase bug for complex waveforms
Fix bug where phase is applied to partials relative to the partial,
rather than the fundamental, frequency
2015-03-26 13:18:41 -04:00
Yotam Mann
ec2bd15ee1 can reverse buffer playback 2015-03-26 10:51:44 -04:00
Yotam Mann
470e8063e3 fix unused playback rate in Noise 2015-03-24 16:28:48 -04:00
Luke Phillips
237202c049 updated typescript definitions and fixed a few type errors 2015-03-07 19:17:16 +00:00
Luke Phillips
e706e0ad5e remove getOversample 2015-03-07 19:04:40 +00:00
Luke Phillips
f4fc005a57 new typescript definitions 2015-03-07 18:45:11 +00:00
Luke Phillips
db5c6eb865 remove old get and set functions 2015-03-07 18:41:10 +00:00
Luke Phillips
17df3dc4bb es5 getters and setters used in multiband eq 2015-03-07 18:26:08 +00:00
Luke Phillips
d2755e10de Merge Tone r4 2015-03-05 16:06:27 +00:00
Yotam Mann
d8a13d6dea setting initial oscillator type 2015-02-28 19:35:27 -05:00
Yotam Mann
3211347fef test if setting "type" is necessary before doing it 2015-02-28 18:06:25 -05:00
Yotam Mann
4e77c61638 JSDoc'ing sources 2015-02-27 11:19:45 -05:00
Yotam Mann
8f0fbe2de8 changing _onended callback 2015-02-23 00:29:49 -05:00
Yotam Mann
219eeaa537 source uses scheduled values to determine state 2015-02-23 00:29:07 -05:00
Yotam Mann
3e358536dd methods return this 2015-02-21 14:06:58 -05:00
Yotam Mann
f8b2261b3a new signal syncing API 2015-02-21 14:06:27 -05:00
Yotam Mann
26d0bcd10e pulseoscillator width gate 2015-02-20 00:53:03 -05:00
Luke Phillips
b545692c09 Noise can setPlayback 2015-02-17 19:58:47 +00:00
Yotam Mann
f61eff011b incorporating playbackRate into player
can’t be an Tone.Signal yet because of a Blink bug
2015-02-10 11:37:11 -05:00
Yotam Mann
26ff8d756e clean up source on dispose 2015-02-10 11:36:36 -05:00
Yotam Mann
50917ac49f migrating signals to ES5 getter/setters 2015-02-06 17:47:26 -05:00
Yotam Mann
66f524eae6 frequency signal units 2015-02-04 10:15:25 -05:00
Yotam Mann
88bb77ba69 getter/setter on playbackRate
for now playbackRate will be just a number until i can get the signal
connection of playbackRate to work across browser.
2015-02-04 10:15:06 -05:00
Yotam Mann
2dbacd3310 added decibels volume control to sources 2015-02-04 10:11:10 -05:00
Yotam Mann
b0b572f113 Using ES5 getter/setter 2015-02-04 10:10:34 -05:00
Yotam Mann
914123b9d1 using only ES5 getter/setters
replacing old getThing and setThing starting with Oscillators
2015-02-03 23:48:47 -05:00
Yotam Mann
fe93152920 signal value setters/getters 2015-02-02 12:50:18 -05:00
Yotam Mann
362afb32eb returning to public dispose method 2015-02-01 22:05:24 -05:00