Commit graph

427 commits

Author SHA1 Message Date
Yotam Mann
e7c429f4ec adding back envelope
getLevelAtTime was used for the portamento
2019-08-12 00:21:34 -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
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
b94be3cdc4 moving object creation to constructor body
more consistent style
2019-08-09 23:06:30 -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
507f095992 compute time string values for envelope attack/release
fixes #501
2019-08-07 11:46:04 -04:00
Yotam Mann
0f1218b69e updating docs 2019-08-04 13:12:23 -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
52bcac2599 setting name to readonly 2019-08-02 21:09:35 -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
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
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
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
Lidio Vargas
65098a0229 Fixing released-sustained notes on Tone.Sampler 2019-07-28 14:01:50 -03: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
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
63cce0d48a converting Sampler to ts 2019-07-22 16:18:16 -04:00
Yotam Mann
9f14b53d26 moving input definition to Instrument 2019-07-22 16:16:13 -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
b9dd8440b7 using OscillatorInterface to define all the oscilator properties 2019-07-19 12:32:17 -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
tambien
755aae326f removing unused import 2019-03-25 22:17:13 -07:00
Vasilii Smirnov
cd7b4c7fed Fixed 'notes' parameter in Sampler methods to point that several notes can be played. (#457) 2019-03-11 19:38:29 -04:00
tambien
ff371dfd69 converting arg to time 2019-03-09 17:52:03 -05:00
tambien
5212d76223 removing logging 2019-02-01 12:16:49 -05:00
tambien
ddb9f8b4d8 sampler should throw error if there are no available notes to play
before failed silently
2019-02-01 12:01:35 -05:00
tambien
d957aad613 Documenting next parameters
fixes #433

[skip ci]
2019-01-31 19:20:45 -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
be077fb59c can pass in oscillator options to constructor 2019-01-09 23:19:56 -05:00
tambien
e5179c76c5 setting initial frequency
just for the visual effect in tonejs-ui
2019-01-08 20:24:24 -05:00
tambien
72536e5673 voices are chosen based on minimum value after the given time
fixes #415
2018-12-26 12:39:37 -05:00
tambien
2cb0d67b67 checking if activeSources still exists before trying to remove elements
fixes #409
2018-12-16 13:26:28 -05:00
tambien
3d1202043a all modules are relative paths
simplifies deep references to individual files
2018-08-26 22:29:17 -04:00
Yotam Mann
15755701f9 linting 2018-08-06 23:32:21 -04:00
Yotam Mann
f09b5d0372 Merge branch 'dev' of https://github.com/Tonejs/Tone.js into dev 2018-07-30 22:57:09 -04:00
tambien
9edafa8be4 removing source when sample has finished
prevents error where the BufferSource.stop is attempted after the source has already finished
2018-07-29 09:28:45 -04:00
Yotam Mann
ea218c2921 adding logging 2018-06-20 23:12:17 -04:00
Yotam Mann
0173e31c91 adding an index to each voice 2018-06-20 23:02:44 -04:00
Yotam Mann
ad1e362d7c release happens after stop time
as per new BufferSource api
2018-06-20 15:03:52 -04:00
tambien
031dc98898 optimization to turn off oscillator after play 2018-06-13 19:04:02 -04:00
Yotam Mann
45e40a8498 linting 2018-06-13 00:20:23 -04:00
Yotam Mann
3d92d0fdf8 simplifying the way that free voices are selected 2018-06-12 23:44:15 -04:00
tambien
8e2295e229 making triggerAttackRelease private
fixes #358
2018-05-31 13:18:29 -04:00
ZIwen
fa23475906 Update Sampler.js (#346)
support sampler polyphonic syntax
2018-05-15 10:07:36 -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
2fab59e446 fixing typo in triggerAttack
fixes #333
2018-04-25 10:28:49 -04:00
Yotam Mann
79a4aaae99 getLevelAtTime returns the envelope's value at the given time 2018-03-29 16:56:27 -04:00
Yotam Mann
ccc5fea22b portamento only happens on close retriggers 2018-03-05 23:56:42 -05:00
Yotam Mann
a5503e02d2 linting 2018-03-05 12:25:33 -05:00
Yotam Mann
897b885a40 increasing max search interval to 8 octaves
fixes #315
2018-03-05 10:40:46 -05:00
Yotam Mann
a7e2f603d9 playing sources only while instruments are triggered 2018-02-08 11:11:57 -05:00
Yotam Mann
457c7b221c optimizing instrument by only turning on oscillators when active 2018-02-05 13:50:14 -05:00
Yotam Mann
92454266f7 sync/unsync triggerAttack/Release to the Transport 2018-01-02 16:49:41 -05:00
Yotam Mann
d3b2444203 lowering default resonance 2018-01-02 16:48:38 -05:00
Yotam Mann
dded291a25 linting 2018-01-02 10:37:27 -05:00
Yotam Mann
f818bede9a releaseAll stops all currently active notes
fixes #272
2017-11-29 16:54:17 -05:00
Yotam Mann
9a745e3624 PolySynth throws error if the instrument voice is not Monophonic
fixes #270
2017-11-26 11:22:25 -08:00
Yotam Mann
4316530b16 linting 2017-10-26 16:03:00 -04:00
Yotam Mann
cb2a982c39 linting 2017-10-21 19:02:46 -04:00
Steve De Jonghe
713e97fbeb Fix typo in MembraneSynth description (#262)
"applied during during ..." => "applied during ..."
2017-09-26 12:33:41 -04:00
Yotam Mann
f8f0489e14 jsdocing constructor params
fixes #261
[skip ci]
2017-09-18 12:29:04 -04:00
Yotam Mann
25315eccc2 removing warnings triggered in constructor 2017-09-15 18:05:23 -04:00
Yotam Mann
c7385ef575 using exponential curve in sampler 2017-09-15 09:07:09 -04:00
Yotam Mann
e6faa39dba classes which generate or process sound extend Tone.AudioNode 2017-08-27 17:50:31 -04:00
Yotam Mann
ea869e7c93 updating jsdoc comment to reflect that class extends Tone.Instrument 2017-08-27 16:28:29 -04:00
Yotam Mann
1e148a9c74 Sampler is now an instrument for creating a chromatic instrument from pitched samples 2017-08-27 12:55:54 -04:00
Yotam Mann
1d362ee6f7 account for release time when scheduling note stop 2017-08-26 15:39:09 -04:00
Alan Russell
bd0b36b9ab Point links to Synth Secrets on archive.org (#254)
* point Cymbal Synthesis link to archive.org

* point to Synth Secrets Amplitude Modulation article on archive.org

* point to pair of Synth Secrets FM articles on archive.org

* point to Synth Secrets Reverb article on archive.org

* Revert "point Cymbal Synthesis link to archive.org"

This reverts commit f621d8ecec.

* point to Synth Secrets Cymbal Synthesis article on archive.org
2017-08-15 01:02:00 -04:00
Yotam Mann
835a3be67d no need to schedule a block in the future since lookAhead is now built into Tone.now() 2017-06-29 13:55:36 -04:00
Yotam Mann
1f604f3f31 update sampler example
Fixes #243
[skip ci]
2017-06-28 15:23:49 -04:00
Yotam Mann
0a42b3ef54 adding triggerAttackRelease method
Instrument one does not work with MultiSampler since a note is required
as the first argument
2017-06-16 17:27:30 -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
f778774401 linting 2017-05-13 22:14:13 -04:00
Yotam Mann
5d7bd92d7a MultiSampler instrument 2017-05-13 22:08:04 -04:00
Yotam Mann
260d27bbb3 instruments depend on Tone.Master 2017-05-08 11:49:08 -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
edfa168713 moving to static type queries
i.e. this.isString -> Tone.isString
2017-04-26 00:24:19 -04:00
Yotam Mann
2e807dde30 light styling 2017-04-26 00:08:41 -04:00
Yotam Mann
c544255953 using defaults in last remaining classes 2017-04-26 00:07:10 -04:00
Yotam Mann
aa54db39fe using static defaultArg/defaults methods 2017-04-25 23:22:34 -04:00
Yotam Mann
752a0a6bc4 Duration argument must be greater than 0
fixes #203
[skip ci]
2017-03-05 13:19:55 -05:00
Yotam Mann
c3158bbcf7 fixing docs
fixes #202

[skip ci]
2017-02-16 12:04:12 -05:00
Yotam Mann
5d7c95b806 removing deprecated SimpleSynth
[skip ci]
2017-01-08 18:35:04 -05:00
Yotam Mann
3c8d77d02b Merge branch 'master' into dev 2017-01-08 17:08:24 -05:00
Bobby Brennan
47d5299e9e Update FMSynth.js 2016-12-31 20:36:24 -05:00
Bobby Brennan
1b9d82b189 Update AMSynth.js 2016-12-31 20:35:57 -05:00
Yotam Mann
5d469d44ba adding triggerAttackRelease jsdoc
Clarifies and Fixes #175

[skip ci]
2016-11-07 10:42:09 -05:00
Yotam Mann
45eba82840 updating to new Q values 2016-11-06 19:10:26 -05:00
Yotam Mann
e3d05840d9 'linear' attack removes pops in FF 2016-11-03 14:40:21 -04:00
Yotam Mann
934e731f82 OmniOscillator in MembraneSynth 2016-10-20 11:45:28 -04:00
Yotam Mann
c1e5792497 passing in initial value 2016-10-19 01:01:40 -04:00
Yotam Mann
fb9d1617d8 updating docs
[skip ci]

private attribute was missing
2016-10-05 01:31:11 -04:00
Yotam Mann
b1765f71b0 moving the minimum timing to the Instrument classes 2016-09-24 10:38:57 -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
a60328345e using Tone.Gain everywhere instead of GainNode 2016-09-19 23:53:07 -04:00
Yotam Mann
b266902bd7 can set the buffer 2016-07-20 15:42:55 -04:00
Yotam Mann
eb5a459d03 removing vibratoDelay
wasn’t doing anything.
2016-07-06 23:41:14 -04:00
Yotam Mann
02f96db94b simplifiying Sampler 2016-07-06 22:32:34 -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
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
733b49bcd5 using new types 2016-04-18 00:36:08 -04:00
Yotam Mann
3f6580b843 simplifying NoiseSynth
removing filer and filterEnvelope
2016-04-18 00:28:39 -04:00
Yotam Mann
278aace787 setting a reasonable max voice count 2016-03-03 13:01:11 -05:00
Yotam Mann
64dbebeb67 triggers oldest note
no more control over retriggering.
2016-02-08 13:44:49 -05:00
Yotam Mann
4a9f39a62b keeps track of release times
so it’s able to trigger the voice that has already been release, or
retrigger the oldest voice (if stealVoices) is true.
2016-02-08 13:44:49 -05:00
Yotam Mann
46919e7c86 Simplifying the API of FMSynth and AMSynth
uses SimpleSynth instead of MonoSynth. API more flat.
2016-01-30 15:53:40 -05:00
Yotam Mann
2f4d6d07cd DrumSynth->MembraneSynth & CymbalSynth->MetalSynth 2016-01-30 15:48:32 -05:00
Yotam Mann
d5499f64f8 CymbalSynth synthesizes spectrally complex, metallic sounds 2016-01-19 10:02:46 -05:00
Yotam Mann
b3e08a4c02 removed instrument presets 2015-12-07 21:32:28 -05:00
Yotam Mann
2664140ab0 implementing filterEnvelope with Tone.FrequencyEnvelope 2015-12-07 00:39:39 -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
8bcf318271 updating to new playbackRate API 2015-11-26 08:21:38 -08:00
Yotam Mann
c8cfe33864 doc'ing 2015-11-17 22:52:22 -05:00
Yotam Mann
42dadb6d2d using Emitter style for load/progress/error
The new syntax is `Tone.Buffer.on(“load”, callback);`
2015-11-11 12:33:02 -05:00
Yotam Mann
8e5dd56906 removing unused dependencies 2015-11-03 18:33:52 -05:00
Yotam Mann
f1be71c0c2 updating to new Volume API 2015-11-02 20:08:53 -05:00
Yotam Mann
4a2bd215e7 using new type checking methods 2015-10-21 13:13:15 -04:00
Yotam Mann
b73a8cb71f updating to new Param class 2015-10-21 10:34:37 -04:00
Yotam Mann
1c00c650db updating to new Volume API 2015-10-21 10:33:13 -04:00
Yotam Mann
c98303331f clarifying Monophonic comment
Addresses #98
2015-10-13 10:37:21 -04:00
Yotam Mann
eccdb659c2 renamed Tone/core/Types -> Tone/core/Type 2015-09-04 16:48:21 -04:00
Yotam Mann
24e9408b6e using Tone.Volume in instrument 2015-09-03 11:05:05 -04:00
Yotam Mann
4e18bb744d fixing typo 2015-08-31 11:37:19 -04:00
Yotam Mann
5c99025e25 release all the currently played notes
boolean to steal voices or not
2015-08-16 15:17:20 -04:00
Yotam Mann
b71e577d4a removing old note dependency 2015-08-01 00:59:30 -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
928f2c3168 pass options object to Instrument base class 2015-07-04 13:36:22 -04:00
Yotam Mann
caddec650f doc'ing sources
mergine @polyrhythmatic changes
2015-07-04 12:43:21 -04:00
Yotam Mann
17c6bf3661 note attack parameter is a Frequency type 2015-07-02 13:11:44 -04:00
Yotam Mann
2bdd2eccce can set volume initially on instruments 2015-06-27 17:25:47 -04:00
Yotam Mann
47a354c9ce fixed typo in description 2015-06-27 17:25:32 -04:00
Yotam Mann
e0b6ec48ad fixed refactor bug 2015-06-26 01:21:59 -04:00
Yotam Mann
0757b580b7 adjusting defaults 2015-06-26 01:21:49 -04:00
Yotam Mann
0457def366 updating instrument images 2015-06-22 01:20:20 -04:00
Yotam Mann
cedc2040e8 doc'ing instruments 2015-06-20 18:03:49 -04:00
Yotam Mann
4e9cb3ce1e doc'ing 2015-06-20 15:50:57 -04:00
Yotam Mann
90b5ee3844 instrument examples 2015-06-15 22:36:20 -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
d22e00d6ba write protection on harmonicity and modulation index 2015-06-14 00:54:51 -04:00
Yotam Mann
f2a244a960 doc'ing instruments 2015-06-14 00:32:17 -04:00
Yotam Mann
216ed6e472 instrument jsdoc'ing 2015-06-13 23:15:57 -04:00
Yotam Mann
8b7b4ab3f3 making envelope attack/release method private 2015-06-13 22:47:07 -04:00
Yotam Mann
58573b15c1 harmonically as a signal value 2015-06-13 22:30:53 -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
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
17e76b0642 3 new Simplified Synths 2015-05-23 18:26:16 -04:00
Yotam Mann
17143cf777 Tone.Frequency type 2015-05-23 18:16:53 -04:00
Yotam Mann
176ddcb52b Instrument default value 2015-05-23 18:16:34 -04:00
Yotam Mann
b7864d1c4d correctly sets resonance and dampening
it was set at 0 before, making it silent.
2015-05-13 12:13:25 -04:00
Yotam Mann
0b00db3ec6 defaults 2015-05-12 23:48:13 -04:00
Yotam Mann
632c22b9e5 set PolySynth with rampTime 2015-04-24 19:34:26 -04:00
Yotam Mann
295901e383 new LowpassCombFilter interface 2015-04-24 17:45:03 -04:00
Yotam Mann
8fed8ee52b DrumSynth instrument 2015-04-20 10:39:47 -04:00
Yotam Mann
8e69627ad1 making attributes readOnly 2015-04-18 10:54:08 -04:00
Yotam Mann
ec2bd15ee1 can reverse buffer playback 2015-03-26 10:51:44 -04:00
Yotam Mann
b093dd4d73 deleting deprecated classes 2015-03-26 10:50:48 -04:00
Yotam Mann
28a86eeba1 removed console log 2015-03-12 17:45:00 -04:00
Yotam Mann
b796d3ef1e more presets 2015-03-03 11:19:53 -05:00
Yotam Mann
d609f8e266 jsdoc'ing instruments 2015-02-27 23:24:51 -05:00
Yotam Mann
97c6395a3f Sampler regtriggers by default 2015-02-24 12:02:56 -05:00
Yotam Mann
c7cf0d0823 setting a preset moved to core 2015-02-23 00:32:33 -05:00
Yotam Mann
af855b3f55 player does not retrigger by default 2015-02-20 01:01:03 -05:00
Yotam Mann
46b03f2180 forward arguments to voice constructor 2015-02-20 01:00:32 -05:00
Yotam Mann
da2c77acd2 added pitch parameter 2015-02-10 16:33:37 -05:00
Yotam Mann
9e9321e936 ES5 getter/setter on instruments 2015-02-10 11:40:04 -05:00
Yotam Mann
5e9a3981e0 instrument methods return this 2015-02-02 13:30:36 -05:00
Yotam Mann
8a9f5a9ce9 updating docs 2015-02-01 13:32:02 -05:00
Yotam Mann
2e15f03490 Revert Tone.Volume representation 2015-01-05 23:33:05 -05:00
Yotam Mann
a60ec836db migrating to Tone.Volume representation 2015-01-05 22:46:19 -05:00
Yotam Mann
b825e55385 deprecating Tone.MultiSampler 2015-01-05 21:49:56 -05:00
Yotam Mann
f986b32849 Sampler can load many samples
choose which sample plays in the triggerAttack method
2015-01-05 21:48:03 -05:00
Yotam Mann
9ed92b7af0 removing unneeded disposes 2014-12-19 16:33:43 -05:00
Yotam Mann
6ddf1b372f single 'setVolume' definition in Master 2014-12-19 16:27:50 -05:00
Yotam Mann
202c84c0ec making voices public 2014-12-08 11:03:20 -05:00
Yotam Mann
ba445538f2 using AudioToGain instead of Expr 2014-12-08 11:03:10 -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
db544d20c4 using markdown instead of example tag 2014-12-03 17:25:34 -05:00