Commit graph

1409 commits

Author SHA1 Message Date
Yotam Mann
6c222a4b03 looping transport emits 'loopStart' / 'loopEnd' instead of 'start' / 'stop'
Fixes #173
2016-10-19 14:50:55 -04:00
Yotam Mann
c1e5792497 passing in initial value 2016-10-19 01:01:40 -04:00
Yotam Mann
5efa85081c making all of Compressor's parameters Tone.Params 2016-10-19 01:01:31 -04:00
Yotam Mann
64a33b0c16 correcting offset when greater than loopEnd 2016-10-11 14:03:10 -04:00
Yotam Mann
6279582971 increment version 2016-10-11 14:01:03 -04:00
Yotam Mann
4a6fc4cc4b updating version 2016-10-05 10:36:41 -04:00
Yotam Mann
fb9d1617d8 updating docs
[skip ci]

private attribute was missing
2016-10-05 01:31:11 -04:00
Yotam Mann
b5ba9e072c ramping position values
this gets rid of a lot of clicking
2016-10-05 00:18:41 -04:00
Yotam Mann
b5ff5d365a Part accepts a objects that are not object literals in add/remove
it just needs to have a time property
2016-10-03 23:47:01 -04:00
Yotam Mann
bab37aea07 SpatialPanner and Listener wrappers 2016-10-01 21:45:22 -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
ecd5f9b5a3 only emit start/stop when setting ticks if transport is started 2016-09-29 00:52:00 -04:00
Yotam Mann
9ebd1dd7f4 min duration is 0 2016-09-26 21:13:20 -04:00
Yotam Mann
3d4bb4a9d1 removing rAF vestiges 2016-09-26 16:31:01 -04:00
Yotam Mann
753640bdeb seek to a position in the buffer 2016-09-25 22:32:54 -04:00
Yotam Mann
ac0e3db386 updated docs
[skip ci]
2016-09-25 19:00:10 -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
7565530987 start/stop/pause callbacks are invoked at the moment they occur
Previously they were invoked when the ‘start/stop/pause’ methods were
called.

Fixes #159
2016-09-24 11:48:28 -04:00
Yotam Mann
792f85bebd clock is an event emitter 2016-09-24 11:26:57 -04:00
Yotam Mann
d13d0179b3 testing undefined using typeof 2016-09-24 11:01:40 -04:00
Yotam Mann
545a0fe114 immediate scheduling when time <= now + this.blockTime 2016-09-24 10:39:44 -04:00
Yotam Mann
b1765f71b0 moving the minimum timing to the Instrument classes 2016-09-24 10:38:57 -04:00
Yotam Mann
10459f4281 set the .value of the AudioParam when the passed in time is less than one block away
addresses #163. thanks for the suggestion @stuartpb
2016-09-23 20:20:14 -04:00
Yotam Mann
1c3e06c2e5 schedule immediate envelopes one block in the future
this avoids some pops
2016-09-23 20:07:41 -04:00
Yotam Mann
8d59c63d18 toSeconds no longer takes a currentTime value as second parameter 2016-09-23 20:06:07 -04:00
Yotam Mann
3d36324b8d updating Q value so it doesn't feedback
Fixes #166

thanks @mmckegg
2016-09-23 10:16:10 -04:00
Yotam Mann
e19e54b072 wrapping playbackRate in Tone.Param 2016-09-22 18:36:44 -04:00
Yotam Mann
c0cb8945a6 AutoPanner LFO goes between -1 and 1
Fixes #165
2016-09-20 19:39:12 -04:00
Yotam Mann
6f35e743a6 get the time before testing Timeline classes 2016-09-20 19:35:21 -04:00
Yotam Mann
07ba833ded making sure it has the time before passing it into Timeline classes 2016-09-20 19:35:07 -04:00
Yotam Mann
4711d704da timeline classes require Number instead of Time
since they were used with different time scales, it makes sense not to
impose Time, but allow for any kind of number.
2016-09-20 19:12:43 -04:00
Yotam Mann
3c5d328b97 should have been using Tone.Transport.ticks instead of now 2016-09-20 18:56:40 -04:00
Yotam Mann
3b6c15ff5b clarifying code using toType() 2016-09-20 18:54:36 -04:00
Yotam Mann
26f7676ef5 frequency has a toFrequency
seems a little redundant, but it’s clearer.
2016-09-20 18:35:49 -04:00
Yotam Mann
75773eb0f2 binary expressions use the same constructor 2016-09-20 18:27:10 -04:00
Yotam Mann
3b32641d77 corrected toSeconds
didn’t take into account if it was now-relative
2016-09-20 18:25:39 -04:00
Yotam Mann
0856efe50f added toSeconds method
no longer relies on the inherited method
2016-09-20 18:25:06 -04:00
Yotam Mann
9379165928 starts out at 0 progress
fixes NaN issue. Also only goes to 95% bc of loading. the last 5% is
after the file is decoded.
2016-09-20 17:24:56 -04:00
Yotam Mann
372053a029 using Tone.Delay everywhere instead of DelayNode 2016-09-20 00:01:27 -04:00
Yotam Mann
a60328345e using Tone.Gain everywhere instead of GainNode 2016-09-19 23:53:07 -04:00
Yotam Mann
cc232ce3c3 updated buses to use Gain. clearing send/recv on new AudioContext
testing that a gain can be passed in.
2016-09-19 23:30:43 -04:00
Yotam Mann
76ad44360d updating to new API 2016-09-19 23:02:42 -04:00
Yotam Mann
66911d4c72 internal method for making inputs/outputs 2016-09-19 23:01:21 -04:00
Yotam Mann
66c344de38 using Tone.Gain for Multiply 2016-09-19 21:44:41 -04:00
Yotam Mann
31ea7abbd5 styling the code a bit
[skip ci]
2016-09-19 20:21:42 -04:00
Yotam Mann
a6cc5fe845 Decibels ramp linearly
sounds better.
2016-09-19 19:13:59 -04:00
Yotam Mann
2f525e74b7 will emit 'progress' when there is .lengthComputable is false 2016-09-19 00:16:44 -04:00
Yotam Mann
03c98a2e79 throws error if Tone.LFO isn't available
might be useful to debug.
2016-09-19 00:08:54 -04:00
Yotam Mann
3b8d44d344 Buffer.prototype.load returns Promise
Also simplified/removed XHR queuing and other complications
2016-09-19 00:08:16 -04:00
Yotam Mann
6a951fa217 using 'emit' instead of 'trigger'
more similar to Node.js EventEmitter class
2016-09-18 20:07:00 -04:00
Yotam Mann
d8d69ae662 changing old docs which used Buffer.onload
[skip ci]
2016-09-18 20:05:01 -04:00
Yotam Mann
8982688f9e can now pass in Infinity or other valid numbers 2016-09-18 20:03:04 -04:00
Yotam Mann
ceefac97e7 adding lengthComputable so that it never divides by 0 2016-09-18 19:45:16 -04:00
Yotam Mann
f115b4cdf5 clone/copy methods of Time/TimeBase 2016-09-18 19:41:25 -04:00
Yotam Mann
c135392f55 changing sync to match new Source sync API 2016-09-18 19:37:31 -04:00
Yotam Mann
71a4c986fc Can pass in an LFO description in the .value parameter 2016-09-18 19:25:47 -04:00
Yotam Mann
de9f15f1e7 fixed another linting error
[skip ci]
2016-09-08 21:20:49 -04:00
Yotam Mann
3eaa98ef51 fixed some linting errors
[skip ci]
2016-09-08 10:29:41 -04:00
Yotam Mann
b4c31342fe loaded attribute
iterates over the contained buffers and returns true if all of them are
loaded
2016-08-19 18:03:13 -04:00
Yotam Mann
f751bba814 can convert to Milliseconds 2016-08-18 11:41:04 -04:00
Yotam Mann
535ce86179 adding error callbacks 2016-08-16 15:26:51 -04:00
Yotam Mann
cea47e5cdb added seek event when changing the Transport's position 2016-08-15 23:13:09 -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
2569bfef8b to/fromArray
plus a few more properties.
2016-08-15 10:23:01 -04:00
Yotam Mann
682ec0e46e get/set the progress in seconds 2016-08-15 07:28:52 -04:00
Yotam Mann
e8178581c0 Merge pull request #161 from JackCA/allow-silencing-version-log
allow silencing of version log
2016-08-15 06:44:15 -04:00
Jack Anderson
f2f1cf6b9c allow silencing of version log
- useful for test environments
2016-08-14 12:21:50 -07: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
75d6126615 Convolved takes callback as second parameter
also accepts no arguments now
2016-08-09 14:24:59 -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
3d2b86032e added has method to test if buffer exists 2016-08-09 01:14:52 -04:00
Yotam Mann
7984819753 update the octaves when changing the baseFrequency
this way the `lfo.max` also gets updated
2016-08-08 16:20:30 -04:00
Yotam Mann
464d64d13b Merge branch 'master' into dev 2016-07-20 15:44:34 -04:00
Yotam Mann
b266902bd7 can set the buffer 2016-07-20 15:42:55 -04:00
Yotam Mann
0824582274 update the octaves when updating the baseFrequency
otherwise it remains at the previous value
2016-07-20 15:37:51 -04:00
Yotam Mann
e029ead2bc small update to the docs
[skip ci]
2016-07-20 13:12:31 -04:00
Yotam Mann
3aea0546f5 starting r8
[skip ci]
2016-07-10 12:31:15 -04:00
Yotam Mann
6c8c75a2ec Clock ticks do not catch up when restarted after pause
fixes #145
2016-07-08 12:26:58 -04:00
Yotam Mann
8195d9d260 release candidate 2016-07-07 14:56:33 -04:00
Yotam Mann
62ca8f8c7b setRampPoint does not need to convert from units 2016-07-07 14:23:48 -04:00
Yotam Mann
cf20132b2c limiting BarsBeatsSixteenths precision to three decimal places 2016-07-07 14:11:03 -04:00
Yotam Mann
99f4ab3b79 updating docs for types
[skip ci]
2016-07-07 10:40:23 -04:00
Yotam Mann
eb5a459d03 removing vibratoDelay
wasn’t doing anything.
2016-07-06 23:41:14 -04:00
Yotam Mann
99d7d2f8bd disconnects from a specific node
(tests this feature only when supported)
2016-07-06 23:39:06 -04:00
Yotam Mann
c08e16087f correctly setting PPQ
wasn’t taking into account that the returns bpm value was dependent on
the PPQ. therefore, need to read the bpm before setting the PPQ.
2016-07-06 23:23:14 -04:00
Yotam Mann
d0b18c5d09 test for file type support. 2016-07-06 23:09:56 -04:00
Yotam Mann
810ee8530e uses the units value when ramping
previously there was an issue that it would start ramping from the
unconverted value.
2016-07-06 23:00:07 -04:00
Yotam Mann
2905cce5d2 making fadeTo exponential when set to decibels.
also converting from units to set ramp point
2016-07-06 22:59:21 -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
02f96db94b simplifiying Sampler 2016-07-06 22:32:34 -04:00
Yotam Mann
b0f11dfa5b granular synthesis player 2016-07-05 20:32:53 -04:00
Yotam Mann
1ba3733439 interval is exclusive of end point
specifically the repeat time is: [start, start + duration).

so Transport.scheduleRepeat(fn, 1, 0, 2) will repeat twice, not three
times (since it’s exclusive of the end time).
2016-06-22 16:39:48 -04:00
Yotam Mann
20f8adebba adjust PWM scaling so it doesn't go silent 2016-06-17 14:02:24 -04:00
Yotam Mann
a40aa6bd12 Fixing case where partial envelope is retriggered using one of the predefined envelopes 2016-06-17 13:13:20 -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
96644f37d2 Adjusting the timing of the tests
also using wav’s instead of mp3s
2016-06-14 20:27:12 -04:00
Yotam Mann
693867f9be Revert "encoding the URI"
This reverts commit 754e9fc500.
2016-06-14 20:04:28 -04:00
Yotam Mann
e0edb67a75 Wrapper around the basic AudioBufferSourceNode 2016-06-14 19:57:46 -04:00
Yotam Mann
754e9fc500 encoding the URI 2016-06-14 19:57:15 -04:00
Yotam Mann
5978d46825 Buffers is a data structure for holding multiple Tone.Buffer 2016-06-14 19:57:01 -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
cce32d7efc IntervalTimeline.forEachOverlap -> forEachAtTime 2016-06-13 09:02:51 -04:00
Yotam Mann
eea938094c renaming cosine->sine and ease->sine
Fixes #69
2016-06-12 09:56:18 -04:00
Yotam Mann
4628f8c47a prefixing errors with class name. 2016-05-25 20:50:46 -04:00
Yotam Mann
aae52e3fa1 default PolySynth voice is Tone.Synth
instead of Tone.MonoSynth
2016-05-23 19:56:15 -04:00
Yotam Mann
49fc9d7bb6 renamed SimpleSynth to Tone.Synth 2016-05-23 19:49:41 -04:00
Yotam Mann
db6b901003 attack/release curves can be arrays
also introducing a bunch of new curve types
2016-05-23 19:20:20 -04:00
Yotam Mann
29df1b2293 setValueCurveAtTime now implemented with a series of linearRampToValue
this is more cross-platform and easier to work with.
2016-05-23 19:19:06 -04:00
Yotam Mann
3b9b65bf89 adding additional startTime value to rampTo 2016-05-17 21:59:27 -04:00
Yotam Mann
9528238873 computing rms from the analyser waveform data 2016-05-17 21:26:57 -04:00
Yotam Mann
6060b397ad added detune to PolySynth
applied when available.
2016-05-14 20:49:55 -04:00
Yotam Mann
b3e9ec173a added detune for AM/FM synths 2016-05-14 20:10:31 -04:00
Yotam Mann
cdebaeedf5 Can pass in an array of durations into triggerAttackRelease
Fixes #135
2016-05-14 19:55:51 -04:00
Yotam Mann
8e3d3264dd setting a value will cancel scheduled values
so that it gets set immediately.
2016-05-14 19:18:33 -04:00
Yotam Mann
58a1223a9a meter uses the analyser node
no more ScriptProcessorNodes
2016-05-14 19:13:50 -04:00
Yotam Mann
2db3265fb9 needs to cancel at 0 for some reason to take effect in Chrome 2016-05-14 18:57:18 -04:00
Yotam Mann
a25767cfbe can mute the output 2016-05-14 18:07:53 -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
b02a13ab08 not using Math.log2 (since it's not supported across all browsers yet) 2016-05-14 17:00:57 -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
98e58d0576 switching argument position of type and size
type is more important a parameter.
2016-05-14 16:34:50 -04:00
Yotam Mann
af1a737f71 simplifying position code to use TransportTime 2016-05-14 16:32:16 -04:00
Yotam Mann
6c77c60469 ensures addNow can only be called once 2016-05-14 16:31:35 -04:00
Yotam Mann
1d9e43f33a handles math operations correctly now 2016-05-14 16:27:55 -04:00
Yotam Mann
5d6f1806c1 Making the Analyser a passthrough node. 2016-04-25 18:05:15 -04:00
Yotam Mann
688e3812ab removing old types 2016-04-18 02:19:29 -04:00
Yotam Mann
d374790175 using new Type 2016-04-18 02:19:17 -04:00
Yotam Mann
059bbf20b2 converting units using new API 2016-04-18 02:19:01 -04:00
Yotam Mann
b1d0d33f1b can accept time as the value 2016-04-18 02:05:54 -04:00
Yotam Mann
1e7773ae6a using new Timing primitives 2016-04-18 02:05:04 -04:00
Yotam Mann
16c28892c8 using Time instead of TransportTime 2016-04-18 01:12:55 -04:00
Yotam Mann
cebeb3e577 clock goes to stop state immediately
no need to test if it’s started.
2016-04-18 01:12:35 -04:00
Yotam Mann
733b49bcd5 using new types 2016-04-18 00:36:08 -04:00
Yotam Mann
696e84cafb new core timing primitives 2016-04-18 00:34:16 -04:00
Yotam Mann
3f6580b843 simplifying NoiseSynth
removing filer and filterEnvelope
2016-04-18 00:28:39 -04:00
Yotam Mann
9b5837df3e Using new types
swing sinusoidally delays until a triplet.
2016-04-18 00:17:02 -04:00
Yotam Mann
2530182b2e updating analyser docs
[skip ci]
2016-04-17 13:41:54 -04:00
Yotam Mann
ca95a0bef5 increasing PPQ to 192. quantize->nextSubdivision
separating out Timeline quantization from quantization method and
moving it elsewhere.
2016-04-13 13:05:27 -04:00