Commit graph

666 commits

Author SHA1 Message Date
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
Yotam Mann
7d30c7784b moving state management to Source 2015-02-01 21:32:07 -05:00
Yotam Mann
e96fb08c44 moved onended in Tone.Source 2015-02-01 20:38:06 -05:00
Yotam Mann
650458fafd new dispose and get/set api
integrated new API on sources
2015-02-01 20:02:13 -05:00
Yotam Mann
9070b13c89 ES5 add getter/setter method 2015-02-01 15:48:20 -05:00
Yotam Mann
251a1e02a5 phase get/set for each of the extended oscillators 2015-02-01 15:47:31 -05:00
Yotam Mann
9eee63459a all sources return this
good for chaining methods
2015-02-01 14:40:47 -05:00
Yotam Mann
db0250e054 set loop boundaries after started
Fixes #49
2015-02-01 13:42:51 -05:00
Yotam Mann
b6875955e4 add type getter/setter 2015-02-01 13:32:39 -05:00
Luke Phillips
b40ce6ba8c getters for player.js 2015-01-25 18:45:19 +00:00
Luke Phillips
a7e4e316c1 Source getter functions 2015-01-20 13:48:54 +00:00
Luke Phillips
b11f86be7c Oscillator getter functions 2015-01-20 12:33:07 +00:00
Yotam Mann
49883947de putting the onload callback back in player
at least for now…
2015-01-05 21:55:57 -05:00
Yotam Mann
22d29c42e3 removing onload callbacks
fits better into the Tone.Buffer.onload scheme
2015-01-05 21:49:21 -05:00
Yotam Mann
080b8f5854 updated Player and Convolver with new Buffer 2015-01-04 21:46:10 -05:00
Yotam Mann
f1cbd96f98 sync/unsync the frequency 2014-12-19 16:39:50 -05:00
Yotam Mann
6ddf1b372f single 'setVolume' definition in Master 2014-12-19 16:27:50 -05:00
Yotam Mann
9e140a7605 Fixing/testing microphone dispose method
Fixes #46
2014-12-19 12:20:26 -05:00
Luke Phillips
e6caa81479 don't crash if user deny's microphone stream 2014-12-16 17:55:08 +00:00
Luke Phillips
8fafb3d20b microphone disconnect error 2014-12-15 17:08:14 +00:00
Yotam Mann
de707f1838 volume gets set right away 2014-12-08 11:03:47 -05:00
Yotam Mann
f7a14f2b37 all frequency values accept a note name as well 2014-12-06 16:48:36 -05:00
Yotam Mann
cd31d02048 jsdoc'ing 2014-12-03 21:38:24 -05:00
Yotam Mann
1b9cc1483b jsdoc'ing 2014-12-03 17:20:23 -05:00
Yotam Mann
2d0bcffc9f adding defaults to jsdocs 2014-12-02 01:42:08 -05:00
Yotam Mann
25496dea77 switched to updated chain method 2014-11-30 21:32:09 -05:00
Yotam Mann
cf2cb263b2 chain -> connectSeries, fan -> connectParallel 2014-11-30 17:37:29 -05:00
Yotam Mann
310231dbd1 using Tone.WaveShaper instead of native node 2014-11-30 13:20:35 -05:00
Yotam Mann
2b22bfac31 updating dependencies 2014-11-24 18:51:35 -05:00
Yotam Mann
0a442a2608 oscillator accepts Tone.Time as frequency 2014-11-09 10:57:14 -05:00
Yotam Mann
dcfac108eb using Tone constructor in signal classes 2014-11-04 01:21:42 -05:00
Yotam Mann
0bea209d68 simplify buffer constructor 2014-10-22 22:27:21 -04:00
Yotam Mann
3b10b93eca Merge pull request #39 from indefinit/unicode-fix
Unicode fix
2014-10-22 21:55:21 -04:00
Kevin Siwoff
054d5ff2e8 fixes buffer initialization in Player.js 2014-10-22 18:24:58 -04:00
Kevin Siwoff
b45c983152 updates player class and build for Buffer 2014-10-21 14:55:29 -04:00
Yotam Mann
9f827a8dad short delay to avoid clicks on change OmniOsc type 2014-10-16 14:52:08 -04:00
Kevin Siwoff
f784f5585f adds Buffer class, refactors Player class to use new Buffer member 2014-10-16 14:48:23 -04:00
Yotam Mann
a4cc79cfde stopped state doesn't wait for on ended event
the oneneded event is inconsistent when the source is not connected
directly to Master (such as in the case of an LFO).

Fixes #34
2014-10-08 11:59:31 -04:00
Yotam Mann
7972f0db34 Pulse, PWM, and Omni extend Oscillator 2014-10-03 16:07:30 -04:00
Yotam Mann
a8e156fcaf made Oscillator.oscillator _private 2014-10-03 16:06:42 -04:00
Yotam Mann
2daa8c64ad Oscillators inherit Tone.Oscillator setFrequency 2014-10-03 15:16:32 -04:00
Yotam Mann
e2c0e47f2f Noise getType method 2014-10-03 14:54:09 -04:00
Yotam Mann
1ed4f5288c allowing for loopEnd to be a Tone.Time 2014-10-03 01:00:48 -04:00
Yotam Mann
02c21fed73 switches types without a pop 2014-10-03 01:00:37 -04:00
Yotam Mann
35bdca0568 default Player loop is still the end of the file 2014-10-02 18:58:24 -04:00
Yotam Mann
7d26a67910 loop attributes can be passed in options object
also attributes can remain tempo relative. #27
2014-10-02 13:21:22 -04:00
Yotam Mann
d3f9834ca0 typo in Noise 2014-10-01 00:55:31 -04:00
Yotam Mann
452983920f using OmniOscType enum type 2014-09-30 22:48:21 -04:00
Yotam Mann
14d254fd97 altering default values 2014-09-30 22:48:00 -04:00
Yotam Mann
18bab7da59 setters and options objects for Sources
Fixes #27
2014-09-30 00:28:48 -04:00
Yotam Mann
1e7f46ff61 jsdoc addition 'const' 2014-09-29 23:45:31 -04:00
Yotam Mann
23128469ca combination oscillator class 2014-09-29 23:44:59 -04:00
Yotam Mann
014c5e5db2 new PWMOscillator class 2014-09-29 23:44:43 -04:00
Yotam Mann
c67468cab6 PulseOscillator setters 2014-09-29 23:44:35 -04:00
Yotam Mann
1dcaccdb4c defaults to loopStart offset if offset is not given 2014-09-29 23:44:15 -04:00
Yotam Mann
71af6ca206 testing dispose methods for all classes.
a few classes were not being disposed correctly and leaving some
garbage attached.
2014-09-06 18:55:11 -04:00
Yotam Mann
818797712c made the sawtooth private in pulse oscillator 2014-09-06 15:56:41 -04:00
Yotam Mann
af85ae7e19 Added "use strict" to all classes
Fixes #17
2014-09-04 00:41:40 -04:00
Yotam Mann
39c7da2ab1 styling examples 2014-09-04 00:06:01 -04:00
Yotam Mann
9adbcc3c4d getType 2014-09-02 00:25:20 -04:00
Yotam Mann
c88826e979 setPhase method on Oscillator
This method uses not DelayNode so sample accurate start/stop are
maintained.

Fixes #18
2014-08-31 16:35:02 -04:00
Yotam Mann
76ee2b5540 Tone.PulseOscillator first commit
fixes #25
2014-08-31 16:29:56 -04:00
Yotam Mann
7f7493105a added set method
#27

also fixed dispose method
2014-08-29 17:14:41 -04:00
Yotam Mann
42288c5942 setVolume in db now 2014-08-25 21:47:22 -04:00
Yotam Mann
3cd76459e5 link to parent's dispose method
Fixes #15
2014-08-24 16:24:16 -04:00
Yotam Mann
b2c85eaf44 signals inherit Signal.connect method
this is so that params and signals they connect to don’t need to be
manually zeroed out after connecting.

Fixed #11
2014-08-24 13:19:49 -04:00
Yotam Mann
3f40e26c14 fixed typo 2014-08-23 15:18:51 -04:00
Yotam Mann
be344b7963 unused argument 2014-08-21 14:20:55 -04:00
Yotam Mann
be9ad6ee5f fixed deps 2014-08-21 01:03:51 -04:00
Yotam Mann
9bb8df60a8 sync inherited from Tone.Source 2014-08-20 16:54:26 -04:00
Yotam Mann
d26147aa52 spacing and jsdoc 2014-08-20 16:51:02 -04:00
Yotam Mann
66bf461ebf sync -> syncSource 2014-07-30 15:12:47 -04:00
Yotam Mann
935161a31e can set context 2014-07-30 13:56:44 -04:00
Yotam Mann
18fca530c8 invalid constraint 2014-07-22 11:31:32 -04:00
Yotam Mann
e6bcb3b10c doc updates 2014-07-20 18:17:24 -04:00
Yotam Mann
ceb84b548f no echo cancellation on microphone 2014-06-28 22:13:35 -04:00
Yotam Mann
97e60e11cf updated looping API
removed “loop” method
2014-06-25 13:11:29 -04:00
Yotam Mann
0b4def6155 Tone.Sources can sync to the Transport 2014-06-25 12:47:47 -04:00
Yotam Mann
5ff3b1e4ee working on docs 2014-06-23 14:20:20 -04:00
Yotam Mann
4059c891e5 updated player api 2014-06-21 18:39:01 -04:00
Yotam Mann
ff5d967dc7 some updated to the microphone
still untested
2014-06-21 17:37:17 -04:00
Yotam Mann
736b3aa358 set volume can take a fade time 2014-06-21 15:55:12 -04:00
Yotam Mann
c9cbcaa3e5 fixed doc error 2014-06-20 01:46:39 -04:00
Yotam Mann
ec39ce3985 fixed error in setting frequency detune 2014-06-20 01:46:29 -04:00
Yotam Mann
d48849bd11 jsdoc on DryWet 2014-06-20 01:12:15 -04:00
Yotam Mann
e859706ef9 more disposing 2014-06-20 00:58:02 -04:00
Yotam Mann
c40531f0d4 better dispose method 2014-06-20 00:25:10 -04:00