Commit graph

384 commits

Author SHA1 Message Date
Yotam Mann
8dc8c652fa velocity and time should already be computed by parent class 2019-08-14 10:53:48 -04:00
Yotam Mann
e8cc284b0f Using an active voices array instead of map
enables multiple notes on the same midi note to be scheduled without one deleting the other on _makeVoiceAvailable
2019-08-14 10:50:01 -04:00
Yotam Mann
ce4fde8e43 releaseAll does not take a release time
will release all envelopes immediately. having it be immediate saves the issues that come with tracking active voices
2019-08-13 19:54:11 -04:00
Yotam Mann
e1652b8c20 releaseAll uses multiple triggerRelease instead of directly scheduling the voice
seems to cause fewer issues with held notes
2019-08-12 14:15:10 -04:00
Yotam Mann
150e8be0d3 cleaning up 2019-08-12 13:33:18 -04:00
Yotam Mann
5b3df95487 warning when max polyphony is exceeded 2019-08-12 13:21:55 -04:00
Yotam Mann
4f3e8e233f removing voice-stealing
adds too much complixity for now in terms of scheduling into the future. Using setTimeout for scheduling notes into the future. keeps track of active notes better with this type of scheduling.
2019-08-12 13:18:18 -04:00
Yotam Mann
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